Merge pull request #6323 from menloresearch/rp/docs-v0.6.9
docs: Major restructure and consolidation
BIN
docs/public/assets/images/changelog/jan-images.gif
Normal file
|
After Width: | Height: | Size: 4.6 MiB |
@ -7,9 +7,10 @@
|
||||
"layout": "raw"
|
||||
}
|
||||
},
|
||||
"docs": {
|
||||
"Documentation": {
|
||||
"type": "page",
|
||||
"title": "Documentation"
|
||||
"title": "Documentation",
|
||||
"href": "https://docs.jan.ai"
|
||||
},
|
||||
"platforms": {
|
||||
"type": "page",
|
||||
|
||||
106
docs/src/pages/changelog/2025-08-28-image-support.mdx
Normal file
@ -0,0 +1,106 @@
|
||||
---
|
||||
title: "Jan v0.6.9: Image support, stable MCP, and powerful model tools"
|
||||
version: 0.6.9
|
||||
description: "Major multimodal support with image uploads, MCP out of experimental, auto-detect model capabilities, and enhanced tool calling"
|
||||
date: 2025-08-28
|
||||
ogImage: "/assets/images/changelog/jan-images.gif"
|
||||
---
|
||||
|
||||
import ChangelogHeader from "@/components/Changelog/ChangelogHeader"
|
||||
import { Callout } from 'nextra/components'
|
||||
|
||||
<ChangelogHeader title="Jan v0.6.9: Image support, stable MCP, and powerful model tools" date="2025-08-28" ogImage="/assets/images/changelog/jan-images.gif" />
|
||||
|
||||
## Highlights 🎉
|
||||
|
||||
v0.6.9 delivers two highly requested features: **image support for multimodal models** and **stable MCP** (no more experimental flags!). Plus intelligent model capability detection, enhanced tool calling, and major UX improvements.
|
||||
|
||||
### 🖼️ Multimodal AI is here
|
||||
|
||||
**Image upload support** — Finally! Upload images directly in your chats and get visual understanding from compatible models:
|
||||
- **Local models**: Automatic support for Gemma3, Qwen3, and other vision-capable models
|
||||
- **Cloud models**: Manual toggle for GPT-4V, Claude 3.5 Sonnet, Gemini Pro Vision
|
||||
- **Smart detection**: Jan automatically identifies which models support images
|
||||
- **Privacy first**: Local models process images entirely offline
|
||||
|
||||
The team has been working hard to bring this long-awaited capability to Jan, and it's been worth the wait.
|
||||
|
||||
### 🔧 MCP is stable
|
||||
|
||||
**Model Context Protocol** graduated from experimental to stable:
|
||||
- **No more experimental flags** — MCP tools work out of the box
|
||||
- **Better error handling** for smoother MCP server connections
|
||||
- **Cancel tool calls** mid-execution when needed
|
||||
- **Enhanced reliability** with improved server status tracking
|
||||
|
||||
MCP unlocks powerful workflows: web search, code execution, productivity integrations, and more.
|
||||
|
||||
### 🎯 Intelligent model management
|
||||
|
||||
- **Auto-detect capabilities**: Jan identifies tool calling and vision support for local models
|
||||
- **Model compatibility checker**: Hub shows hardware requirements before download
|
||||
- **Favorite models**: Mark frequently used models for quick access
|
||||
- **Universal GGUF import**: Import any valid .gguf file regardless of extension
|
||||
- **Hardware-aware suggestions**: Get model recommendations based on your system specs
|
||||
|
||||
### 🚀 Enhanced tool calling
|
||||
|
||||
- **GPT-OSS models**: Upgraded llama.cpp brings tool calling to more open-source models
|
||||
- **Improved performance**: Better tool execution with upgraded engine
|
||||
- **Remote provider control**: Manual toggle for cloud model capabilities
|
||||
- **Streamlined workflows**: Cancel operations, better error handling
|
||||
|
||||
## Major Features
|
||||
|
||||
### 🖼️ Multimodal support
|
||||
- **Image uploads** work with compatible local and cloud models
|
||||
- **Automatic detection** for local model vision capabilities
|
||||
- **Manual toggle** for remote providers (GPT-4V, Claude, Gemini)
|
||||
- **Privacy-preserving** local image processing
|
||||
|
||||
### 🔧 Stable MCP
|
||||
- **MCP Server stable release** — no more experimental flags needed
|
||||
- **Enhanced error handling** for MCP connections
|
||||
- **Tool cancellation** support during execution
|
||||
- **Improved server status** synchronization
|
||||
|
||||
### 🎯 Smart model features
|
||||
- **Favorite models** — bookmark your go-to models
|
||||
- **Auto-capability detection** for local models
|
||||
- **Hardware compatibility** checks in Hub
|
||||
- **Universal GGUF import** regardless of file extension
|
||||
|
||||
### ⚡ Enhanced engine
|
||||
- **Tool calling support** for GPT-OSS models
|
||||
- **Upgraded llama.cpp** version with stability improvements
|
||||
- **Better performance** across model types
|
||||
|
||||
## Improvements
|
||||
|
||||
### 🔄 API & automation
|
||||
- **Auto-start API server** on Jan startup (optional)
|
||||
- **Model auto-loading** when API server starts
|
||||
- **Ollama endpoint** support restored for custom configurations
|
||||
|
||||
### 🎨 User experience
|
||||
- **Thinking windows** for OpenRouter models render correctly
|
||||
- **Better error messages** across MCP operations
|
||||
- **Improved import UX** with retired model cleanup
|
||||
- **CPU architecture** detection at runtime
|
||||
|
||||
### 🔧 Technical enhancements
|
||||
- **Vulkan backend** re-enabled for integrated GPUs with sufficient memory
|
||||
- **Enhanced stability** with better error handling
|
||||
- **Performance optimizations** across the board
|
||||
|
||||
## Thanks to our incredible team
|
||||
|
||||
The engineering team delivered major features that users have been requesting for months. Image support required deep multimodal AI integration, while stabilizing MCP involved extensive testing and refinement. The auto-detection features showcase thoughtful UX design that makes AI more accessible.
|
||||
|
||||
Special recognition to the contributors who made v0.6.9 possible through their dedication to bringing powerful, privacy-focused AI capabilities to everyone.
|
||||
|
||||
---
|
||||
|
||||
Update your Jan or [download the latest](https://jan.ai/).
|
||||
|
||||
For the complete list of changes, see the [GitHub release notes](https://github.com/janhq/jan/releases/tag/v0.6.9).
|
||||
@ -14,7 +14,7 @@ const __dirname = dirname(__filename)
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
// Deploy to the new v2 subdomain
|
||||
site: 'https://v2.jan.ai',
|
||||
site: 'https://docs.jan.ai',
|
||||
integrations: [
|
||||
mermaid({
|
||||
theme: 'default',
|
||||
@ -40,127 +40,216 @@ export default defineConfig({
|
||||
icon: 'rocket',
|
||||
items: [
|
||||
{
|
||||
label: 'GETTING STARTED',
|
||||
label: '🚀 QUICK START',
|
||||
items: [
|
||||
{ label: 'QuickStart', slug: 'jan/quickstart' },
|
||||
{ label: 'Getting Started', slug: 'jan/quickstart' },
|
||||
{
|
||||
label: 'Install 👋 Jan',
|
||||
label: 'Install Jan',
|
||||
collapsed: false,
|
||||
autogenerate: { directory: 'jan/installation' },
|
||||
},
|
||||
{ label: 'AI Assistants', slug: 'jan/assistants' },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '🤖 MODELS',
|
||||
items: [
|
||||
{ label: 'Overview', slug: 'jan/manage-models' },
|
||||
{
|
||||
label: 'Models',
|
||||
collapsed: true,
|
||||
autogenerate: { directory: 'jan/jan-models' },
|
||||
label: 'Jan Models',
|
||||
collapsed: false,
|
||||
items: [
|
||||
{
|
||||
label: 'Jan v1',
|
||||
slug: 'jan/jan-models/jan-v1',
|
||||
},
|
||||
{
|
||||
label: 'Research Models',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{
|
||||
label: 'Jan Nano 32k',
|
||||
slug: 'jan/jan-models/jan-nano-32',
|
||||
},
|
||||
{
|
||||
label: 'Jan Nano 128k',
|
||||
slug: 'jan/jan-models/jan-nano-128',
|
||||
},
|
||||
{
|
||||
label: 'Lucy',
|
||||
slug: 'jan/jan-models/lucy',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{ label: 'Assistants', slug: 'jan/assistants' },
|
||||
{
|
||||
label: 'Cloud Providers',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ label: 'OpenAI', slug: 'jan/remote-models/openai' },
|
||||
{
|
||||
label: 'Anthropic',
|
||||
slug: 'jan/remote-models/anthropic',
|
||||
},
|
||||
{ label: 'OpenAI', slug: 'jan/remote-models/openai' },
|
||||
{ label: 'Gemini', slug: 'jan/remote-models/google' },
|
||||
{
|
||||
label: 'OpenRouter',
|
||||
slug: 'jan/remote-models/openrouter',
|
||||
},
|
||||
{ label: 'Cohere', slug: 'jan/remote-models/cohere' },
|
||||
{ label: 'Groq', slug: 'jan/remote-models/groq' },
|
||||
{
|
||||
label: 'Mistral',
|
||||
slug: 'jan/remote-models/mistralai',
|
||||
},
|
||||
{ label: 'Groq', slug: 'jan/remote-models/groq' },
|
||||
{ label: 'Cohere', slug: 'jan/remote-models/cohere' },
|
||||
{
|
||||
label: 'OpenRouter',
|
||||
slug: 'jan/remote-models/openrouter',
|
||||
},
|
||||
{
|
||||
label: 'HuggingFace 🤗',
|
||||
slug: 'jan/remote-models/huggingface',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Tutorials',
|
||||
label: 'Custom Providers',
|
||||
slug: 'jan/custom-provider',
|
||||
},
|
||||
{
|
||||
label: 'Multi-Modal Models',
|
||||
slug: 'jan/multi-modal',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '🔧 TOOLS & INTEGRATIONS',
|
||||
items: [
|
||||
{ label: 'What is MCP?', slug: 'jan/mcp' },
|
||||
{
|
||||
label: 'Examples & Tutorials',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{
|
||||
label: 'Browser Control',
|
||||
slug: 'jan/mcp-examples/browser/browserbase',
|
||||
label: 'Web & Search',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{
|
||||
label: 'Browser Control',
|
||||
slug: 'jan/mcp-examples/browser/browserbase',
|
||||
},
|
||||
{
|
||||
label: 'Serper Search',
|
||||
slug: 'jan/mcp-examples/search/serper',
|
||||
},
|
||||
{
|
||||
label: 'Exa Search',
|
||||
slug: 'jan/mcp-examples/search/exa',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Code Sandbox (E2B)',
|
||||
slug: 'jan/mcp-examples/data-analysis/e2b',
|
||||
label: 'Data & Analysis',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{
|
||||
label: 'Jupyter Notebooks',
|
||||
slug: 'jan/mcp-examples/data-analysis/jupyter',
|
||||
},
|
||||
{
|
||||
label: 'Code Sandbox (E2B)',
|
||||
slug: 'jan/mcp-examples/data-analysis/e2b',
|
||||
},
|
||||
{
|
||||
label: 'Deep Financial Research',
|
||||
slug: 'jan/mcp-examples/deepresearch/octagon',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Jupyter Notebooks',
|
||||
slug: 'jan/mcp-examples/data-analysis/jupyter',
|
||||
label: 'Productivity',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{
|
||||
label: 'Linear',
|
||||
slug: 'jan/mcp-examples/productivity/linear',
|
||||
},
|
||||
{
|
||||
label: 'Todoist',
|
||||
slug: 'jan/mcp-examples/productivity/todoist',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Design with Canva',
|
||||
slug: 'jan/mcp-examples/design/canva',
|
||||
},
|
||||
{
|
||||
label: 'Deep Financial Research',
|
||||
slug: 'jan/mcp-examples/deepresearch/octagon',
|
||||
},
|
||||
{
|
||||
label: 'Serper Search',
|
||||
slug: 'jan/mcp-examples/search/serper',
|
||||
},
|
||||
{
|
||||
label: 'Exa Search',
|
||||
slug: 'jan/mcp-examples/search/exa',
|
||||
},
|
||||
{
|
||||
label: 'Linear',
|
||||
slug: 'jan/mcp-examples/productivity/linear',
|
||||
},
|
||||
{
|
||||
label: 'Todoist',
|
||||
slug: 'jan/mcp-examples/productivity/todoist',
|
||||
label: 'Creative',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{
|
||||
label: 'Design with Canva',
|
||||
slug: 'jan/mcp-examples/design/canva',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'EXPLANATION',
|
||||
label: '⚙️ DEVELOPER',
|
||||
items: [
|
||||
{
|
||||
label: 'Local AI Engine',
|
||||
slug: 'jan/explanation/llama-cpp',
|
||||
label: 'Local API Server',
|
||||
collapsed: false,
|
||||
items: [
|
||||
{ label: 'Overview', slug: 'local-server' },
|
||||
{
|
||||
label: 'API Configuration',
|
||||
slug: 'local-server/api-server',
|
||||
},
|
||||
{
|
||||
label: 'Engine Settings',
|
||||
slug: 'local-server/llama-cpp',
|
||||
},
|
||||
{
|
||||
label: 'Server Settings',
|
||||
slug: 'local-server/settings',
|
||||
},
|
||||
{
|
||||
label: 'Integrations',
|
||||
collapsed: true,
|
||||
autogenerate: {
|
||||
directory: 'local-server/integrations',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Model Parameters',
|
||||
slug: 'jan/explanation/model-parameters',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'ADVANCED',
|
||||
items: [
|
||||
{ label: 'Manage Models', slug: 'jan/manage-models' },
|
||||
{ label: 'Model Context Protocol', slug: 'jan/mcp' },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Local Server',
|
||||
items: [
|
||||
{
|
||||
label: 'All',
|
||||
label: 'Technical Details',
|
||||
collapsed: true,
|
||||
autogenerate: { directory: 'local-server' },
|
||||
items: [
|
||||
{
|
||||
label: 'Model Parameters',
|
||||
slug: 'jan/explanation/model-parameters',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'REFERENCE',
|
||||
label: '📚 REFERENCE',
|
||||
items: [
|
||||
{ label: 'Settings', slug: 'jan/settings' },
|
||||
{ label: 'Jan Data Folder', slug: 'jan/data-folder' },
|
||||
{ label: 'Data Folder', slug: 'jan/data-folder' },
|
||||
{ label: 'Troubleshooting', slug: 'jan/troubleshooting' },
|
||||
{ label: 'Privacy Policy', slug: 'jan/privacy' },
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Browser Extension',
|
||||
link: '/browser/',
|
||||
badge: { text: 'Alpha', variant: 'tip' },
|
||||
icon: 'puzzle',
|
||||
items: [{ label: 'Overview', slug: 'browser' }],
|
||||
},
|
||||
{
|
||||
label: 'Jan Mobile',
|
||||
link: '/mobile/',
|
||||
|
||||
BIN
website/public/gifs/extension.gif
Normal file
|
After Width: | Height: | Size: 9.7 MiB |
|
Before Width: | Height: | Size: 149 KiB |
|
Before Width: | Height: | Size: 167 KiB After Width: | Height: | Size: 436 KiB |
BIN
website/src/assets/customprovider.png
Normal file
|
After Width: | Height: | Size: 543 KiB |
BIN
website/src/assets/customprovider10.png
Normal file
|
After Width: | Height: | Size: 555 KiB |
BIN
website/src/assets/customprovider2.png
Normal file
|
After Width: | Height: | Size: 118 KiB |
BIN
website/src/assets/customprovider3.png
Normal file
|
After Width: | Height: | Size: 840 KiB |
BIN
website/src/assets/customprovider4.png
Normal file
|
After Width: | Height: | Size: 508 KiB |
BIN
website/src/assets/customprovider5.png
Normal file
|
After Width: | Height: | Size: 204 KiB |
BIN
website/src/assets/customprovider6.png
Normal file
|
After Width: | Height: | Size: 263 KiB |
BIN
website/src/assets/customprovider7.png
Normal file
|
After Width: | Height: | Size: 203 KiB |
BIN
website/src/assets/customprovider8.png
Normal file
|
After Width: | Height: | Size: 374 KiB |
BIN
website/src/assets/customprovider9.png
Normal file
|
After Width: | Height: | Size: 317 KiB |
|
Before Width: | Height: | Size: 147 KiB |
|
Before Width: | Height: | Size: 160 KiB |
|
Before Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 140 KiB |
|
Before Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 185 KiB |
|
Before Width: | Height: | Size: 185 KiB |
|
Before Width: | Height: | Size: 187 KiB |
|
Before Width: | Height: | Size: 187 KiB |
|
Before Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 187 KiB |
BIN
website/src/assets/hf_hub.png
Normal file
|
After Width: | Height: | Size: 203 KiB |
BIN
website/src/assets/hf_jan_nano.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
website/src/assets/hf_jan_nano_2.png
Normal file
|
After Width: | Height: | Size: 171 KiB |
BIN
website/src/assets/hf_jan_nano_3.png
Normal file
|
After Width: | Height: | Size: 139 KiB |
BIN
website/src/assets/hf_jan_nano_4.png
Normal file
|
After Width: | Height: | Size: 152 KiB |
BIN
website/src/assets/hf_jan_nano_5.png
Normal file
|
After Width: | Height: | Size: 417 KiB |
BIN
website/src/assets/hf_jan_nano_6.png
Normal file
|
After Width: | Height: | Size: 405 KiB |
BIN
website/src/assets/hf_jan_nano_7.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
website/src/assets/hf_jan_nano_8.png
Normal file
|
After Width: | Height: | Size: 661 KiB |
BIN
website/src/assets/hf_jan_nano_9.png
Normal file
|
After Width: | Height: | Size: 158 KiB |
BIN
website/src/assets/hf_jan_setup.png
Normal file
|
After Width: | Height: | Size: 642 KiB |
BIN
website/src/assets/hf_providers.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 170 KiB |
|
Before Width: | Height: | Size: 166 KiB |
|
Before Width: | Height: | Size: 183 KiB |
|
Before Width: | Height: | Size: 4.4 MiB |
|
Before Width: | Height: | Size: 357 KiB |
|
Before Width: | Height: | Size: 745 KiB |
|
Before Width: | Height: | Size: 209 KiB |
|
Before Width: | Height: | Size: 619 KiB |
|
Before Width: | Height: | Size: 136 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 501 KiB |
|
Before Width: | Height: | Size: 481 KiB |
|
Before Width: | Height: | Size: 313 KiB |
|
Before Width: | Height: | Size: 323 KiB |
|
Before Width: | Height: | Size: 144 KiB |
BIN
website/src/assets/meme.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 174 KiB |
|
Before Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 166 KiB |
|
Before Width: | Height: | Size: 146 KiB |
|
Before Width: | Height: | Size: 136 KiB |
|
Before Width: | Height: | Size: 155 KiB |
|
Before Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 148 KiB |
|
Before Width: | Height: | Size: 167 KiB |
|
Before Width: | Height: | Size: 170 KiB |
|
Before Width: | Height: | Size: 158 KiB |
|
Before Width: | Height: | Size: 150 KiB |
|
Before Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 766 KiB |
|
Before Width: | Height: | Size: 276 KiB |
|
Before Width: | Height: | Size: 154 KiB |
|
Before Width: | Height: | Size: 156 KiB |
|
Before Width: | Height: | Size: 586 KiB |
|
Before Width: | Height: | Size: 552 KiB |
|
Before Width: | Height: | Size: 36 KiB |
BIN
website/src/assets/vision.png
Normal file
|
After Width: | Height: | Size: 374 KiB |
BIN
website/src/assets/vision2.png
Normal file
|
After Width: | Height: | Size: 874 KiB |
BIN
website/src/assets/vision3.png
Normal file
|
After Width: | Height: | Size: 604 KiB |
BIN
website/src/assets/vision4.png
Normal file
|
After Width: | Height: | Size: 376 KiB |
BIN
website/src/assets/vision5.png
Normal file
|
After Width: | Height: | Size: 957 KiB |
41
website/src/content/docs/browser/index.mdx
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
title: Jan Browser Extension
|
||||
description: Bring your favorite AI models to any website with Jan's browser extension.
|
||||
keywords:
|
||||
[
|
||||
Jan Browser Extension,
|
||||
Jan AI,
|
||||
Browser AI,
|
||||
Chrome extension,
|
||||
Firefox addon,
|
||||
local AI,
|
||||
ChatGPT alternative
|
||||
]
|
||||
banner:
|
||||
content: 'Coming in September 2025. Currently testing it with selected users and internally. 🤓'
|
||||
---
|
||||
|
||||
import { Aside, Card, CardGrid } from '@astrojs/starlight/components';
|
||||
|
||||

|
||||
|
||||
## Your AI Models, Anywhere on the Web
|
||||
|
||||
The Jan Browser Extension brings AI assistance directly to your browsing experience.
|
||||
Connect to your local Jan installation or any remote AI provider to get contextual help
|
||||
on any website without switching tabs.
|
||||
|
||||
<Aside type="note">
|
||||
**Jan Browser Extension is not yet available.** We are working hard to bring you seamless
|
||||
AI integration across all your web browsing.
|
||||
</Aside>
|
||||
|
||||
Access your preferred models without leaving your current page. Whether you're using local
|
||||
Jan models or remote providers, get instant AI assistance while reading, writing, or researching
|
||||
online.
|
||||
|
||||
### Core Features Planned:
|
||||
- **Universal Access**: Use any Jan-compatible model from any website
|
||||
- **Context Integration**: Highlight text and get AI assistance instantly
|
||||
- **Privacy Options**: Choose between local processing or remote providers
|
||||
- **Seamless Experience**: No tab switching or workflow interruption required
|
||||
@ -17,11 +17,13 @@ keywords:
|
||||
large language model,
|
||||
LLM,
|
||||
]
|
||||
banner:
|
||||
content: |
|
||||
We just launched something cool! 👋Jan now <a href="./jan/multi-modal">supports image 🖼️ attachments</a> 🎉
|
||||
---
|
||||
|
||||
import { Aside } from '@astrojs/starlight/components';
|
||||
|
||||
# Jan
|
||||
|
||||

|
||||
|
||||
|
||||
288
website/src/content/docs/jan/custom-provider.mdx
Normal file
@ -0,0 +1,288 @@
|
||||
---
|
||||
title: Custom Providers
|
||||
description: Connect Jan to any OpenAI-compatible AI service, from major cloud providers to local inference servers.
|
||||
keywords:
|
||||
[
|
||||
Jan,
|
||||
custom providers,
|
||||
OpenAI API,
|
||||
Together AI,
|
||||
vLLM,
|
||||
LMStudio,
|
||||
transformers,
|
||||
SGLang,
|
||||
API integration,
|
||||
local AI,
|
||||
cloud AI,
|
||||
]
|
||||
sidebar:
|
||||
badge:
|
||||
text: New
|
||||
variant: tip
|
||||
---
|
||||
|
||||
import { Aside } from '@astrojs/starlight/components';
|
||||
|
||||
Jan's custom provider system lets you connect to any OpenAI-compatible API service. Whether you're using cloud providers like Together AI, Fireworks, or Replicate, or running local inference servers like vLLM, LMStudio, or transformers, Jan can integrate with them seamlessly.
|
||||
|
||||
## What You Can Connect
|
||||
|
||||
**Cloud Providers:**
|
||||
- Together AI, Fireworks, Replicate
|
||||
- Perplexity, DeepInfra, Anyscale
|
||||
- Any OpenAI-compatible API service
|
||||
|
||||
**Local Inference Servers:**
|
||||
- vLLM, LMStudio, Ollama
|
||||
- SGLang, transformers, text-generation-webui
|
||||
- TensorRT-LLM, LocalAI
|
||||
|
||||
**Self-Hosted Solutions:**
|
||||
- Your own API deployments
|
||||
- Enterprise AI gateways
|
||||
- Custom model endpoints
|
||||
|
||||
## Setup Process
|
||||
|
||||
### Add a New Provider
|
||||
|
||||
Navigate to **Settings > Model Providers** and click **Add Provider**.
|
||||
|
||||

|
||||
|
||||
Enter a name for your provider. We'll use Together AI as our example.
|
||||
|
||||

|
||||
|
||||
### Get Your API Credentials
|
||||
|
||||
For cloud providers, you'll need an account and API key. Here's Together AI's dashboard showing your credits and API key location.
|
||||
|
||||

|
||||
|
||||
<Aside type="caution">
|
||||
Keep your API keys secure and never share them publicly. Most providers charge based on usage, so monitor your credits and spending.
|
||||
</Aside>
|
||||
|
||||
### Configure the Provider
|
||||
|
||||
Back in Jan, fill in your provider's details:
|
||||
|
||||
**API Base URL:** The endpoint for your service (e.g., `https://api.together.xyz/`)
|
||||
**API Key:** Your authentication token
|
||||
|
||||

|
||||
|
||||
Common endpoints for popular services:
|
||||
- **Together AI:** `https://api.together.xyz/`
|
||||
- **Fireworks:** `https://api.fireworks.ai/`
|
||||
- **Replicate:** `https://api.replicate.com/`
|
||||
- **Local vLLM:** `http://localhost:8000/` (default)
|
||||
- **LMStudio:** `http://localhost:1234/` (default)
|
||||
|
||||
### Add Model IDs
|
||||
|
||||
Click the `+` button to add specific models you want to access. Each provider offers different models with various capabilities.
|
||||
|
||||

|
||||
|
||||
For Together AI, we're adding `Qwen/Qwen3-235B-A22B-Thinking-2507`, one of the most capable reasoning models available.
|
||||
|
||||
### Configure Model Features
|
||||
|
||||
After adding a model, click the pencil icon to enable additional features like tools or vision capabilities.
|
||||
|
||||

|
||||
|
||||
Enable tools if your model supports function calling. This allows integration with Jan's MCP system for web search, code execution, and more.
|
||||
|
||||

|
||||
|
||||
### Start Using Your Custom Model
|
||||
|
||||
Open a new chat and select your custom model from the provider dropdown.
|
||||
|
||||

|
||||
|
||||
If you enabled tools, click the tools icon to activate MCP integrations. Here we have Serper MCP enabled for web search capabilities.
|
||||
|
||||

|
||||
|
||||
<Aside type="note">
|
||||
Learn how to set up web search with our [Serper MCP tutorial](./mcp-examples/search/serper).
|
||||
</Aside>
|
||||
|
||||
### Example in Action
|
||||
|
||||
Here's the Qwen model thinking through a complex query, searching the web, and providing detailed information about Sydney activities.
|
||||
|
||||

|
||||
|
||||
**Prompt used:** "What is happening in Sydney, Australia this week? What fun activities could I attend?"
|
||||
|
||||
The model demonstrated reasoning, web search integration, and comprehensive response formatting—all through Jan's custom provider system.
|
||||
|
||||
## Provider-Specific Setup
|
||||
|
||||
### Together AI
|
||||
- **Endpoint:** `https://api.together.xyz/`
|
||||
- **Popular Models:** `meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo`, `Qwen/Qwen2.5-Coder-32B-Instruct`
|
||||
- **Features:** Fast inference, competitive pricing, latest models
|
||||
- **Best For:** Production applications, latest model access
|
||||
|
||||
### Fireworks AI
|
||||
- **Endpoint:** `https://api.fireworks.ai/`
|
||||
- **Popular Models:** `accounts/fireworks/models/llama-v3p1-405b-instruct`, `accounts/fireworks/models/qwen2p5-coder-32b-instruct`
|
||||
- **Features:** Ultra-fast inference, function calling support
|
||||
- **Best For:** Real-time applications, tool usage
|
||||
|
||||
### vLLM (Local)
|
||||
- **Endpoint:** `http://localhost:8000/` (configurable)
|
||||
- **Setup:** Install vLLM, run `vllm serve MODEL_NAME --api-key YOUR_KEY`
|
||||
- **Models:** Any HuggingFace model compatible with vLLM
|
||||
- **Best For:** Self-hosted deployments, custom models
|
||||
|
||||
### LMStudio (Local)
|
||||
- **Endpoint:** `http://localhost:1234/` (default)
|
||||
- **Setup:** Download LMStudio, load a model, start local server
|
||||
- **Models:** GGUF models from HuggingFace
|
||||
- **Best For:** Easy local setup, GUI management
|
||||
|
||||
### Ollama (Local)
|
||||
- **Endpoint:** `http://localhost:11434/` (with OpenAI compatibility)
|
||||
- **Setup:** Install Ollama, run `OLLAMA_HOST=0.0.0.0 ollama serve`
|
||||
- **Models:** Ollama model library (llama3, qwen2.5, etc.)
|
||||
- **Best For:** Simple local deployment, model management
|
||||
|
||||
## Example Prompts to Try
|
||||
|
||||
### Advanced Reasoning
|
||||
```
|
||||
I'm planning to start a sustainable urban garden on my apartment balcony. Consider my location (temperate climate), space constraints (4x6 feet), budget ($200), and goals (year-round fresh herbs and vegetables). Provide a detailed plan including plant selection, container setup, watering system, and seasonal rotation schedule.
|
||||
```
|
||||
|
||||
### Research and Analysis
|
||||
```
|
||||
Compare the environmental impact of electric vehicles vs hydrogen fuel cell vehicles in 2024. Include manufacturing emissions, energy sources, infrastructure requirements, and lifecycle costs. Provide specific data and cite recent studies.
|
||||
```
|
||||
|
||||
### Creative Problem Solving
|
||||
```
|
||||
Design a mobile app that helps people reduce food waste. Consider user psychology, practical constraints, monetization, and social impact. Include wireframes description, key features, and go-to-market strategy.
|
||||
```
|
||||
|
||||
### Technical Deep Dive
|
||||
```
|
||||
Explain how large language models use attention mechanisms to understand context. Start with the basics and build up to transformer architecture, including mathematical foundations and practical implications for different model sizes.
|
||||
```
|
||||
|
||||
### Planning and Strategy
|
||||
```
|
||||
I have 6 months to learn machine learning from scratch and land an ML engineering job. Create a week-by-week study plan including theory, practical projects, portfolio development, and job search strategy. Consider my background in software development.
|
||||
```
|
||||
|
||||
## Advanced Configuration
|
||||
|
||||
### Authentication Methods
|
||||
|
||||
**API Key Header (Most Common):**
|
||||
- Standard: `Authorization: Bearer YOUR_KEY`
|
||||
- Custom: `X-API-Key: YOUR_KEY`
|
||||
|
||||
**Query Parameters:**
|
||||
- Some services use `?api_key=YOUR_KEY`
|
||||
|
||||
**Custom Headers:**
|
||||
- Enterprise gateways may require specific headers
|
||||
|
||||
### Request Customization
|
||||
|
||||
Most providers support OpenAI's standard parameters:
|
||||
- `temperature`: Response creativity (0.0-1.0)
|
||||
- `max_tokens`: Response length limit
|
||||
- `top_p`: Token selection probability
|
||||
- `frequency_penalty`: Repetition control
|
||||
- `presence_penalty`: Topic diversity
|
||||
|
||||
### Model Naming Conventions
|
||||
|
||||
Different providers use various naming schemes:
|
||||
- **HuggingFace:** `organization/model-name`
|
||||
- **Together AI:** `meta-llama/Llama-2-70b-chat-hf`
|
||||
- **Ollama:** `llama3:latest`
|
||||
- **Local:** Often just the model name
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Connection Issues
|
||||
- Verify the API endpoint URL is correct
|
||||
- Check if the service is running (for local providers)
|
||||
- Confirm network connectivity and firewall settings
|
||||
|
||||
### Authentication Failures
|
||||
- Ensure API key is copied correctly (no extra spaces)
|
||||
- Check if the key has necessary permissions
|
||||
- Verify the authentication method matches provider requirements
|
||||
|
||||
### Model Not Found
|
||||
- Confirm the model ID exists on the provider
|
||||
- Check spelling and capitalization
|
||||
- Some models require special access or approval
|
||||
|
||||
### Rate Limiting
|
||||
- Most providers have usage limits
|
||||
- Implement delays between requests if needed
|
||||
- Consider upgrading to higher tier plans
|
||||
|
||||
### Performance Issues
|
||||
- Local providers may need more powerful hardware
|
||||
- Cloud providers vary in response times
|
||||
- Check provider status pages for service issues
|
||||
|
||||
## Cost Management
|
||||
|
||||
### Cloud Provider Pricing
|
||||
- Most charge per token (input + output)
|
||||
- Prices vary significantly between models
|
||||
- Monitor usage through provider dashboards
|
||||
|
||||
### Local Provider Costs
|
||||
- Hardware requirements (RAM, GPU)
|
||||
- Electricity consumption
|
||||
- Initial setup and maintenance time
|
||||
|
||||
### Optimization Tips
|
||||
- Use smaller models for simple tasks
|
||||
- Implement caching for repeated queries
|
||||
- Set appropriate max_tokens limits
|
||||
- Monitor and track usage patterns
|
||||
|
||||
## Best Practices
|
||||
|
||||
### Security
|
||||
- Store API keys securely
|
||||
- Use environment variables in production
|
||||
- Rotate keys regularly
|
||||
- Monitor for unauthorized usage
|
||||
|
||||
### Performance
|
||||
- Choose models appropriate for your tasks
|
||||
- Implement proper error handling
|
||||
- Cache responses when possible
|
||||
- Use streaming for long responses
|
||||
|
||||
### Reliability
|
||||
- Have fallback providers configured
|
||||
- Implement retry logic
|
||||
- Monitor service availability
|
||||
- Test regularly with different models
|
||||
|
||||
## Next Steps
|
||||
|
||||
Once you have custom providers configured, explore advanced integrations:
|
||||
- Combine with [MCP tools](./mcp-examples/search/serper) for enhanced capabilities
|
||||
- Set up multiple providers for different use cases
|
||||
- Create custom assistants with provider-specific models
|
||||
- Build workflows that leverage different model strengths
|
||||
|
||||
Custom providers unlock Jan's full potential, letting you access cutting-edge models and maintain complete control over your AI infrastructure. Whether you prefer cloud convenience or local privacy, Jan adapts to your workflow.
|
||||
@ -1,207 +0,0 @@
|
||||
---
|
||||
title: Local AI Engine
|
||||
description: Understand and configure Jan's local AI engine for running models on your hardware.
|
||||
keywords:
|
||||
[
|
||||
Jan,
|
||||
Customizable Intelligence, LLM,
|
||||
local AI,
|
||||
privacy focus,
|
||||
free and open source,
|
||||
private and offline,
|
||||
conversational AI,
|
||||
no-subscription fee,
|
||||
large language models,
|
||||
Llama CPP integration,
|
||||
llama.cpp Engine,
|
||||
Intel CPU,
|
||||
AMD CPU,
|
||||
NVIDIA GPU,
|
||||
AMD GPU Radeon,
|
||||
Apple Silicon,
|
||||
Intel Arc GPU,
|
||||
]
|
||||
---
|
||||
|
||||
import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';
|
||||
|
||||
## What is llama.cpp?
|
||||
|
||||
llama.cpp is the engine that runs AI models locally on your computer. Think of it as the software
|
||||
that takes an AI model file and makes it work on your hardware - whether that's your CPU,
|
||||
graphics card, or Apple's M-series chips.
|
||||
|
||||
Originally created by Georgi Gerganov, llama.cpp is designed to run large language models
|
||||
efficiently on consumer hardware without requiring specialized AI accelerators or cloud connections.
|
||||
|
||||
## Why This Matters
|
||||
|
||||
- **Privacy**: Your conversations never leave your computer
|
||||
- **Cost**: No monthly subscription fees or API costs
|
||||
- **Speed**: No internet required once models are downloaded
|
||||
- **Control**: Choose exactly which models to run and how they behave
|
||||
|
||||
## Accessing Engine Settings
|
||||
|
||||
Find llama.cpp settings at **Settings** > **Model Providers** > **Llama.cpp**:
|
||||
|
||||

|
||||
|
||||
<Aside type="note">
|
||||
These are advanced settings. You typically only need to adjust them if models aren't working properly or you want to optimize performance for your specific hardware.
|
||||
</Aside>
|
||||
|
||||
## Engine Management
|
||||
|
||||
| Feature | What It Does | When You Need It |
|
||||
|---------|-------------|------------------|
|
||||
| **Engine Version** | Shows which version of llama.cpp you're running | Check compatibility with newer models |
|
||||
| **Check Updates** | Downloads newer engine versions | When new models require updated engine |
|
||||
| **Backend Selection** | Choose the version optimized for your hardware | After installing new graphics cards or when performance is poor |
|
||||
|
||||
## Hardware Backends
|
||||
|
||||
Jan offers different backend versions optimized for your specific hardware. Think of these as different "drivers" - each one is tuned for particular processors or graphics cards.
|
||||
|
||||
<Aside type="caution">
|
||||
Using the wrong backend can make models run slowly or fail to load. Pick the one that matches your hardware.
|
||||
</Aside>
|
||||
|
||||
<Tabs>
|
||||
|
||||
<TabItem label="Windows">
|
||||
|
||||
### NVIDIA Graphics Cards (Recommended for Speed)
|
||||
Choose based on your CUDA version (check NVIDIA Control Panel):
|
||||
|
||||
**For CUDA 12.0:**
|
||||
- `llama.cpp-avx2-cuda-12-0` (most common)
|
||||
- `llama.cpp-avx512-cuda-12-0` (newer Intel/AMD CPUs)
|
||||
|
||||
**For CUDA 11.7:**
|
||||
- `llama.cpp-avx2-cuda-11-7` (most common)
|
||||
- `llama.cpp-avx512-cuda-11-7` (newer Intel/AMD CPUs)
|
||||
|
||||
### CPU Only (No Graphics Card Acceleration)
|
||||
- `llama.cpp-avx2` (most modern CPUs)
|
||||
- `llama.cpp-avx512` (newer Intel/AMD CPUs)
|
||||
- `llama.cpp-avx` (older CPUs)
|
||||
- `llama.cpp-noavx` (very old CPUs)
|
||||
|
||||
### Other Graphics Cards
|
||||
- `llama.cpp-vulkan` (AMD, Intel Arc, some others)
|
||||
|
||||
<Aside type="note">
|
||||
**Quick Test**: Start with `avx2-cuda-12-0` if you have an NVIDIA card, or `avx2` for CPU-only. If it doesn't work, try the `avx` variant.
|
||||
</Aside>
|
||||
|
||||
</TabItem>
|
||||
|
||||
<TabItem label="Linux">
|
||||
|
||||
### NVIDIA Graphics Cards
|
||||
Same CUDA options as Windows:
|
||||
- `llama.cpp-avx2-cuda-12-0` (most common)
|
||||
- `llama.cpp-avx2-cuda-11-7` (older drivers)
|
||||
|
||||
### CPU Only
|
||||
- `llama.cpp-avx2` (most modern CPUs)
|
||||
- `llama.cpp-avx512` (newer Intel/AMD CPUs)
|
||||
- `llama.cpp-arm64` (ARM processors like Raspberry Pi)
|
||||
|
||||
### Other Graphics Cards
|
||||
- `llama.cpp-vulkan` (AMD, Intel graphics)
|
||||
|
||||
</TabItem>
|
||||
|
||||
<TabItem label="MacOS">
|
||||
|
||||
### Apple Silicon (M1/M2/M3/M4)
|
||||
- `llama.cpp-mac-arm64` (recommended)
|
||||
|
||||
### Intel Macs
|
||||
- `llama.cpp-mac-amd64`
|
||||
|
||||
<Aside type="note">
|
||||
Apple Silicon Macs automatically use the GPU through Metal - no additional setup needed.
|
||||
</Aside>
|
||||
|
||||
</TabItem>
|
||||
|
||||
</Tabs>
|
||||
|
||||
## Performance Settings
|
||||
|
||||
These control how efficiently models run:
|
||||
|
||||
| Setting | What It Does | Recommended Value | Impact |
|
||||
|---------|-------------|------------------|---------|
|
||||
| **Continuous Batching** | Process multiple requests at once | Enabled | Faster when using multiple tools or having multiple conversations |
|
||||
| **Parallel Operations** | How many requests to handle simultaneously | 4 | Higher = more multitasking, but uses more memory |
|
||||
| **CPU Threads** | How many processor cores to use | Auto-detected | More threads can speed up CPU processing |
|
||||
|
||||
## Memory Settings
|
||||
|
||||
These control how models use your computer's memory:
|
||||
|
||||
| Setting | What It Does | Recommended Value | When to Change |
|
||||
|---------|-------------|------------------|----------------|
|
||||
| **Flash Attention** | More efficient memory usage | Enabled | Leave enabled unless you have problems |
|
||||
| **Caching** | Remember recent conversations | Enabled | Speeds up follow-up questions |
|
||||
| **KV Cache Type** | Memory precision trade-off | f16 | Change to q8_0 or q4_0 if running out of memory |
|
||||
| **mmap** | Load models more efficiently | Enabled | Helps with large models |
|
||||
| **Context Shift** | Handle very long conversations | Disabled | Enable for very long chats or multiple tool calls |
|
||||
|
||||
### KV Cache Types Explained
|
||||
- **f16**: Most stable, uses more memory
|
||||
- **q8_0**: Balanced memory usage and quality
|
||||
- **q4_0**: Uses least memory, slight quality loss
|
||||
|
||||
## Troubleshooting Common Issues
|
||||
|
||||
**Models won't load:**
|
||||
- Try a different backend (switch from CUDA to CPU or vice versa)
|
||||
- Check if you have enough RAM/VRAM
|
||||
- Update to latest engine version
|
||||
|
||||
**Very slow performance:**
|
||||
- Make sure you're using GPU acceleration (CUDA/Metal/Vulkan backend)
|
||||
- Increase GPU Layers in model settings
|
||||
- Close other memory-intensive programs
|
||||
|
||||
**Out of memory errors:**
|
||||
- Reduce Context Size in model settings
|
||||
- Switch KV Cache Type to q8_0 or q4_0
|
||||
- Try a smaller model variant
|
||||
|
||||
**Random crashes:**
|
||||
- Switch to a more stable backend (try avx instead of avx2)
|
||||
- Disable overclocking if you have it enabled
|
||||
- Update graphics drivers
|
||||
|
||||
## Quick Setup Guide
|
||||
|
||||
**For most users:**
|
||||
1. Use the default backend that Jan installs
|
||||
2. Leave all performance settings at defaults
|
||||
3. Only adjust if you experience problems
|
||||
|
||||
**If you have an NVIDIA graphics card:**
|
||||
1. Download the appropriate CUDA backend
|
||||
2. Make sure GPU Layers is set high in model settings
|
||||
3. Enable Flash Attention
|
||||
|
||||
**If models are too slow:**
|
||||
1. Check you're using GPU acceleration
|
||||
2. Try enabling Continuous Batching
|
||||
3. Close other applications using memory
|
||||
|
||||
**If running out of memory:**
|
||||
1. Change KV Cache Type to q8_0
|
||||
2. Reduce Context Size in model settings
|
||||
3. Try a smaller model
|
||||
|
||||
<Aside type="note">
|
||||
Most users can run Jan successfully without changing any of these settings. The defaults are chosen
|
||||
to work well on typical hardware.
|
||||
</Aside>
|
||||
@ -18,8 +18,6 @@ keywords:
|
||||
---
|
||||
import { Aside, Steps } from '@astrojs/starlight/components'
|
||||
|
||||
# Model Parameters
|
||||
|
||||
Model parameters control how your AI thinks and responds. Think of them as the AI's personality settings and performance controls.
|
||||
|
||||
## How to Access Settings
|
||||
|
||||
@ -174,8 +174,6 @@ Configuration for GPU support:
|
||||
|
||||
<Tabs>
|
||||
<TabItem label="NVIDIA GPU">
|
||||
<ol>
|
||||
|
||||
### Step 1: Verify Hardware & Install Dependencies
|
||||
|
||||
**1.1. Check GPU Detection**
|
||||
@ -221,8 +219,6 @@ Configuration for GPU support:
|
||||
<Aside type="note">
|
||||
CUDA offers better performance than Vulkan.
|
||||
</Aside>
|
||||
|
||||
</ol>
|
||||
</TabItem>
|
||||
|
||||
<TabItem label="AMD GPU">
|
||||
|
||||
@ -20,7 +20,6 @@ sidebar:
|
||||
|
||||
import { Aside } from '@astrojs/starlight/components';
|
||||
|
||||

|
||||
|
||||
## Why Jan Nano?
|
||||
|
||||
|
||||
@ -5,7 +5,6 @@ description: Compact 1.7B model optimized for web search with tool calling
|
||||
|
||||
import { Aside } from '@astrojs/starlight/components';
|
||||
|
||||

|
||||
|
||||
## Overview
|
||||
|
||||
@ -13,8 +12,6 @@ Lucy is a 1.7B parameter model built on Qwen3-1.7B, optimized for web search thr
|
||||
|
||||
## Performance
|
||||
|
||||
### SimpleQA Benchmark
|
||||
|
||||
Lucy achieves competitive performance on SimpleQA despite its small size:
|
||||
|
||||

|
||||
@ -23,7 +20,7 @@ The benchmark shows Lucy (1.7B) compared against models ranging from 4B to 600B+
|
||||
|
||||
## Requirements
|
||||
|
||||
- **Memory**:
|
||||
- **Memory**:
|
||||
- Minimum: 4GB RAM (with Q4 quantization)
|
||||
- Recommended: 8GB RAM (with Q8 quantization)
|
||||
- **Search API**: Serper API key required for web search functionality
|
||||
@ -100,12 +97,12 @@ Min-p: 0.0
|
||||
|
||||
```bibtex
|
||||
@misc{dao2025lucyedgerunningagenticweb,
|
||||
title={Lucy: edgerunning agentic web search on mobile with machine generated task vectors},
|
||||
title={Lucy: edgerunning agentic web search on mobile with machine generated task vectors},
|
||||
author={Alan Dao and Dinh Bach Vu and Alex Nguyen and Norapat Buppodom},
|
||||
year={2025},
|
||||
eprint={2508.00360},
|
||||
archivePrefix={arXiv},
|
||||
primaryClass={cs.CL},
|
||||
url={https://arxiv.org/abs/2508.00360},
|
||||
url={https://arxiv.org/abs/2508.00360},
|
||||
}
|
||||
```
|
||||
|
||||
@ -1,43 +1,47 @@
|
||||
---
|
||||
title: Managing Models
|
||||
description: Manage your interaction with AI models locally.
|
||||
title: Models Overview
|
||||
description: Manage AI models in Jan - local and cloud options
|
||||
keywords:
|
||||
[
|
||||
Jan,
|
||||
Customizable Intelligence, LLM,
|
||||
local AI,
|
||||
privacy focus,
|
||||
free and open source,
|
||||
private and offline,
|
||||
conversational AI,
|
||||
no-subscription fee,
|
||||
large language models,
|
||||
threads,
|
||||
chat history,
|
||||
thread history,
|
||||
AI models,
|
||||
local models,
|
||||
cloud models,
|
||||
GGUF,
|
||||
Llama.cpp,
|
||||
model management,
|
||||
OpenAI,
|
||||
Anthropic,
|
||||
model selection,
|
||||
hardware requirements,
|
||||
privacy,
|
||||
]
|
||||
---
|
||||
|
||||
import { Aside } from '@astrojs/starlight/components';
|
||||
|
||||
This guide shows you how to add, customize, and delete models within Jan.
|
||||
AI models power Jan's conversations. You can run models locally on your device for privacy, or connect to cloud providers for more power.
|
||||
|
||||
## Local Model
|
||||
## Quick Start
|
||||
|
||||
Local models are managed through [Llama.cpp](https://github.com/ggerganov/llama.cpp), and these models are in a
|
||||
format called GGUF. When you run them locally, they will use your computer's memory (RAM) and processing power, so
|
||||
please make sure that you download models that match the hardware specifications for your operating system:
|
||||
**New to Jan?** Start with **Jan-v1** (4B) - it runs on most computers
|
||||
**Limited hardware?** Use cloud models with your API keys
|
||||
**Privacy focused?** Download any local model - your data never leaves your device
|
||||
|
||||
## Local Models
|
||||
|
||||
Local models are managed through [Llama.cpp](https://github.com/ggerganov/llama.cpp), and these models are in a format called GGUF. When you run them locally, they will use your computer's memory (RAM) and processing power, so please make sure that you download models that match the hardware specifications for your operating system:
|
||||
- [Mac](/docs/desktop/mac#compatibility)
|
||||
- [Windows](/docs/desktop/windows#compatibility)
|
||||
- [Linux](/docs/desktop/linux#compatibility).
|
||||
- [Linux](/docs/desktop/linux#compatibility)
|
||||
|
||||
### Adding Models
|
||||
### Adding Local Models
|
||||
|
||||
#### 1. Download from Jan Hub (Recommended)
|
||||
|
||||
The easiest way to get started is using Jan's built-in model hub (which is connected to [HuggingFace's Model Hub](https://huggingface.co/models):
|
||||
The easiest way to get started is using Jan's built-in model hub (connected to [HuggingFace's Model Hub](https://huggingface.co/models)):
|
||||
1. Go to the **Hub** tab
|
||||
2. Browse available models and click on any model to see details about it
|
||||
2. Browse available models and click on any model to see details
|
||||
3. Choose a model that fits your needs & hardware specifications
|
||||
4. Click **Download** on your chosen model
|
||||
|
||||
@ -47,141 +51,140 @@ Jan will indicate if a model might be **Slow on your device** or **Not enough RA
|
||||
|
||||

|
||||
|
||||
|
||||
#### 2. Import from [Hugging Face](https://huggingface.co/)
|
||||
#### 2. Import from Hugging Face
|
||||
|
||||
You can download models with a direct link from Hugging Face:
|
||||
|
||||
**Note:** Some models require a Hugging Face Access Token. Enter your token in **Settings > Model Providers > Hugging Face** before importing.
|
||||
|
||||
1. Visit the [Hugging Face Models](https://huggingface.co/models) page.
|
||||
2. Find the model you want to use, make sure it is a GGUF file that fits in your computer.
|
||||
1. Visit [Hugging Face Models](https://huggingface.co/models)
|
||||
2. Find a GGUF model that fits your computer
|
||||
3. Copy the **model ID** (e.g., TheBloke/Mistral-7B-v0.1-GGUF)
|
||||
4. In Jan, paste the model ID to the **Search** bar in **Hub** page
|
||||
5. Select your preferred quantized version to download (if the option is available)
|
||||
5. Select your preferred quantized version to download
|
||||
|
||||
**Copy the model ID.**
|
||||
**Copy the model ID:**
|
||||

|
||||
|
||||
**Paste it in Jan's Hub Search Bar.**
|
||||
**Paste it in Jan's Hub Search Bar:**
|
||||

|
||||
|
||||
#### 3. Import Local Files
|
||||
|
||||
If you already have one or many GGUF model files on your computer:
|
||||
1. In Jan, go to **Settings > Model Providers > Llama.cpp**
|
||||
If you already have GGUF model files on your computer:
|
||||
1. Go to **Settings > Model Providers > Llama.cpp**
|
||||
2. Click **Import** and select your GGUF file(s)
|
||||
3. Choose how you want to import:
|
||||
- **Link Files:** Creates symbolic links to your model files (saves space)
|
||||
- **Duplicate:** Makes a copy of model files in Jan's directory
|
||||
4. Click **Import** to complete (check the [Jan Data Folder](./data-folder) section for more info)
|
||||
|
||||
<Aside type="caution">
|
||||
You need to own your **model configurations**, use at your own risk. Misconfigurations may result in lower
|
||||
quality or unexpected outputs. Learn about [model configurations here](./model-parameters).
|
||||
</Aside>
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
3. Choose how to import:
|
||||
- **Link Files:** Creates symbolic links (saves space)
|
||||
- **Duplicate:** Copies files to Jan's directory
|
||||
4. Click **Import** to complete
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
#### 4. Manual Setup
|
||||
|
||||
For advanced users who want to add a specific model that is not available within the Jan **Hub**:
|
||||
For advanced users who want to add models not available in Jan Hub:
|
||||
|
||||
##### Step 1: Create Model File
|
||||
|
||||
1. Navigate to the [Jan Data Folder](./data-folder)
|
||||
2. Open `models` folder
|
||||
3. Create a new **Folder** for your model
|
||||
3. Create a new folder for your model
|
||||
4. Add your `model.gguf` file
|
||||
5. Add your `model.json` file with your configuration. Here's an example with "TinyLlama Chat 1.1B Q4":
|
||||
5. Add a `model.yml` configuration file. Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"filename": "tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf",
|
||||
"url": "https://huggingface.co/TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF/resolve/main/tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf"
|
||||
}
|
||||
],
|
||||
"id": "tinyllama-1.1b",
|
||||
"object": "model",
|
||||
"name": "TinyLlama Chat 1.1B Q4",
|
||||
"version": "1.0",
|
||||
"description": "TinyLlama is a tiny model with only 1.1B. It's a good model for less powerful computers.",
|
||||
"format": "gguf",
|
||||
"settings": {
|
||||
"ctx_len": 4096,
|
||||
"prompt_template": "<|system|>\n{system_message}<|user|>\n{prompt}<|assistant|>",
|
||||
"llama_model_path": "tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf"
|
||||
},
|
||||
"parameters": {
|
||||
"temperature": 0.7,
|
||||
"top_p": 0.95,
|
||||
"stream": true,
|
||||
"max_tokens": 2048,
|
||||
"stop": [],
|
||||
"frequency_penalty": 0,
|
||||
"presence_penalty": 0
|
||||
},
|
||||
"metadata": {
|
||||
"author": "TinyLlama",
|
||||
"tags": [
|
||||
"Tiny",
|
||||
"Foundation Model"
|
||||
],
|
||||
"size": 669000000
|
||||
},
|
||||
"engine": "nitro"
|
||||
}
|
||||
```
|
||||
##### Step 2: Modify Model Parameters
|
||||
|
||||
Key fields to configure:
|
||||
1. The **Settings** array is where you can set the path or location of your model in your computer, the context
|
||||
length allowed, and the chat template expected by your model.
|
||||
2. The [**Parameters**](./model-parameters) are the adjustable settings that affect how your model operates or
|
||||
processes the data. The fields in the parameters array are typically general and can be used across different
|
||||
models. Here is an example of model parameters:
|
||||
|
||||
```json
|
||||
"parameters":{
|
||||
"temperature": 0.7,
|
||||
"top_p": 0.95,
|
||||
"stream": true,
|
||||
"max_tokens": 4096,
|
||||
"frequency_penalty": 0,
|
||||
"presence_penalty": 0,
|
||||
}
|
||||
```yaml
|
||||
model_path: llamacpp/models/Jan-v1-4B-Q4_K_M/model.gguf
|
||||
name: Jan-v1-4B-Q4_K_M
|
||||
size_bytes: 2497281632
|
||||
```
|
||||
|
||||
### Delete Models
|
||||
That's it! Jan now uses a simplified YAML format. All other parameters (temperature, context length, etc.) can be configured directly in the UI when you select the model.
|
||||
|
||||
##### Step 2: Customize in the UI
|
||||
|
||||
Once your model is added:
|
||||
1. Select it in a chat
|
||||
2. Click the gear icon next to the model
|
||||
3. Adjust any parameters you need
|
||||
|
||||
<Aside type="note">
|
||||
The simplified `model.yml` format makes model management easier. All advanced settings are now accessible through Jan's UI rather than requiring manual JSON editing.
|
||||
</Aside>
|
||||
|
||||
### Delete Local Models
|
||||
|
||||
1. Go to **Settings > Model Providers > Llama.cpp**
|
||||
2. Find the model you want to remove
|
||||
3. Select the three dots icon next to it and select **Delete Model**
|
||||
3. Click the three dots icon and select **Delete Model**
|
||||
|
||||

|
||||
|
||||
## Cloud Models
|
||||
|
||||
Jan supports connecting to various AI cloud providers through OpenAI-compatible APIs, including OpenAI (GPT-4o, o1), Anthropic (Claude), Groq, Mistral, and more.
|
||||
|
||||
<Aside type="note">
|
||||
When using cloud models, be aware of any associated costs and rate limits from the providers. See detailed guide for
|
||||
each cloud model provider [here](./remote-models/anthropic).
|
||||
When using cloud models, be aware of associated costs and rate limits from the providers. See detailed guides for each provider in the [Cloud Providers section](./remote-models/anthropic).
|
||||
</Aside>
|
||||
|
||||
Jan supports connecting to various AI cloud providers that are OpenAI API-compatible, including: OpenAI (GPT-4o, o3,...),
|
||||
Anthropic (Claude), Groq, Mistral, and more.
|
||||
1. Navigate to the **Settings** page
|
||||
2. Under **Model Providers** section in the left sidebar, choose your preferred provider (OpenAI, Anthropic, etc.)
|
||||
### Setting Up Cloud Models
|
||||
|
||||
1. Navigate to **Settings**
|
||||
2. Under **Model Providers** in the left sidebar, choose your provider
|
||||
3. Enter your API key
|
||||
4. The activated cloud models will be available in your model selector inside the **Chat** panel
|
||||
4. Activated cloud models appear in your model selector
|
||||
|
||||

|
||||

|
||||
|
||||
As soon as you add your key for a model provider like Anthropic or OpenAI, you will be able to pick one of their models to chat with.
|
||||
Once you add your API key, you can select any of that provider's models in the chat interface:
|
||||
|
||||

|
||||

|
||||
|
||||
## Choosing Between Local and Cloud
|
||||
|
||||
### Local Models
|
||||
**Best for:**
|
||||
- Privacy-sensitive work
|
||||
- Offline usage
|
||||
- Unlimited conversations without costs
|
||||
- Full control over model behavior
|
||||
|
||||
**Requirements:**
|
||||
- 8GB RAM minimum (16GB+ recommended)
|
||||
- 10-50GB storage per model
|
||||
- CPU or GPU for processing
|
||||
|
||||
### Cloud Models
|
||||
**Best for:**
|
||||
- Advanced capabilities (GPT-4, Claude 3)
|
||||
- Limited hardware
|
||||
- Occasional use
|
||||
- Latest model versions
|
||||
|
||||
**Requirements:**
|
||||
- Internet connection
|
||||
- API keys from providers
|
||||
- Usage-based payment
|
||||
|
||||
## Hardware Guidelines
|
||||
|
||||
| RAM | Recommended Model Size |
|
||||
|-----|----------------------|
|
||||
| 8GB | 1-3B parameters |
|
||||
| 16GB | 7B parameters |
|
||||
| 32GB | 13B parameters |
|
||||
| 64GB+ | 30B+ parameters |
|
||||
|
||||
<Aside type="tip">
|
||||
Start with smaller models and upgrade as needed. Jan shows compatibility warnings before downloading.
|
||||
</Aside>
|
||||
|
||||
## Next Steps
|
||||
|
||||
- [Explore Jan Models](./jan-models/jan-v1) - Our optimized models
|
||||
- [Set up Cloud Providers](./remote-models/openai) - Connect external services
|
||||
- [Learn Model Parameters](./explanation/model-parameters) - Fine-tune behavior
|
||||
- [Create AI Assistants](./assistants) - Customize models with instructions
|
||||
|
||||
@ -40,10 +40,6 @@ complexity of managing Python environments or dependencies locally.
|
||||
|
||||

|
||||
|
||||
<Aside type="note">
|
||||
Don't forget that MCP gets enabled once you turn on Experimental Features in Jan's General settings.
|
||||
</Aside>
|
||||
|
||||
2. **Get API Key**: Sign up at [e2b.dev](https://e2b.dev/), generate an API key
|
||||
|
||||

|
||||
|
||||
@ -56,7 +56,6 @@ Linear MCP offers extensive project management capabilities:
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Jan with experimental features enabled
|
||||
- Linear account (free for up to 250 issues)
|
||||
- Model with strong tool calling support
|
||||
- Active internet connection
|
||||
@ -80,10 +79,6 @@ Once logged in, you'll see your workspace:
|
||||
|
||||
### Enable MCP in Jan
|
||||
|
||||
<Aside type="caution">
|
||||
Enable **Experimental Features** in **Settings > General** if you don't see the MCP Servers option.
|
||||
</Aside>
|
||||
|
||||
1. Go to **Settings > MCP Servers**
|
||||
2. Toggle **Allow All MCP Tool Permission** ON
|
||||
|
||||
|
||||
@ -32,7 +32,6 @@ import { Aside } from '@astrojs/starlight/components';
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Jan with experimental features enabled
|
||||
- Todoist account (free or premium)
|
||||
- Model with strong tool calling support
|
||||
- Node.js installed
|
||||
@ -65,10 +64,6 @@ Once logged in, you'll see your main dashboard:
|
||||
|
||||
### Enable MCP in Jan
|
||||
|
||||
<Aside type="caution">
|
||||
If you don't see the MCP Servers option, enable **Experimental Features** in **Settings > General** first.
|
||||
</Aside>
|
||||
|
||||
1. Go to **Settings > MCP Servers**
|
||||
2. Toggle **Allow All MCP Tool Permission** ON
|
||||
|
||||
|
||||
@ -9,7 +9,9 @@ sidebar:
|
||||
|
||||
import { Aside } from '@astrojs/starlight/components';
|
||||
|
||||
[Serper](https://serper.dev) provides Google search results through a simple API, making it perfect for giving AI models access to current web information. The Serper MCP integration enables Jan models to search the web and retrieve real-time information.
|
||||
[Serper](https://serper.dev) provides Google search results through a simple API, making it
|
||||
perfect for giving AI models access to current web information. The Serper MCP integration
|
||||
enables Jan models to search the web and retrieve real-time information.
|
||||
|
||||
## Available Tools
|
||||
|
||||
@ -18,7 +20,6 @@ import { Aside } from '@astrojs/starlight/components';
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Jan with experimental features enabled
|
||||
- Serper API key from [serper.dev](https://serper.dev)
|
||||
- Model with tool calling support (recommended: Jan v1)
|
||||
|
||||
@ -28,13 +29,6 @@ Serper offers 2,500 free searches upon signup - enough for extensive testing and
|
||||
|
||||
## Setup
|
||||
|
||||
### Enable Experimental Features
|
||||
|
||||
1. Go to **Settings** > **General**
|
||||
2. Toggle **Experimental Features** ON
|
||||
|
||||

|
||||
|
||||
### Enable MCP
|
||||
|
||||
1. Go to **Settings** > **MCP Servers**
|
||||
@ -78,12 +72,7 @@ Jan v1 is optimized for tool calling and works excellently with Serper:
|
||||
|
||||
### Enable Tool Calling
|
||||
|
||||
1. Go to **Settings** > **Model Providers** > **Llama.cpp**
|
||||
2. Find Jan v1 in your models list
|
||||
3. Click the edit icon
|
||||
4. Toggle **Tools** ON
|
||||
|
||||

|
||||
Tool calling is now enabled by default on Jan.
|
||||
|
||||
## Usage
|
||||
|
||||
@ -102,7 +91,8 @@ What are the latest developments in quantum computing this week?
|
||||
|
||||
**Comparative Analysis:**
|
||||
```
|
||||
What are the main differences between the Rust programming language and C++? Be spicy, hot takes are encouraged. 😌
|
||||
What are the main differences between the Rust programming language and C++? Be spicy, hot
|
||||
takes are encouraged. 😌
|
||||
```
|
||||
|
||||
|
||||
@ -140,12 +130,10 @@ What restaurants opened in San Francisco this month? Focus on Japanese cuisine.
|
||||
**No search results:**
|
||||
- Verify API key is correct
|
||||
- Check remaining credits at serper.dev
|
||||
- Ensure MCP server shows as active
|
||||
|
||||
**Tools not appearing:**
|
||||
- Confirm experimental features are enabled
|
||||
- Verify tool calling is enabled for your model
|
||||
- Restart Jan after configuration changes
|
||||
- Ensure MCP Server shows as active
|
||||
|
||||
**Poor search quality:**
|
||||
- Use more specific search terms
|
||||
@ -164,4 +152,6 @@ Each search query consumes one API credit. Monitor usage at serper.dev dashboard
|
||||
|
||||
## Next Steps
|
||||
|
||||
Serper MCP enables Jan v1 to access current web information, making it a powerful research assistant. Combine with other MCP tools for even more capabilities - use Serper for search, then E2B for data analysis, or Jupyter for visualization.
|
||||
Serper MCP enables models to access current web information, making them powerful research
|
||||
assistants. Combine with other MCP tools for even more capabilities - use Serper for search,
|
||||
then E2B for data analysis, or Jupyter for visualization.
|
||||
|
||||
@ -1,25 +1,39 @@
|
||||
---
|
||||
title: Model Context Protocol
|
||||
description: Manage your interaction with AI locally.
|
||||
description: Extend Jan's capabilities with tools and external integrations through MCP.
|
||||
keywords:
|
||||
[
|
||||
Jan,
|
||||
Customizable Intelligence, LLM,
|
||||
MCP,
|
||||
Model Context Protocol,
|
||||
tools,
|
||||
integrations,
|
||||
AI tools,
|
||||
local AI,
|
||||
privacy focus,
|
||||
free and open source,
|
||||
private and offline,
|
||||
conversational AI,
|
||||
no-subscription fee,
|
||||
large language models,
|
||||
threads,
|
||||
chat history,
|
||||
thread history,
|
||||
external APIs,
|
||||
]
|
||||
---
|
||||
|
||||
import { Aside } from '@astrojs/starlight/components';
|
||||
|
||||
## Tools in Jan
|
||||
|
||||
Jan supports powerful tool integrations that extend your AI's capabilities beyond simple text generation. These tools are implemented through the **Model Context Protocol (MCP)**, allowing your AI to search the web, execute code, manage files, and interact with external services.
|
||||
|
||||
**Available tool categories:**
|
||||
- **Web & Search** - Real-time web search, browser automation
|
||||
- **Code & Analysis** - Jupyter notebooks, code execution, data analysis
|
||||
- **Productivity** - Task management, calendar integration, note-taking
|
||||
- **Creative** - Design tools, content generation, media manipulation
|
||||
- **File Management** - Document processing, file operations, data extraction
|
||||
|
||||
Tools work with both local and cloud models, though compatibility varies. Cloud models like GPT-4 and Claude typically offer the best tool-calling performance, while newer local models are rapidly improving their tool capabilities.
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
subgraph "What is MCP?"
|
||||
@ -62,139 +76,223 @@ graph TD
|
||||
style Templates fill:transparent
|
||||
```
|
||||
|
||||
## What is MCP?
|
||||
|
||||
Jan now supports the **Model Context Protocol (MCP)**, an open standard designed to allow language models to
|
||||
interact with external tools and data sources.
|
||||
Jan supports the **Model Context Protocol (MCP)**, an open standard that allows AI models to interact with external tools and data sources in a secure, standardized way.
|
||||
|
||||
MCPs act as a common interface, standardizing the way an AI model can interact with external tools and data
|
||||
sources. This enables a model to connect to any MCP-compliant tool without requiring custom
|
||||
integration work. The way this works is via clients and servers. Clients are connected to an AI model and a host
|
||||
where a user will describe the task needed to be done. These applications hosting client will want to connect
|
||||
to different data sources to accomplish a task, for example, notion, google sheets, or even custom APIs. These
|
||||
applications will be connected to a server with prompts, tools, and data sources which will be used to complete
|
||||
the task.
|
||||
MCP solves the integration challenge by creating a common interface between AI models and external tools. Instead of building custom connectors for every model-tool combination, MCP provides a universal protocol that any compatible model can use with any compatible tool.
|
||||
|
||||
Jan is an MCP host that allows you to download different clients and servers and use them to accomplish a task.
|
||||
**How it works:**
|
||||
- **MCP Servers** provide tools, data sources, and capabilities
|
||||
- **MCP Clients** (like Jan) connect models to these servers
|
||||
- **Standardized Protocol** ensures compatibility across different implementations
|
||||
|
||||
This document outlines the benefits, risks, and implementation of MCPs within Jan.
|
||||
This architecture means you can easily add new capabilities to your AI without complex integrations, and tools built for one AI system work with others that support MCP.
|
||||
|
||||
## Core Benefits of MCP
|
||||
## Core Benefits
|
||||
|
||||
Integrating MCP provides a structured way to extend the capabilities of the models you use in Jan. Here are the three
|
||||
**Standardization:** MCP eliminates the "M x N" integration problem where every AI model needs unique connectors for every tool. One standard interface works everywhere.
|
||||
|
||||
* **Standardization:** MCP aims to solve the "M x N" integration problem, where every model (M) needs a
|
||||
unique connector for every tool (N). By adapting to a single standard, any compliant model can interface with any compliant tool.
|
||||
* **Extensibility:** This allows you to augment your models with new abilities. For instance, an AI can be granted
|
||||
access to search your local codebase, query a database, or interact with web APIs, all through the same protocol.
|
||||
* **Flexibility:** Because the interface is standardized, you can swap out models or tools with minimal friction,
|
||||
making your workflows more modular and adaptable over time.
|
||||
**Extensibility:** Add powerful new capabilities to your AI models. Search local codebases, query databases, interact with web APIs, automate browser tasks, and more.
|
||||
|
||||
**Flexibility:** Swap models and tools easily. Your MCP setup works whether you're using local models, Claude, GPT-4, or future AI systems.
|
||||
|
||||
**Security:** User-controlled permissions ensure you decide which tools can access what resources. Tools run in isolated environments with explicit consent.
|
||||
|
||||
<Aside type="caution">
|
||||
Please note that not all models that you can download and use, whether in Jan or other tools, may be good at
|
||||
tool calling or compatible with MCP. Make sure that the model you choose is MCP-compliant before integrating
|
||||
it into your workflows. This might be available in the model card or you may need to implement it yourself to
|
||||
test the capabilities of the model.
|
||||
Not all models excel at tool calling. For best results:
|
||||
- **Cloud models:** GPT-4, Claude 3.5+, and Gemini Pro offer excellent tool capabilities
|
||||
- **Local models:** Newer models like Qwen3, Gemma3, and function-calling variants work well
|
||||
- **Check compatibility:** Review model cards for tool-calling performance before setup
|
||||
</Aside>
|
||||
|
||||
## Model Compatibility Requirements
|
||||
|
||||
<Aside type="note">
|
||||
To use MCP effectively, ensure your AI model supports tool calling capabilities:
|
||||
- For cloud models (like Claude or GPT-4): Verify tool calling is enabled in your API settings
|
||||
- For local models: Enable tool calling in the model parameters [click the edit button in Model Capabilities](/docs/model-parameters#model-capabilities-edit-button)
|
||||
- Check the model's documentation to confirm MCP compatibility
|
||||
To use MCP tools effectively, ensure your model supports tool calling:
|
||||
|
||||
**For cloud models:**
|
||||
- Enable tool calling in provider settings (usually automatic)
|
||||
- Verify API supports function calling endpoints
|
||||
- Check model-specific documentation for tool capabilities
|
||||
|
||||
**For local models:**
|
||||
- Enable tool calling in model settings (gear icon → capabilities)
|
||||
- Choose models specifically trained for function calling
|
||||
- Monitor performance as tool complexity increases
|
||||
</Aside>
|
||||
|
||||
## Considerations and Risks
|
||||
## Security and Considerations
|
||||
|
||||
While powerful, MCP is an evolving standard, and its use requires careful consideration of the following points:
|
||||
MCP provides powerful capabilities that require careful security consideration:
|
||||
|
||||
* **Security:** Granting a model access to external tools is a significant security consideration. A compromised
|
||||
tool or a malicious prompt could potentially lead to unintended actions or data exposure. Jan's implementation
|
||||
focuses on user-managed permissions to mitigate this risk, meaning, you have to turn on the permission for each
|
||||
tool individually.
|
||||
* **Standard Maturity:** As a relatively new protocol, best practices or sensible defaults are still being
|
||||
established. Users should be aware of potential issues like prompt injection, where an input could be crafted to
|
||||
misuse a tool's capabilities.
|
||||
* **Resource Management:** Active MCP connections may consume a portion of a model's context window, which could
|
||||
affect performance (i.e., the more tools the model and the larger the context of the conversation has the longer
|
||||
you will need to wait for a response). Efficient management of tools and their outputs is important.
|
||||
**Security Model:**
|
||||
- **Explicit permissions** for each tool and capability
|
||||
- **Isolated execution** prevents cross-tool interference
|
||||
- **User approval** required for sensitive operations
|
||||
- **Audit trails** track all tool usage and outputs
|
||||
|
||||
**Performance Impact:**
|
||||
- **Context usage:** Active tools consume model context window space
|
||||
- **Response time:** More tools may slow generation slightly
|
||||
- **Resource usage:** Some tools require additional system resources
|
||||
|
||||
## Configure and Use MCPs within Jan
|
||||
**Best Practices:**
|
||||
- Enable only tools you actively need
|
||||
- Review tool permissions regularly
|
||||
- Monitor system resource usage
|
||||
- Keep MCP servers updated for security patches
|
||||
|
||||
To illustrate how MCPs can be used within Jan, we will walk through an example using the [Browser MCP](https://browsermcp.io/).
|
||||
## Setting Up MCP in Jan
|
||||
|
||||
Before we begin, you will need to enable experimental features at `General` > `Advanced`. Next, go to `Settings` > `MCP Servers`, and toggle
|
||||
the `Allow All MCP Tool Permission` switch ON.
|
||||
### Prerequisites
|
||||
|
||||

|
||||
Ensure you have the required runtime environments:
|
||||
- **Node.js** - Download from [nodejs.org](https://nodejs.org/)
|
||||
- **Python** - Download from [python.org](https://www.python.org/)
|
||||
|
||||
Please note that you will also need to have **NodeJS** and/or **Python** installed on your machine. In case you don't
|
||||
have either, you can download them from the official websites at the links below:
|
||||
- [Node.js](https://nodejs.org/)
|
||||
- [Python](https://www.python.org/)
|
||||
Most MCP tools require one or both of these environments.
|
||||
|
||||
### Enable MCP Support
|
||||
|
||||
### Browser MCP
|
||||
Navigate to **Settings → MCP Servers** and toggle **Allow All MCP Tool Permission** to ON.
|
||||
|
||||
- Click on the `+` sign on the upper right-hand corner of the MCP box.
|
||||

|
||||
|
||||

|
||||
This global setting allows Jan to connect to MCP servers. You'll still control individual tool permissions.
|
||||
|
||||
- Enter the following details to configure the BrowserMCP:
|
||||
- **Server Name**: `browsermcp`
|
||||
- **Command**: `npx`
|
||||
- **Arguments**: `@browsermcp/mcp`
|
||||
- **Environment Variables**: You can leave this field empty.
|
||||
### Example: Browser MCP Setup
|
||||
|
||||

|
||||
Let's configure Browser MCP for web automation as a practical example:
|
||||
|
||||
- Check that the server has been activated successfully.
|
||||
#### Step 1: Add MCP Server
|
||||
|
||||

|
||||
Click the `+` button in the MCP Servers section:
|
||||
|
||||
- Open your favorite chrome-based browser (e.g., Google Chrome, Brave, Vivaldi, Microsoft Edge, etc...) and navigate to the
|
||||
[Browser MCP Extension Page](https://chromewebstore.google.com/detail/browser-mcp-automate-your/bjfgambnhccakkhmkepdoekmckoijdlc).
|
||||

|
||||
|
||||

|
||||
#### Step 2: Configure Browser MCP
|
||||
|
||||
- Make sure to enable the extension to run on private windows. Since Browser Use will have access to all sites you've
|
||||
already logged into in your regular browser session, it is best to give it a clean slate to start from.
|
||||
Enter these details:
|
||||
- **Server Name:** `browsermcp`
|
||||
- **Command:** `npx`
|
||||
- **Arguments:** `@browsermcp/mcp`
|
||||
- **Environment Variables:** Leave empty
|
||||
|
||||

|
||||

|
||||
|
||||
- Enable the extension to run on private windows by clicking on it and Connecting to the Browser MCP server.
|
||||
#### Step 3: Verify Connection
|
||||
|
||||

|
||||
Confirm the server shows as active:
|
||||
|
||||
- Go back to Jan and pick a model with good tool use capabilities, for example, Claude 3.7 and 4 Sonnet, or Claude 4 Opus,
|
||||
and make sure to enable tool calling via the UI by going to **Model Providers > Anthropic** and, after you have entered your
|
||||
API key, enable tool from the **+** button.
|
||||

|
||||
|
||||

|
||||
#### Step 4: Install Browser Extension
|
||||
|
||||
You can check and see if this was accurate below.
|
||||
Install the [Browser MCP Chrome Extension](https://chromewebstore.google.com/detail/browser-mcp-automate-your/bjfgambnhccakkhmkepdoekmckoijdlc) to enable browser control:
|
||||
|
||||

|
||||

|
||||
|
||||
#### Step 5: Configure Extension
|
||||
|
||||
Enable the extension for private browsing (recommended for clean sessions):
|
||||
|
||||

|
||||
|
||||
Connect the extension to your MCP server:
|
||||
|
||||

|
||||
|
||||
#### Step 6: Enable Model Tools
|
||||
|
||||
Select a model with strong tool-calling capabilities and enable tools:
|
||||
|
||||

|
||||
|
||||
Verify tool calling is active:
|
||||
|
||||

|
||||
|
||||
## Available MCP Integrations
|
||||
|
||||
Jan supports a growing ecosystem of MCP tools:
|
||||
|
||||
### Web & Search
|
||||
- **Browser Control** - Automate web browsing tasks
|
||||
- **Web Search** - Real-time search with Serper, Exa
|
||||
- **Screenshot** - Capture and analyze web content
|
||||
|
||||
### Development
|
||||
- **Code Execution** - Run code in secure sandboxes
|
||||
- **GitHub** - Repository management and analysis
|
||||
- **Documentation** - Generate and maintain docs
|
||||
|
||||
### Productivity
|
||||
- **Task Management** - Todoist, Linear integration
|
||||
- **Calendar** - Schedule and meeting management
|
||||
- **Note Taking** - Obsidian, Notion connectivity
|
||||
|
||||
### Creative
|
||||
- **Design Tools** - Canva integration for graphics
|
||||
- **Content Generation** - Blog posts, social media
|
||||
- **Media Processing** - Image and video manipulation
|
||||
|
||||
Explore specific integrations in our [MCP Examples](./mcp-examples/browser/browserbase) section.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- The MCP server won't connect even though I've already added it to my list of MCP Servers?
|
||||
- Make sure you have NodeJS and Python installed
|
||||
- Make sure you typed the commands correctly in the MCP Server form
|
||||
- Make sure the model you are using has tools enabled
|
||||
- Restart Jan
|
||||
- The open source model I picked won't use the MCPs I enabled.
|
||||
- Make sure the model you are using has tools enabled
|
||||
- Lots of open source models are not designed to use tools or simply don't work well with them, so you may need to try a different model
|
||||
- The model you have selected might be good at tool calling but it is possible that it does not support images, effectively making it unsuitable for some tools that take screenshots of a website like the Browser MCP
|
||||
### Connection Issues
|
||||
|
||||
## Future Potential
|
||||
**MCP server won't connect:**
|
||||
- Verify Node.js and Python are installed correctly
|
||||
- Check command syntax in server configuration
|
||||
- Restart Jan after adding new servers
|
||||
- Review server logs for specific error messages
|
||||
|
||||
This integration is the foundation for creating more capable and context-aware AI assistants within Jan. The
|
||||
long-term goal is to enable more sophisticated workflows that make use of your local environment securely as
|
||||
well as your favorite tools.
|
||||
**Tools not appearing:**
|
||||
- Ensure model has tool calling enabled
|
||||
- Verify MCP permissions are active
|
||||
- Check that the server status shows as running
|
||||
- Try with a different model known for good tool support
|
||||
|
||||
For example, an AI could cross-reference information between a local document and a remote API, or use a
|
||||
local script toanalyze data and then summarize the findings, all orchestrated through Jan's interface. As
|
||||
the MCP ecosystem grows, so will the potential applications within Jan.
|
||||
### Performance Problems
|
||||
|
||||
**Slow responses with tools:**
|
||||
- Reduce number of active tools
|
||||
- Use models with larger context windows
|
||||
- Monitor system resource usage
|
||||
- Consider using faster local models or cloud providers
|
||||
|
||||
**Model not using tools effectively:**
|
||||
- Switch to models specifically trained for tool calling
|
||||
- Provide more explicit instructions about tool usage
|
||||
- Check model documentation for tool-calling examples
|
||||
- Test with proven tool-compatible models first
|
||||
|
||||
### Model Compatibility
|
||||
|
||||
**Local models not calling tools:**
|
||||
- Ensure the model supports function calling in its training
|
||||
- Enable tool calling in model capabilities settings
|
||||
- Try newer model versions with improved tool support
|
||||
- Consider switching to cloud models for complex tool workflows
|
||||
|
||||
## Future Development
|
||||
|
||||
MCP integration in Jan continues evolving with new capabilities:
|
||||
|
||||
**Planned Features:**
|
||||
- **Visual tool builder** for custom MCP servers
|
||||
- **Tool marketplace** for easy discovery and installation
|
||||
- **Enhanced security** with granular permission controls
|
||||
- **Performance optimization** for faster tool execution
|
||||
|
||||
**Ecosystem Growth:**
|
||||
- More professional tools (CRM, analytics, design)
|
||||
- Better local model tool-calling performance
|
||||
- Cross-platform mobile tool support
|
||||
- Enterprise-grade security and compliance features
|
||||
|
||||
The MCP ecosystem enables increasingly sophisticated AI workflows. As more tools become available and models improve their tool-calling abilities, Jan becomes a more powerful platform for augmented productivity and creativity.
|
||||
|
||||
Start with simple tools like web search or code execution, then gradually expand your toolkit as you discover new use cases and workflows that benefit from AI-tool collaboration.
|
||||