diff --git a/docs/bun.lock b/docs/bun.lock
index 4b22e90d7..4b5096d20 100644
--- a/docs/bun.lock
+++ b/docs/bun.lock
@@ -20,7 +20,7 @@
"embla-carousel-react": "^8.0.0",
"fs": "^0.0.1-security",
"gray-matter": "^4.0.3",
- "lucide-react": "^0.372.0",
+ "lucide-react": "^0.522.0",
"next": "^14.1.4",
"next-seo": "^6.5.0",
"next-sitemap": "^4.2.3",
@@ -1503,7 +1503,7 @@
"lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="],
- "lucide-react": ["lucide-react@0.372.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0" } }, "sha512-0cKdqmilHXWUwWAWnf6CrrjHD8YaqPMtLrmEHXolZusNTr9epULCsiJwIOHk2q1yFxdEwd96D4zShlAj67UJdA=="],
+ "lucide-react": ["lucide-react@0.522.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-jnJbw974yZ7rQHHEFKJOlWAefG3ATSCZHANZxIdx8Rk/16siuwjgA4fBULpXEAWx/RlTs3FzmKW/udWUuO0aRw=="],
"lz-string": ["lz-string@1.5.0", "", { "bin": { "lz-string": "bin/bin.js" } }, "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ=="],
diff --git a/docs/src/pages/_meta.json b/docs/src/pages/_meta.json
index ee7b176d5..0427a49fe 100644
--- a/docs/src/pages/_meta.json
+++ b/docs/src/pages/_meta.json
@@ -11,6 +11,11 @@
"type": "page",
"title": "Documentation"
},
+ "local-server": {
+ "type": "page",
+ "title": "Jan Local Server",
+ "display": "hidden"
+ },
"cortex": {
"type": "page",
"title": "Cortex",
diff --git a/docs/src/pages/docs/_meta.json b/docs/src/pages/docs/_meta.json
index 4bcf5110b..10468d10d 100644
--- a/docs/src/pages/docs/_meta.json
+++ b/docs/src/pages/docs/_meta.json
@@ -17,17 +17,13 @@
"title": "TUTORIALS",
"type": "separator"
},
- "quickstart": "Quickstart",
"remote-models": "Connect to Remote Models",
- "server-examples": "Integrations",
"explanation-separator": {
"title": "EXPLANATION",
"type": "separator"
},
"llama-cpp": "Local AI Engine",
- "api-server": "Server Overview",
- "data-folder": "Jan Data Folder",
"privacy-policy": {
"type": "page",
"display": "hidden",
@@ -40,12 +36,14 @@
},
"manage-models": "Manage Models",
"mcp": "Model Context Protocol",
+ "mcp-examples": "MCP Examples",
"reference-separator": {
"title": "REFERENCE",
"type": "separator"
},
"settings": "Settings",
+ "data-folder": "Jan Data Folder",
"troubleshooting": "Troubleshooting",
"model-parameters": "Model Parameters",
"privacy": "Privacy"
diff --git a/docs/src/pages/docs/mcp-examples/search/exa.mdx b/docs/src/pages/docs/mcp-examples/search/exa.mdx
new file mode 100644
index 000000000..7fc1af321
--- /dev/null
+++ b/docs/src/pages/docs/mcp-examples/search/exa.mdx
@@ -0,0 +1,200 @@
+---
+title: Exa Search MCP
+description: Connect Jan to real-time web search with Exa's AI-powered search engine.
+keywords:
+ [
+ Jan,
+ MCP,
+ Model Context Protocol,
+ Exa,
+ web search,
+ real-time search,
+ research,
+ AI search,
+ tool calling,
+ ]
+---
+
+import { Callout, Steps } from 'nextra/components'
+
+# Using Exa Search MCP with Jan
+
+Exa MCP turns your AI into a research powerhouse. Instead of hallucinating facts or working with stale training data, your model gets real-time access to the web through Exa's AI-powered search engine.
+
+## What You Get
+
+Exa MCP provides eight specialized search tools that actually work:
+
+- **web_search_exa**: General web search with content extraction
+- **research_paper_search**: Academic papers and research content
+- **company_research**: Deep company analysis and intelligence
+- **crawling**: Extract content from specific URLs
+- **competitor_finder**: Find business competitors
+- **linkedin_search**: Search LinkedIn profiles and companies
+- **wikipedia_search_exa**: Wikipedia content retrieval
+- **github_search**: Repository and code search
+
+Think of it as giving your AI a PhD in Google-fu.
+
+## Prerequisites
+
+You'll need:
+- Jan installed and running
+- An Exa API key ([get yours here](https://dashboard.exa.ai/api-keys))
+- A model with tool calling capabilities (Claude, GPT-4, or compatible local models)
+- Node.js installed on your machine
+
+
+ **Model Compatibility**: Not all models play nice with tools. Claude models work exceptionally well. For local models, ensure tool calling is enabled in Jan's model parameters.
+
+
+## Setup
+
+### Step 1: Enable MCP in Jan
+
+Navigate to **Settings** > **MCP Servers** and toggle **Allow All MCP Tool Permission** ON.
+
+*[Screenshot placeholder: MCP settings page with toggle enabled]*
+
+### Step 2: Get Your Exa API Key
+
+1. Go to [dashboard.exa.ai/api-keys](https://dashboard.exa.ai/api-keys)
+2. Sign up or log in
+3. Generate a new API key
+4. Copy it somewhere safe
+
+*[Screenshot placeholder: Exa dashboard showing API key generation]*
+
+### Step 3: Add Exa MCP Server
+
+Click the `+` button in the MCP Servers section.
+
+*[Screenshot placeholder: MCP server addition dialog]*
+
+Enter the following configuration:
+
+- **Server Name**: `exa`
+- **Command**: `npx`
+- **Arguments**: `-y exa-mcp-server`
+- **Environment Variables**:
+ - Key: `EXA_API_KEY`
+ - Value: `your-actual-api-key-here`
+
+*[Screenshot placeholder: Filled MCP server configuration form]*
+
+### Step 4: Verify Connection
+
+Check that the server shows as active in your MCP Servers list.
+
+*[Screenshot placeholder: Active Exa MCP server in the list]*
+
+### Step 5: Configure Your Model
+
+Use a model provider that supports tool calling. For cloud models:
+
+- **Anthropic**: Ensure tool calling is enabled in Model Providers settings
+- **OpenAI**: Tool calling should work by default
+- **OpenRouter**: Works with tool-capable models like Claude
+
+*[Screenshot placeholder: Model provider settings with tool calling enabled]*
+
+For local models, enable tool calling in **Model Parameters** > **Model Capabilities**.
+
+## Using Exa MCP
+
+Once configured, start a new chat with your tool-enabled model. The available Exa tools will appear in the tools section.
+
+*[Screenshot placeholder: Chat interface showing Exa MCP tools available]*
+
+### Example Queries
+
+Try these to see Exa MCP in action:
+
+**Research Query:**
+```
+Find recent research papers about transformer model optimization published in 2024
+```
+
+**Company Intelligence:**
+```
+Research the company Anthropic - their business model, recent funding, and key competitors
+```
+
+**Technical Search:**
+```
+Find GitHub repositories for modern React state management libraries with good TypeScript support
+```
+
+**Content Analysis:**
+```
+Extract and summarize the content from this article: [URL]
+```
+
+*[Screenshot placeholder: Example of Exa MCP performing a search with results]*
+
+## Advanced Configuration
+
+### Selective Tool Enabling
+
+If you don't want all eight tools (and who needs that much power?), you can enable specific ones:
+
+- **Command**: `npx`
+- **Arguments**: `-y exa-mcp-server --tools=web_search_exa,research_paper_search,company_research`
+
+### Remote MCP Option
+
+For the truly lazy, use Exa's hosted MCP server instead of running it locally:
+
+- **Server Name**: `exa-remote`
+- **Command**: `npx`
+- **Arguments**: `-y mcp-remote https://mcp.exa.ai/mcp?exaApiKey=your-api-key`
+
+## Use Cases That Actually Matter
+
+### Academic Research
+Perfect for literature reviews, finding recent papers, and staying current with research trends. No more sifting through Google Scholar's ancient interface.
+
+### Competitive Intelligence
+Research competitors, analyze market positioning, and gather business intelligence without manual browsing.
+
+### Technical Discovery
+Find libraries, tools, and solutions on GitHub. Better than hoping Stack Overflow has the answer.
+
+### Content Curation
+Extract and analyze content from specific URLs for research or content creation.
+
+### Professional Networking
+Search LinkedIn for potential collaborators, industry experts, or business connections.
+
+## Troubleshooting
+
+**Server won't connect?**
+- Verify your API key is correct (no extra spaces or quotes)
+- Ensure Node.js is installed
+- Restart Jan completely
+
+**Model not using tools?**
+- Check that tool calling is enabled for your model
+- Try a different model (Claude works best)
+- Verify the MCP server is active
+
+**Search results seem off?**
+- Exa's AI search is context-aware - be specific in your queries
+- Use natural language rather than keyword stuffing
+
+**API key errors?**
+- Double-check your key at [dashboard.exa.ai](https://dashboard.exa.ai)
+- Ensure you haven't hit rate limits
+- Try regenerating the key if issues persist
+
+
+ **Rate Limits**: Exa has API rate limits. If you're planning to go full researcher mode, check your plan limits to avoid surprises.
+
+
+## What's Next
+
+Once you've got Exa MCP running, you'll wonder how you ever did research without it. The combination of Jan's privacy-focused approach with Exa's real-time search capabilities creates a research environment that's both powerful and under your control.
+
+No more tab explosions. No more bookmark chaos. Just ask, and get answers backed by current, relevant sources.
+
+*[Screenshot placeholder: Final example showing a complex research query with multiple Exa tools being used]*
diff --git a/docs/src/pages/docs/mcp-examples/search/perplexity.mdx b/docs/src/pages/docs/mcp-examples/search/perplexity.mdx
new file mode 100644
index 000000000..00afac4f7
--- /dev/null
+++ b/docs/src/pages/docs/mcp-examples/search/perplexity.mdx
@@ -0,0 +1,245 @@
+---
+title: Perplexity MCP
+description: Connect Jan to Perplexity's AI-powered search and reasoning capabilities.
+keywords:
+ [
+ Jan,
+ MCP,
+ Model Context Protocol,
+ Perplexity,
+ AI search,
+ web search,
+ reasoning,
+ Sonar,
+ real-time search,
+ tool calling,
+ ]
+---
+
+import { Callout, Steps } from 'nextra/components'
+
+# Using Perplexity MCP with Jan
+
+Perplexity MCP brings real-time web search and specialized reasoning to your AI conversations. Instead of your model pretending it knows what happened yesterday, it can actually find out.
+
+## What You Get
+
+Perplexity MCP offers two flavors of intelligence:
+
+### Official Go Implementation
+- **perplexity_ask**: Real-time web search using Sonar Pro
+- **perplexity_reason**: Complex reasoning with Sonar Reasoning Pro
+- Fast, minimal setup with pre-built binaries
+
+### Python Implementation
+- **ask_perplexity**: Expert programming assistance and technical explanations
+- **chat_perplexity**: Maintains ongoing conversations with full history
+- **list_chats_perplexity**: Browse your conversation history
+- **read_chat_perplexity**: Retrieve complete chat histories
+- **search**: General web search with customizable detail levels
+
+Both give your AI the ability to stop guessing and start knowing.
+
+## Prerequisites
+
+You'll need:
+- Jan installed and running
+- A Perplexity API key ([get yours here](https://docs.perplexity.ai/docs/getting-started))
+- For Go version: Homebrew (macOS/Linux) or manual binary installation
+- For Python version: Python 3.10+ and uvx package manager
+- A model with tool calling capabilities
+
+
+ **API Key Required**: Unlike some search engines that pretend to be free, Perplexity requires an API key. The good news? Their pricing is actually reasonable for the quality you get.
+
+
+## Setup
+
+### Step 1: Enable MCP in Jan
+
+Navigate to **Settings** > **MCP Servers** and toggle **Allow All MCP Tool Permission** ON.
+
+*[Screenshot placeholder: MCP settings page with toggle enabled]*
+
+### Step 2: Get Your Perplexity API Key
+
+1. Go to [docs.perplexity.ai](https://docs.perplexity.ai/docs/getting-started)
+2. Sign up or log in to get API access
+3. Generate your API key
+4. Keep it handy
+
+*[Screenshot placeholder: Perplexity API key generation page]*
+
+### Step 3: Choose Your Installation Method
+
+You have two solid options. Pick your poison:
+
+#### Option A: Go Implementation (Recommended for Speed)
+
+**Using Homebrew (macOS/Linux):**
+```bash
+brew install alcova-ai/tap/perplexity-mcp
+```
+
+**Manual Installation:**
+Download the appropriate binary from [Perplexity MCP releases](https://github.com/Alcova-AI/perplexity-mcp/releases) and place it in your PATH.
+
+#### Option B: Python Implementation (More Features)
+
+**Install uvx if you haven't already:**
+```bash
+pip install uvx
+```
+
+### Step 4: Configure MCP Server
+
+Click the `+` button in the MCP Servers section and choose your configuration:
+
+*[Screenshot placeholder: MCP server addition dialog]*
+
+#### For Go Implementation:
+
+- **Server Name**: `perplexity-go`
+- **Command**: `perplexity-mcp`
+- **Arguments**: (leave empty)
+- **Environment Variables**:
+ - Key: `PERPLEXITY_API_KEY`
+ - Value: `your-api-key-here`
+
+*[Screenshot placeholder: Go implementation MCP configuration]*
+
+#### For Python Implementation:
+
+- **Server Name**: `perplexity-python`
+- **Command**: `uvx`
+- **Arguments**: `mcp-perplexity`
+- **Environment Variables**:
+ - Key: `PERPLEXITY_API_KEY`
+ - Value: `your-api-key-here`
+ - Key: `PERPLEXITY_MODEL`
+ - Value: `sonar-pro` (optional, this is the default)
+
+*[Screenshot placeholder: Python implementation MCP configuration]*
+
+### Step 5: Verify Connection
+
+Check that your chosen server shows as active in the MCP Servers list.
+
+*[Screenshot placeholder: Active Perplexity MCP server in the list]*
+
+### Step 6: Configure Your Model
+
+Ensure your model supports tool calling. For cloud models, verify tool calling is enabled in your provider settings.
+
+*[Screenshot placeholder: Model provider settings with tool calling enabled]*
+
+## Using Perplexity MCP
+
+Start a new chat with a tool-enabled model. The available Perplexity tools will appear in the tools section.
+
+*[Screenshot placeholder: Chat interface showing Perplexity MCP tools available]*
+
+### Example Queries
+
+**Real-Time News:**
+```
+What are the latest developments in AI regulation in the EU this week?
+```
+
+**Technical Research:**
+```
+Search for recent best practices in React server components and explain the key differences from client components
+```
+
+**Ongoing Research (Python version):**
+```
+Start a research conversation about quantum computing advancements in 2024. I want to maintain this conversation for follow-up questions.
+```
+
+**Code Validation:**
+```
+Check if using jQuery in 2024 is considered deprecated for modern web development
+```
+
+*[Screenshot placeholder: Example of Perplexity MCP performing a search with results]*
+
+## Advanced Configuration
+
+### Custom Models
+
+For the Go implementation, you can specify different models:
+
+- **Arguments**: `--model sonar-reasoning-pro --reasoning-model sonar-pro`
+
+For the Python implementation, use environment variables:
+
+- **PERPLEXITY_MODEL_ASK**: `sonar-reasoning-pro`
+- **PERPLEXITY_MODEL_CHAT**: `sonar-pro`
+
+### Chat History Management (Python Version)
+
+The Python implementation stores chat history locally. Configure the database path:
+
+- **DB_PATH**: `/path/to/your/chats.db`
+
+### Web UI (Python Version)
+
+Enable a web interface for chat management:
+
+- **WEB_UI_ENABLED**: `true`
+- **WEB_UI_PORT**: `8050`
+- **WEB_UI_HOST**: `127.0.0.1`
+
+## Use Cases That Matter
+
+### Research and Fact-Checking
+Perfect for journalists, researchers, and anyone who needs current, verified information. No more "according to my training data from 2023" responses.
+
+### Technical Problem-Solving
+Get current best practices, recent framework updates, and solutions to bleeding-edge problems. Stack Overflow wishes it was this fresh.
+
+### Market Research
+Track industry trends, competitor analysis, and market developments in real-time. Your AI finally knows what happened after its training cutoff.
+
+### Academic Research
+Access current papers, recent findings, and evolving scientific discussions. Like having a research assistant who never sleeps.
+
+### Code Modernization
+Check if your dependencies are deprecated, find modern alternatives, and stay current with evolving best practices.
+
+## Troubleshooting
+
+**Server won't connect?**
+- Verify your API key is valid and properly formatted
+- For Go version: Ensure the binary is in your PATH
+- For Python version: Check that uvx and Python 3.10+ are installed
+- Restart Jan completely
+
+**API errors?**
+- Check your Perplexity API usage limits
+- Verify your API key hasn't expired
+- Ensure you have sufficient credits
+
+**No search results?**
+- Perplexity's search is context-aware - be specific in your queries
+- Check that your model actually supports tool calling
+- Try rephrasing your question
+
+**Python version issues?**
+- Ensure uvx is properly installed: `pip install uvx`
+- Check Python version: `python --version` (should be 3.10+)
+- Verify dependencies: `uvx --help`
+
+
+ **Rate Limits**: Perplexity has usage limits based on your plan. Monitor your usage to avoid hitting limits during intensive research sessions.
+
+
+## What's Next
+
+With Perplexity MCP running, your AI conversations become grounded in reality. No more hallucinated facts, no more outdated information, no more "I don't have access to real-time data" excuses.
+
+Whether you're researching the latest AI developments, debugging modern frameworks, or tracking current events, your AI assistant finally has the tools to give you accurate, up-to-date answers.
+
+Time to retire those bookmark folders. Your AI can find what you need, when you need it.
+
+*[Screenshot placeholder: Complex research query showing Perplexity MCP tools working together]*
diff --git a/docs/src/pages/docs/quickstart.mdx b/docs/src/pages/docs/quickstart.mdx
deleted file mode 100644
index f17863fa2..000000000
--- a/docs/src/pages/docs/quickstart.mdx
+++ /dev/null
@@ -1,143 +0,0 @@
----
-title: Installation
-description: Jan is an open-source ChatGPT-alternative and self-hosted AI platform - build and run AI on your own desktop or server.
-sidebar_position: 2
-keywords:
- [
- Jan,
- Customizable Intelligence, LLM,
- local AI,
- privacy focus,
- free and open source,
- private and offline,
- conversational AI,
- no-subscription fee,
- large language models,
- quickstart,
- getting started,
- using AI model,
- installation,
- ]
----
-
-import { Callout, Steps } from 'nextra/components'
-import { Settings } from 'lucide-react'
-
-
-# Quickstart
-
-
-
-### Step 1: Install Jan
-
-1. [Download Jan](/download)
-2. Install the app on your system ([Mac](/docs/desktop/mac), [Windows](/docs/desktop/windows), [Linux](/docs/desktop/linux))
-3. Launch Jan
-
-Once installed, you'll see Jan's interface with no pre-installed models. You can:
-- Download and run local AI models
-- Connect to cloud-based AI model providers if desired
-
-
-
-
-
-### Step 2: Download a Model
-
-Jan offers various local AI models, from nimble lightweights to hefty powerhouses:
-1. Go to the **Hub Tab** or to [HuggingFace](https://huggingface.co/models) where you will be able
-to find even more models alongside their details. (TIP: You can copy the URL or name of the model on the Hub Tab
-and download it there.)
-2. Browse models and tap any for details (Models need to be in GGUF format)
-3. Select one that matches your needs & hardware specs
-4. Hit **Download** to begin (a progress bar will appear for the duration of the download)
-
-
-
-
-
-
-Local models consume your computer's memory and processing power. Choose carefully based on your hardware
-specifications ([Mac](/docs/desktop/mac#minimum-requirements), [Windows](/docs/desktop/windows#compatibility),
-[Linux](/docs/desktop/linux#compatibility)).
-
-
-**Note:** Some Hugging Face models require an access token. Enter yours
-in **Settings > Model Providers > Llama.cpp > Hugging Face Access Token** before importing.
-
-
-
-
-
-
-For alternative installation methods, see the [Model Management](/manage-models) section.
-
-
-
-### Step 3: Turn on GPU Acceleration (Optional)
-
-While your model downloads, let's supercharge your setup. On **Windows** or **Linux** with
-a compatible graphics card, you can dramatically boost performance with GPU acceleration.
-1. Head to **() Settings** > **Hardware**
-2. Under **GPUs**, toggle the setting to ON if not already enabled.
-
-
-
-
-Install all required dependencies and drivers before enabling GPU acceleration. Check the **GPU Setup Guide** for [Windows](/docs/desktop/windows#gpu-acceleration) & [Linux](/docs/desktop/linux#gpu-acceleration).
-
-
-
-### Step 4: Customize Assistant Instructions
-
-With your model ready to roll, you can tailor how it responds by tweaking instructions or model configurations
-through the [Assistants feature](/docs/assistants).
-
-
-
-
-
-
-
-You can also go to the assistant tab to manage all of your personalized instructions. The cool thing about
-these is that you can use them no matter which model you choose.
-
-
-
-
-
-
-
-### Step 5: Start Chatting and Update the Settings
-
-Model downloaded? Instructions set? Time to chat. Type your message in the **input field** at
-the bottom to kickstart the conversation.
-
-Fine-tune your experience by:
-- Tweaking [model parameters](/docs/model-parameters) via the **Gear icon** next to your model or in **Assistant Settings**
-- Switching models for different tasks through the **model selector** in **Model** tab or **input field**
-- [Creating new threads](/docs/threads#creating-new-thread) with custom instructions and configurations
-
-
-
-
-
-
-
-
-### Step 6: Connect to cloud models (Optional)
-
-Jan plays nice with both open source and cloud models. Connect to OpenAI (GPT-4o, o1), Anthropic (Claude), Groq, Mistral, and others:
-1. Open any **Thread**
-2. Select a model from the **model selector** dropdown
-3. Pick your provider, click the **Gear icon** beside it
-4. Grab a valid API key from your chosen provider (make sure it has sufficient credits)
-5. Paste your **API Key** into Jan
-
-For detailed setup, check [Remote APIs](/docs/remote-models/openai).
-
-
-
-
-
-
diff --git a/docs/src/pages/docs/threads.mdx b/docs/src/pages/docs/threads.mdx
index 12a21abd0..85d4bcf7c 100644
--- a/docs/src/pages/docs/threads.mdx
+++ b/docs/src/pages/docs/threads.mdx
@@ -1,86 +1,145 @@
---
title: Start Chatting
-description: Manage your interaction with AI models locally.
+description: Download models and manage your conversations with AI models locally.
keywords:
[
Jan,
- Customizable Intelligence, LLM,
local AI,
- privacy focus,
- free and open source,
- private and offline,
- conversational AI,
- no-subscription fee,
- large language models,
+ LLM,
+ chat,
threads,
- chat history,
- thread history,
+ models,
+ download,
+ installation,
+ conversations,
]
---
-import { Callout } from 'nextra/components'
-import { SquarePen, Pencil, Ellipsis, Paintbrush, Trash2 } from 'lucide-react'
+import { Callout, Steps } from 'nextra/components'
+import { SquarePen, Pencil, Ellipsis, Paintbrush, Trash2, Settings } from 'lucide-react'
+# Start Chatting
-# Chat with a Model
+
-Jan organizes your conversations with a model into chats or threads, making it easy to track and revisit
-your interactions. This guide will help you effectively manage your chat history.
+### Step 1: Install Jan
-## Creating New Conversation/Thread
-1. Click **New Chat** () icon on the
-bottom left of Jan.
-2. Select your preferred model in **Model Selector** in input field & start chatting.
+1. [Download Jan](/download)
+2. Install the app ([Mac](/docs/desktop/mac), [Windows](/docs/desktop/windows), [Linux](/docs/desktop/linux))
+3. Launch Jan
-
-
+### Step 2: Download a Model
-## View Your Chat History
+Jan requires a model to chat. Download one from the Hub:
-1. Once you open Jan, the default screen is **Chat**
-2. On the **left sidebar**, you can:
- - View your **Conversations** and scroll through your history
- - Click any chat to open the full conversation
+1. Go to the **Hub Tab**
+2. Browse available models (must be GGUF format)
+3. Select one matching your hardware specs
+4. Click **Download**
-## Favorites and Recents
-
-Jan helps you quickly access important and recent conversations with **Favorites** and **Recents**
-in the left sidebar:
-- **Favorites**: Pin threads you use often for instant access. Click the three dots icon on the right of the
-thread and a context menu will pop up with the favorite option for you to click on.
-- **Recents**: See your most recently accessed threads for quick navigation.
-
-
-
-
-
-## Edit a Chat Title
-1. Navigate to the **Conversation** that you want to edit title on the sidebar to your left
-2. Hover on the conversation and click on **three dots** () icon
-3. Click **Rename**
-4. Add new title & save
-
-
-
-
-## Delete Thread
+
-There's no undo for chat deletion, so make sure you REALLY want to remove it permanently.
+Models consume memory and processing power. Choose based on your hardware specs.
-When you want to completely remove a thread:
+**HuggingFace models:** Some require an access token. Add yours in **Settings > Model Providers > Llama.cpp > Hugging Face Access Token**.
-1. Navigate to the **Thread** that you want to delete in left sidebar
-2. Hover on the thread and click on **three dots** () icon
+
+
+### Step 3: Enable GPU Acceleration (Optional)
+
+For Windows/Linux with compatible graphics cards:
+
+1. Go to **() Settings** > **Hardware**
+2. Toggle **GPUs** to ON
+
+
+
+
+Install required drivers before enabling GPU acceleration. See setup guides for [Windows](/docs/desktop/windows#gpu-acceleration) & [Linux](/docs/desktop/linux#gpu-acceleration).
+
+
+### Step 4: Start Chatting
+
+1. Click **New Chat** () icon
+2. Select your model in the input field dropdown
+3. Type your message and start chatting
+
+
+
+
+
+## Managing Conversations
+
+Jan organizes conversations into threads for easy tracking and revisiting.
+
+### View Chat History
+
+- **Left sidebar** shows all conversations
+- Click any chat to open the full conversation
+- **Favorites**: Pin important threads for quick access
+- **Recents**: Access recently used threads
+
+
+
+### Edit Chat Titles
+
+1. Hover over a conversation in the sidebar
+2. Click **three dots** () icon
+3. Click **Rename**
+4. Enter new title and save
+
+
+
+### Delete Threads
+
+
+Thread deletion is permanent. No undo available.
+
+
+**Single thread:**
+1. Hover over thread in sidebar
+2. Click **three dots** () icon
3. Click **Delete**
+**All threads:**
+1. Hover over `Recents` category
+2. Click **three dots** () icon
+3. Select **Delete All**
-
-
+## Advanced Features
-### Delete all threads at once
+### Custom Assistant Instructions
-In case you need to remove all conversations at once:
-1. Hover on the `Recents` category and click on **three dots** () icon
-2. Select **Delete All**
+Customize how models respond:
+
+1. Use the assistant dropdown in the input field
+2. Or go to the **Assistant tab** to create custom instructions
+3. Instructions work across all models
+
+
+
+
+
+### Model Parameters
+
+Fine-tune model behavior:
+- Click the **Gear icon** next to your model
+- Adjust parameters in **Assistant Settings**
+- Switch models via the **model selector**
+
+
+
+### Connect Cloud Models (Optional)
+
+Connect to OpenAI, Anthropic, Groq, Mistral, and others:
+
+1. Open any thread
+2. Select a cloud model from the dropdown
+3. Click the **Gear icon** beside the provider
+4. Add your API key (ensure sufficient credits)
+
+
+
+For detailed setup, see [Remote APIs](/docs/remote-models/openai).
diff --git a/docs/src/pages/local-server/_assets/add_assistant.png b/docs/src/pages/local-server/_assets/add_assistant.png
new file mode 100644
index 000000000..b8f3defb5
Binary files /dev/null and b/docs/src/pages/local-server/_assets/add_assistant.png differ
diff --git a/docs/src/pages/local-server/_assets/anthropic.png b/docs/src/pages/local-server/_assets/anthropic.png
new file mode 100644
index 000000000..d82ba291d
Binary files /dev/null and b/docs/src/pages/local-server/_assets/anthropic.png differ
diff --git a/docs/src/pages/local-server/_assets/api-server.png b/docs/src/pages/local-server/_assets/api-server.png
new file mode 100644
index 000000000..e25d0a5bb
Binary files /dev/null and b/docs/src/pages/local-server/_assets/api-server.png differ
diff --git a/docs/src/pages/local-server/_assets/api-server2.png b/docs/src/pages/local-server/_assets/api-server2.png
new file mode 100644
index 000000000..6bb0c3c0b
Binary files /dev/null and b/docs/src/pages/local-server/_assets/api-server2.png differ
diff --git a/docs/src/pages/local-server/_assets/assistant-add-dialog.png b/docs/src/pages/local-server/_assets/assistant-add-dialog.png
new file mode 100644
index 000000000..aa2438092
Binary files /dev/null and b/docs/src/pages/local-server/_assets/assistant-add-dialog.png differ
diff --git a/docs/src/pages/local-server/_assets/assistant-dropdown-updated.png b/docs/src/pages/local-server/_assets/assistant-dropdown-updated.png
new file mode 100644
index 000000000..b6ee0b53d
Binary files /dev/null and b/docs/src/pages/local-server/_assets/assistant-dropdown-updated.png differ
diff --git a/docs/src/pages/local-server/_assets/assistant-dropdown.png b/docs/src/pages/local-server/_assets/assistant-dropdown.png
new file mode 100644
index 000000000..eb3ddfbe5
Binary files /dev/null and b/docs/src/pages/local-server/_assets/assistant-dropdown.png differ
diff --git a/docs/src/pages/local-server/_assets/assistant-edit-dialog.png b/docs/src/pages/local-server/_assets/assistant-edit-dialog.png
new file mode 100644
index 000000000..b323d7b2f
Binary files /dev/null and b/docs/src/pages/local-server/_assets/assistant-edit-dialog.png differ
diff --git a/docs/src/pages/local-server/_assets/assistants-ui-overview.png b/docs/src/pages/local-server/_assets/assistants-ui-overview.png
new file mode 100644
index 000000000..989616f13
Binary files /dev/null and b/docs/src/pages/local-server/_assets/assistants-ui-overview.png differ
diff --git a/docs/src/pages/local-server/_assets/cohere.png b/docs/src/pages/local-server/_assets/cohere.png
new file mode 100644
index 000000000..f7d24d74c
Binary files /dev/null and b/docs/src/pages/local-server/_assets/cohere.png differ
diff --git a/docs/src/pages/local-server/_assets/deepseek.png b/docs/src/pages/local-server/_assets/deepseek.png
new file mode 100644
index 000000000..9e1084aee
Binary files /dev/null and b/docs/src/pages/local-server/_assets/deepseek.png differ
diff --git a/docs/src/pages/local-server/_assets/extensions-01.png b/docs/src/pages/local-server/_assets/extensions-01.png
new file mode 100644
index 000000000..98fe85480
Binary files /dev/null and b/docs/src/pages/local-server/_assets/extensions-01.png differ
diff --git a/docs/src/pages/local-server/_assets/extensions-02.png b/docs/src/pages/local-server/_assets/extensions-02.png
new file mode 100644
index 000000000..5761b6b7f
Binary files /dev/null and b/docs/src/pages/local-server/_assets/extensions-02.png differ
diff --git a/docs/src/pages/local-server/_assets/extensions-03.png b/docs/src/pages/local-server/_assets/extensions-03.png
new file mode 100644
index 000000000..a74230a0a
Binary files /dev/null and b/docs/src/pages/local-server/_assets/extensions-03.png differ
diff --git a/docs/src/pages/local-server/_assets/extensions-04.png b/docs/src/pages/local-server/_assets/extensions-04.png
new file mode 100644
index 000000000..20b48bcf5
Binary files /dev/null and b/docs/src/pages/local-server/_assets/extensions-04.png differ
diff --git a/docs/src/pages/local-server/_assets/extensions-05.png b/docs/src/pages/local-server/_assets/extensions-05.png
new file mode 100644
index 000000000..3967d90a8
Binary files /dev/null and b/docs/src/pages/local-server/_assets/extensions-05.png differ
diff --git a/docs/src/pages/local-server/_assets/extensions-06.png b/docs/src/pages/local-server/_assets/extensions-06.png
new file mode 100644
index 000000000..b169e3926
Binary files /dev/null and b/docs/src/pages/local-server/_assets/extensions-06.png differ
diff --git a/docs/src/pages/local-server/_assets/extensions-07.png b/docs/src/pages/local-server/_assets/extensions-07.png
new file mode 100644
index 000000000..3d39f56d9
Binary files /dev/null and b/docs/src/pages/local-server/_assets/extensions-07.png differ
diff --git a/docs/src/pages/local-server/_assets/extensions-08.png b/docs/src/pages/local-server/_assets/extensions-08.png
new file mode 100644
index 000000000..3d124e367
Binary files /dev/null and b/docs/src/pages/local-server/_assets/extensions-08.png differ
diff --git a/docs/src/pages/local-server/_assets/extensions-09.png b/docs/src/pages/local-server/_assets/extensions-09.png
new file mode 100644
index 000000000..7d7cd6193
Binary files /dev/null and b/docs/src/pages/local-server/_assets/extensions-09.png differ
diff --git a/docs/src/pages/local-server/_assets/extensions-10.png b/docs/src/pages/local-server/_assets/extensions-10.png
new file mode 100644
index 000000000..ecadd8475
Binary files /dev/null and b/docs/src/pages/local-server/_assets/extensions-10.png differ
diff --git a/docs/src/pages/local-server/_assets/google.png b/docs/src/pages/local-server/_assets/google.png
new file mode 100644
index 000000000..751c473d7
Binary files /dev/null and b/docs/src/pages/local-server/_assets/google.png differ
diff --git a/docs/src/pages/local-server/_assets/gpu_accl.png b/docs/src/pages/local-server/_assets/gpu_accl.png
new file mode 100644
index 000000000..d1cfca99f
Binary files /dev/null and b/docs/src/pages/local-server/_assets/gpu_accl.png differ
diff --git a/docs/src/pages/local-server/_assets/groq.png b/docs/src/pages/local-server/_assets/groq.png
new file mode 100644
index 000000000..c2f87ecdd
Binary files /dev/null and b/docs/src/pages/local-server/_assets/groq.png differ
diff --git a/docs/src/pages/local-server/_assets/hardware.png b/docs/src/pages/local-server/_assets/hardware.png
new file mode 100644
index 000000000..177d829a5
Binary files /dev/null and b/docs/src/pages/local-server/_assets/hardware.png differ
diff --git a/docs/src/pages/local-server/_assets/hf-unsloth.png b/docs/src/pages/local-server/_assets/hf-unsloth.png
new file mode 100644
index 000000000..2e3edb422
Binary files /dev/null and b/docs/src/pages/local-server/_assets/hf-unsloth.png differ
diff --git a/docs/src/pages/local-server/_assets/hf_and_jan.png b/docs/src/pages/local-server/_assets/hf_and_jan.png
new file mode 100644
index 000000000..5bc324a29
Binary files /dev/null and b/docs/src/pages/local-server/_assets/hf_and_jan.png differ
diff --git a/docs/src/pages/local-server/_assets/hf_token.png b/docs/src/pages/local-server/_assets/hf_token.png
new file mode 100644
index 000000000..49b16b25a
Binary files /dev/null and b/docs/src/pages/local-server/_assets/hf_token.png differ
diff --git a/docs/src/pages/local-server/_assets/install-engines-01.png b/docs/src/pages/local-server/_assets/install-engines-01.png
new file mode 100644
index 000000000..95e824a7f
Binary files /dev/null and b/docs/src/pages/local-server/_assets/install-engines-01.png differ
diff --git a/docs/src/pages/local-server/_assets/install-engines-02.png b/docs/src/pages/local-server/_assets/install-engines-02.png
new file mode 100644
index 000000000..b6b6a6a58
Binary files /dev/null and b/docs/src/pages/local-server/_assets/install-engines-02.png differ
diff --git a/docs/src/pages/local-server/_assets/install-engines-03.png b/docs/src/pages/local-server/_assets/install-engines-03.png
new file mode 100644
index 000000000..a65145a4c
Binary files /dev/null and b/docs/src/pages/local-server/_assets/install-engines-03.png differ
diff --git a/docs/src/pages/local-server/_assets/jan-app-new.png b/docs/src/pages/local-server/_assets/jan-app-new.png
new file mode 100644
index 000000000..85db5d552
Binary files /dev/null and b/docs/src/pages/local-server/_assets/jan-app-new.png differ
diff --git a/docs/src/pages/local-server/_assets/jan-app.png b/docs/src/pages/local-server/_assets/jan-app.png
new file mode 100644
index 000000000..d7fb24181
Binary files /dev/null and b/docs/src/pages/local-server/_assets/jan-app.png differ
diff --git a/docs/src/pages/local-server/_assets/jan-nano-bench.png b/docs/src/pages/local-server/_assets/jan-nano-bench.png
new file mode 100644
index 000000000..ce923bc22
Binary files /dev/null and b/docs/src/pages/local-server/_assets/jan-nano-bench.png differ
diff --git a/docs/src/pages/local-server/_assets/jan-nano-demo.gif b/docs/src/pages/local-server/_assets/jan-nano-demo.gif
new file mode 100644
index 000000000..a2b87619f
Binary files /dev/null and b/docs/src/pages/local-server/_assets/jan-nano-demo.gif differ
diff --git a/docs/src/pages/local-server/_assets/jan-nano0.png b/docs/src/pages/local-server/_assets/jan-nano0.png
new file mode 100644
index 000000000..f2da8b5f7
Binary files /dev/null and b/docs/src/pages/local-server/_assets/jan-nano0.png differ
diff --git a/docs/src/pages/local-server/_assets/jan-nano1.png b/docs/src/pages/local-server/_assets/jan-nano1.png
new file mode 100644
index 000000000..f36427373
Binary files /dev/null and b/docs/src/pages/local-server/_assets/jan-nano1.png differ
diff --git a/docs/src/pages/local-server/_assets/jan_ui.png b/docs/src/pages/local-server/_assets/jan_ui.png
new file mode 100644
index 000000000..01d3568df
Binary files /dev/null and b/docs/src/pages/local-server/_assets/jan_ui.png differ
diff --git a/docs/src/pages/local-server/_assets/llama.cpp-01-updated.png b/docs/src/pages/local-server/_assets/llama.cpp-01-updated.png
new file mode 100644
index 000000000..177c26145
Binary files /dev/null and b/docs/src/pages/local-server/_assets/llama.cpp-01-updated.png differ
diff --git a/docs/src/pages/local-server/_assets/llama.cpp-01.png b/docs/src/pages/local-server/_assets/llama.cpp-01.png
new file mode 100644
index 000000000..95b4f550e
Binary files /dev/null and b/docs/src/pages/local-server/_assets/llama.cpp-01.png differ
diff --git a/docs/src/pages/local-server/_assets/martian.png b/docs/src/pages/local-server/_assets/martian.png
new file mode 100644
index 000000000..840fd083d
Binary files /dev/null and b/docs/src/pages/local-server/_assets/martian.png differ
diff --git a/docs/src/pages/local-server/_assets/mcp-on.png b/docs/src/pages/local-server/_assets/mcp-on.png
new file mode 100644
index 000000000..a8cf4f0c1
Binary files /dev/null and b/docs/src/pages/local-server/_assets/mcp-on.png differ
diff --git a/docs/src/pages/local-server/_assets/mcp-setup-1.png b/docs/src/pages/local-server/_assets/mcp-setup-1.png
new file mode 100644
index 000000000..619d03f91
Binary files /dev/null and b/docs/src/pages/local-server/_assets/mcp-setup-1.png differ
diff --git a/docs/src/pages/local-server/_assets/mcp-setup-10.png b/docs/src/pages/local-server/_assets/mcp-setup-10.png
new file mode 100644
index 000000000..0a8a9dbae
Binary files /dev/null and b/docs/src/pages/local-server/_assets/mcp-setup-10.png differ
diff --git a/docs/src/pages/local-server/_assets/mcp-setup-2.png b/docs/src/pages/local-server/_assets/mcp-setup-2.png
new file mode 100644
index 000000000..2c4f7b772
Binary files /dev/null and b/docs/src/pages/local-server/_assets/mcp-setup-2.png differ
diff --git a/docs/src/pages/local-server/_assets/mcp-setup-3.png b/docs/src/pages/local-server/_assets/mcp-setup-3.png
new file mode 100644
index 000000000..a05432c69
Binary files /dev/null and b/docs/src/pages/local-server/_assets/mcp-setup-3.png differ
diff --git a/docs/src/pages/local-server/_assets/mcp-setup-4.png b/docs/src/pages/local-server/_assets/mcp-setup-4.png
new file mode 100644
index 000000000..35653f82e
Binary files /dev/null and b/docs/src/pages/local-server/_assets/mcp-setup-4.png differ
diff --git a/docs/src/pages/local-server/_assets/mcp-setup-5.png b/docs/src/pages/local-server/_assets/mcp-setup-5.png
new file mode 100644
index 000000000..f8787ab16
Binary files /dev/null and b/docs/src/pages/local-server/_assets/mcp-setup-5.png differ
diff --git a/docs/src/pages/local-server/_assets/mcp-setup-6.png b/docs/src/pages/local-server/_assets/mcp-setup-6.png
new file mode 100644
index 000000000..a84c0273a
Binary files /dev/null and b/docs/src/pages/local-server/_assets/mcp-setup-6.png differ
diff --git a/docs/src/pages/local-server/_assets/mcp-setup-7.png b/docs/src/pages/local-server/_assets/mcp-setup-7.png
new file mode 100644
index 000000000..e8c07d03a
Binary files /dev/null and b/docs/src/pages/local-server/_assets/mcp-setup-7.png differ
diff --git a/docs/src/pages/local-server/_assets/mcp-setup-8.png b/docs/src/pages/local-server/_assets/mcp-setup-8.png
new file mode 100644
index 000000000..a69b7bd39
Binary files /dev/null and b/docs/src/pages/local-server/_assets/mcp-setup-8.png differ
diff --git a/docs/src/pages/local-server/_assets/mcp-setup-9.png b/docs/src/pages/local-server/_assets/mcp-setup-9.png
new file mode 100644
index 000000000..a4ebb2fdb
Binary files /dev/null and b/docs/src/pages/local-server/_assets/mcp-setup-9.png differ
diff --git a/docs/src/pages/local-server/_assets/mistralai.png b/docs/src/pages/local-server/_assets/mistralai.png
new file mode 100644
index 000000000..98fb13eb5
Binary files /dev/null and b/docs/src/pages/local-server/_assets/mistralai.png differ
diff --git a/docs/src/pages/local-server/_assets/model-capabilities-edit-01.png b/docs/src/pages/local-server/_assets/model-capabilities-edit-01.png
new file mode 100644
index 000000000..082430708
Binary files /dev/null and b/docs/src/pages/local-server/_assets/model-capabilities-edit-01.png differ
diff --git a/docs/src/pages/local-server/_assets/model-capabilities-edit-02.png b/docs/src/pages/local-server/_assets/model-capabilities-edit-02.png
new file mode 100644
index 000000000..6c4f84f72
Binary files /dev/null and b/docs/src/pages/local-server/_assets/model-capabilities-edit-02.png differ
diff --git a/docs/src/pages/local-server/_assets/model-import-04.png b/docs/src/pages/local-server/_assets/model-import-04.png
new file mode 100644
index 000000000..5b35c816d
Binary files /dev/null and b/docs/src/pages/local-server/_assets/model-import-04.png differ
diff --git a/docs/src/pages/local-server/_assets/model-import-05.png b/docs/src/pages/local-server/_assets/model-import-05.png
new file mode 100644
index 000000000..9d54e1559
Binary files /dev/null and b/docs/src/pages/local-server/_assets/model-import-05.png differ
diff --git a/docs/src/pages/local-server/_assets/model-management-01.png b/docs/src/pages/local-server/_assets/model-management-01.png
new file mode 100644
index 000000000..00cec174c
Binary files /dev/null and b/docs/src/pages/local-server/_assets/model-management-01.png differ
diff --git a/docs/src/pages/local-server/_assets/model-management-02.png b/docs/src/pages/local-server/_assets/model-management-02.png
new file mode 100644
index 000000000..94e933c6f
Binary files /dev/null and b/docs/src/pages/local-server/_assets/model-management-02.png differ
diff --git a/docs/src/pages/local-server/_assets/model-management-03.png b/docs/src/pages/local-server/_assets/model-management-03.png
new file mode 100644
index 000000000..c31a04bd0
Binary files /dev/null and b/docs/src/pages/local-server/_assets/model-management-03.png differ
diff --git a/docs/src/pages/local-server/_assets/model-management-04.png b/docs/src/pages/local-server/_assets/model-management-04.png
new file mode 100644
index 000000000..be20e984d
Binary files /dev/null and b/docs/src/pages/local-server/_assets/model-management-04.png differ
diff --git a/docs/src/pages/local-server/_assets/model-management-05.png b/docs/src/pages/local-server/_assets/model-management-05.png
new file mode 100644
index 000000000..4c817aecc
Binary files /dev/null and b/docs/src/pages/local-server/_assets/model-management-05.png differ
diff --git a/docs/src/pages/local-server/_assets/model-management-06.png b/docs/src/pages/local-server/_assets/model-management-06.png
new file mode 100644
index 000000000..e0e33cbcb
Binary files /dev/null and b/docs/src/pages/local-server/_assets/model-management-06.png differ
diff --git a/docs/src/pages/local-server/_assets/model-management-07.png b/docs/src/pages/local-server/_assets/model-management-07.png
new file mode 100644
index 000000000..ca9880ac0
Binary files /dev/null and b/docs/src/pages/local-server/_assets/model-management-07.png differ
diff --git a/docs/src/pages/local-server/_assets/model-management-08.png b/docs/src/pages/local-server/_assets/model-management-08.png
new file mode 100644
index 000000000..98c02a19d
Binary files /dev/null and b/docs/src/pages/local-server/_assets/model-management-08.png differ
diff --git a/docs/src/pages/local-server/_assets/model-management-09.png b/docs/src/pages/local-server/_assets/model-management-09.png
new file mode 100644
index 000000000..990b53710
Binary files /dev/null and b/docs/src/pages/local-server/_assets/model-management-09.png differ
diff --git a/docs/src/pages/local-server/_assets/model-parameters.png b/docs/src/pages/local-server/_assets/model-parameters.png
new file mode 100644
index 000000000..777b013d5
Binary files /dev/null and b/docs/src/pages/local-server/_assets/model-parameters.png differ
diff --git a/docs/src/pages/local-server/_assets/nvidia-nim.png b/docs/src/pages/local-server/_assets/nvidia-nim.png
new file mode 100644
index 000000000..e748756f7
Binary files /dev/null and b/docs/src/pages/local-server/_assets/nvidia-nim.png differ
diff --git a/docs/src/pages/local-server/_assets/openai.png b/docs/src/pages/local-server/_assets/openai.png
new file mode 100644
index 000000000..eb3160982
Binary files /dev/null and b/docs/src/pages/local-server/_assets/openai.png differ
diff --git a/docs/src/pages/local-server/_assets/openrouter.png b/docs/src/pages/local-server/_assets/openrouter.png
new file mode 100644
index 000000000..3cb114c92
Binary files /dev/null and b/docs/src/pages/local-server/_assets/openrouter.png differ
diff --git a/docs/src/pages/local-server/_assets/quick-start-01.png b/docs/src/pages/local-server/_assets/quick-start-01.png
new file mode 100644
index 000000000..03b101aa2
Binary files /dev/null and b/docs/src/pages/local-server/_assets/quick-start-01.png differ
diff --git a/docs/src/pages/local-server/_assets/quick-start-02.png b/docs/src/pages/local-server/_assets/quick-start-02.png
new file mode 100644
index 000000000..977d8ebdb
Binary files /dev/null and b/docs/src/pages/local-server/_assets/quick-start-02.png differ
diff --git a/docs/src/pages/local-server/_assets/quick-start-03.png b/docs/src/pages/local-server/_assets/quick-start-03.png
new file mode 100644
index 000000000..3938f0fd1
Binary files /dev/null and b/docs/src/pages/local-server/_assets/quick-start-03.png differ
diff --git a/docs/src/pages/local-server/_assets/retrieval-01.png b/docs/src/pages/local-server/_assets/retrieval-01.png
new file mode 100644
index 000000000..1d120e745
Binary files /dev/null and b/docs/src/pages/local-server/_assets/retrieval-01.png differ
diff --git a/docs/src/pages/local-server/_assets/retrieval-02.png b/docs/src/pages/local-server/_assets/retrieval-02.png
new file mode 100644
index 000000000..2ec4ba029
Binary files /dev/null and b/docs/src/pages/local-server/_assets/retrieval-02.png differ
diff --git a/docs/src/pages/local-server/_assets/serper-mcp.png b/docs/src/pages/local-server/_assets/serper-mcp.png
new file mode 100644
index 000000000..20c9fad99
Binary files /dev/null and b/docs/src/pages/local-server/_assets/serper-mcp.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-01.png b/docs/src/pages/local-server/_assets/settings-01.png
new file mode 100644
index 000000000..e2e5aead5
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-01.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-02.png b/docs/src/pages/local-server/_assets/settings-02.png
new file mode 100644
index 000000000..6c1699a1c
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-02.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-03.png b/docs/src/pages/local-server/_assets/settings-03.png
new file mode 100644
index 000000000..4e32c390b
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-03.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-04.png b/docs/src/pages/local-server/_assets/settings-04.png
new file mode 100644
index 000000000..f2dc4b2ec
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-04.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-05.png b/docs/src/pages/local-server/_assets/settings-05.png
new file mode 100644
index 000000000..489d6cd50
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-05.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-06.png b/docs/src/pages/local-server/_assets/settings-06.png
new file mode 100644
index 000000000..c5f5ca511
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-06.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-07.png b/docs/src/pages/local-server/_assets/settings-07.png
new file mode 100644
index 000000000..64bbebf07
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-07.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-08.png b/docs/src/pages/local-server/_assets/settings-08.png
new file mode 100644
index 000000000..d4f10cd72
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-08.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-09.png b/docs/src/pages/local-server/_assets/settings-09.png
new file mode 100644
index 000000000..8c61e99d4
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-09.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-10.png b/docs/src/pages/local-server/_assets/settings-10.png
new file mode 100644
index 000000000..30c4dd4d4
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-10.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-11.png b/docs/src/pages/local-server/_assets/settings-11.png
new file mode 100644
index 000000000..2fb3fe441
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-11.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-12.png b/docs/src/pages/local-server/_assets/settings-12.png
new file mode 100644
index 000000000..e05cea115
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-12.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-13.png b/docs/src/pages/local-server/_assets/settings-13.png
new file mode 100644
index 000000000..2454b4085
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-13.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-14.png b/docs/src/pages/local-server/_assets/settings-14.png
new file mode 100644
index 000000000..520fd787b
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-14.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-15.png b/docs/src/pages/local-server/_assets/settings-15.png
new file mode 100644
index 000000000..ccc52f497
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-15.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-16.png b/docs/src/pages/local-server/_assets/settings-16.png
new file mode 100644
index 000000000..72a61ca31
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-16.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-17.png b/docs/src/pages/local-server/_assets/settings-17.png
new file mode 100644
index 000000000..cd5a3de9e
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-17.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-18.png b/docs/src/pages/local-server/_assets/settings-18.png
new file mode 100644
index 000000000..accaaa173
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-18.png differ
diff --git a/docs/src/pages/local-server/_assets/settings-19.png b/docs/src/pages/local-server/_assets/settings-19.png
new file mode 100644
index 000000000..634c6f1da
Binary files /dev/null and b/docs/src/pages/local-server/_assets/settings-19.png differ
diff --git a/docs/src/pages/local-server/_assets/sys_monitor.png b/docs/src/pages/local-server/_assets/sys_monitor.png
new file mode 100644
index 000000000..85a8676a5
Binary files /dev/null and b/docs/src/pages/local-server/_assets/sys_monitor.png differ
diff --git a/docs/src/pages/local-server/_assets/tensorrt-llm-01.png b/docs/src/pages/local-server/_assets/tensorrt-llm-01.png
new file mode 100644
index 000000000..2f839f7a5
Binary files /dev/null and b/docs/src/pages/local-server/_assets/tensorrt-llm-01.png differ
diff --git a/docs/src/pages/local-server/_assets/tensorrt-llm-02.png b/docs/src/pages/local-server/_assets/tensorrt-llm-02.png
new file mode 100644
index 000000000..de9841874
Binary files /dev/null and b/docs/src/pages/local-server/_assets/tensorrt-llm-02.png differ
diff --git a/docs/src/pages/local-server/_assets/threads-context-menu-updated.png b/docs/src/pages/local-server/_assets/threads-context-menu-updated.png
new file mode 100644
index 000000000..e90baf2ab
Binary files /dev/null and b/docs/src/pages/local-server/_assets/threads-context-menu-updated.png differ
diff --git a/docs/src/pages/local-server/_assets/threads-context-menu.png b/docs/src/pages/local-server/_assets/threads-context-menu.png
new file mode 100644
index 000000000..8ef05a2cb
Binary files /dev/null and b/docs/src/pages/local-server/_assets/threads-context-menu.png differ
diff --git a/docs/src/pages/local-server/_assets/threads-favorites-and-recents-updated.png b/docs/src/pages/local-server/_assets/threads-favorites-and-recents-updated.png
new file mode 100644
index 000000000..5d62974e4
Binary files /dev/null and b/docs/src/pages/local-server/_assets/threads-favorites-and-recents-updated.png differ
diff --git a/docs/src/pages/local-server/_assets/threads-favorites-and-recents.png b/docs/src/pages/local-server/_assets/threads-favorites-and-recents.png
new file mode 100644
index 000000000..116fdf022
Binary files /dev/null and b/docs/src/pages/local-server/_assets/threads-favorites-and-recents.png differ
diff --git a/docs/src/pages/local-server/_assets/threads-new-chat-updated.png b/docs/src/pages/local-server/_assets/threads-new-chat-updated.png
new file mode 100644
index 000000000..6780e7df3
Binary files /dev/null and b/docs/src/pages/local-server/_assets/threads-new-chat-updated.png differ
diff --git a/docs/src/pages/local-server/_assets/threads-new-chat.png b/docs/src/pages/local-server/_assets/threads-new-chat.png
new file mode 100644
index 000000000..4d991e959
Binary files /dev/null and b/docs/src/pages/local-server/_assets/threads-new-chat.png differ
diff --git a/docs/src/pages/local-server/_assets/together.png b/docs/src/pages/local-server/_assets/together.png
new file mode 100644
index 000000000..bc2fd9d49
Binary files /dev/null and b/docs/src/pages/local-server/_assets/together.png differ
diff --git a/docs/src/pages/local-server/_assets/trouble-shooting-01.png b/docs/src/pages/local-server/_assets/trouble-shooting-01.png
new file mode 100644
index 000000000..22d1a6d68
Binary files /dev/null and b/docs/src/pages/local-server/_assets/trouble-shooting-01.png differ
diff --git a/docs/src/pages/local-server/_assets/trouble-shooting-02.png b/docs/src/pages/local-server/_assets/trouble-shooting-02.png
new file mode 100644
index 000000000..8c61e99d4
Binary files /dev/null and b/docs/src/pages/local-server/_assets/trouble-shooting-02.png differ
diff --git a/docs/src/pages/local-server/_assets/trouble-shooting-03.png b/docs/src/pages/local-server/_assets/trouble-shooting-03.png
new file mode 100644
index 000000000..d07ed56d7
Binary files /dev/null and b/docs/src/pages/local-server/_assets/trouble-shooting-03.png differ
diff --git a/docs/src/pages/local-server/_assets/trouble-shooting-04.png b/docs/src/pages/local-server/_assets/trouble-shooting-04.png
new file mode 100644
index 000000000..f7166e180
Binary files /dev/null and b/docs/src/pages/local-server/_assets/trouble-shooting-04.png differ
diff --git a/docs/src/pages/local-server/_meta.json b/docs/src/pages/local-server/_meta.json
new file mode 100644
index 000000000..36251629b
--- /dev/null
+++ b/docs/src/pages/local-server/_meta.json
@@ -0,0 +1,38 @@
+{
+ "-- Switcher": {
+ "type": "separator",
+ "title": "Switcher"
+ },
+ "index": "Overview",
+
+ "getting-started-separator": {
+ "title": "GETTING STARTED",
+ "type": "separator"
+ },
+ "api-server": "Server Setup",
+
+ "tutorials-separator": {
+ "title": "TUTORIALS",
+ "type": "separator"
+ },
+ "server-examples": "Integrations",
+
+ "explanation-separator": {
+ "title": "EXPLANATION",
+ "type": "separator"
+ },
+ "llama-cpp": "Local AI Engine",
+ "data-folder": "Jan Data Folder",
+
+ "advanced-separator": {
+ "title": "ADVANCED",
+ "type": "separator"
+ },
+ "mcp": "Model Context Protocol",
+ "reference-separator": {
+ "title": "REFERENCE",
+ "type": "separator"
+ },
+ "settings": "Server Settings",
+ "troubleshooting": "Troubleshooting"
+}
diff --git a/docs/src/pages/docs/api-server.mdx b/docs/src/pages/local-server/api-server.mdx
similarity index 100%
rename from docs/src/pages/docs/api-server.mdx
rename to docs/src/pages/local-server/api-server.mdx
diff --git a/docs/src/pages/local-server/data-folder.mdx b/docs/src/pages/local-server/data-folder.mdx
new file mode 100644
index 000000000..4c582c801
--- /dev/null
+++ b/docs/src/pages/local-server/data-folder.mdx
@@ -0,0 +1,220 @@
+---
+title: Jan Data Folder
+description: A guide to Jan's data structure.
+sidebar_position: 2
+keywords:
+ [
+ Jan,
+ Customizable Intelligence, LLM,
+ local AI,
+ privacy focus,
+ free and open source,
+ private and offline,
+ conversational AI,
+ no-subscription fee,
+ large language models,
+ quickstart,
+ getting started,
+ using AI model,
+ ]
+---
+
+import { Tabs } from 'nextra/components'
+import { Callout, Steps } from 'nextra/components'
+import { Settings, FolderOpen } from 'lucide-react'
+
+
+# Jan Data Folder
+Jan stores your data locally in JSON format. Your data is yours alone.
+
+## Open Jan Data Folder
+
+Via Jan:
+1. Settings () > Advanced Settings
+2. Click
+
+
+
+
+
+Via Terminal:
+
+```bash
+# Windows
+cd %APPDATA%/Jan/data
+
+# Mac
+cd ~/Library/Application\ Support/Jan/data
+
+# Linux
+cd $XDG_CONFIG_HOME/Jan/data # Custom install
+cd ~/.config/Jan/data # Default install
+```
+
+## Directory Structure
+
+
+Root directory: `~/jan`
+
+
+```sh
+/assistants/
+ /jan/
+ assistant.json
+/engines/
+ /llama.cpp/
+/extensions/
+ extensions.json
+/@janhq/
+ /assistant-extension/
+ /conversational-extension/
+ /download-extension/
+ /engine-management-extension/
+ /hardware-management-extension/
+ /inference-cortex-extension/
+ /model-extension/
+/files/
+/logs/
+ app.log
+/models/
+ /huggingface.co/
+ /Model_Provider_A/
+ /Model_A
+ model_A.gguf
+ model_A.yaml
+/threads/
+ /thread_A/
+ messages.jsonl
+ thread.json
+
+```
+
+### `assistants/`
+Where AI personalities live. The default one (`/assistants/jan/`):
+
+```json
+{
+ "avatar": "š",
+ "id": "jan",
+ "object": "assistant",
+ "created_at": 1750945742.536,
+ "name": "Jan",
+ "description": "Jan is a helpful AI assistant that can use tools and help complete tasks for its users.",
+ "model": "*",
+ "instructions": "You have access to a set of tools to help you answer the userās question. You can use only one tool per message, and youāll receive the result of that tool in the userās next response. To complete a task, use tools step by stepāeach step should be guided by the outcome of the previous one.\nTool Usage Rules:\n1. Always provide the correct values as arguments when using tools. Do not pass variable namesāuse actual values instead.\n2. You may perform multiple tool steps to complete a task.\n3. Avoid repeating a tool call with exactly the same parameters to prevent infinite loops.",
+ "tools": [
+ {
+ "type": "retrieval",
+ "enabled": false,
+ "useTimeWeightedRetriever": false,
+ "settings": {
+ "top_k": 2,
+ "chunk_size": 1024,
+ "chunk_overlap": 64,
+ "retrieval_template": "Use the following pieces of context to answer the question at the end.\n----------------\nCONTEXT: {CONTEXT}\n----------------\nQUESTION: {QUESTION}\n----------------\nHelpful Answer:"
+ }
+ }
+ ],
+ "file_ids": []
+}
+```
+
+Parameters:
+
+| Parameter | Description | Type | Default |
+|------------------------|--------------------------------------------------------------|---------|---------|
+| id | Assistant identifier | string | jan |
+| avatar | Assistant image | string | None |
+| object | OpenAI API compatibility marker | string | None |
+| created_at | Creation timestamp | string | None |
+| name | Display name | string | Jan |
+| description | Role description | string | Default |
+| model | Allowed models (* = all) | string | * |
+| instructions | Default thread instructions | string | None |
+| file_ids | OpenAI compatibility field | string | None |
+| tools | Available tools (retrieval only currently) | array | retrieval|
+| type | Tool type | string | retrieval|
+| enabled | Tool status | boolean | true |
+| useTimeWeightedRetriever| Time-weighted retrieval toggle | boolean | false |
+| settings | Tool configuration | object | None |
+| top_k | Max retrieval results | number | 2 |
+| chunk_size | Text chunk size | number | 1024 |
+| chunk_overlap | Chunk overlap amount | number | 64 |
+| retrieval_template | Response format template | string | None |
+
+### `extensions/`
+Add-on central. Organization extensions live in `@janhq/`, solo ones in root.
+
+### `logs/`
+Debugging headquarters (`/logs/app.txt`):
+- **[APP]**: Core logs
+- **[SERVER]**: API drama
+- **[SPECS]**: Hardware confessions
+
+### `models/`
+The silicon brain collection. Each model has its own `model.json`.
+
+
+Full parameters: [here](/docs/model-parameters)
+
+
+### `threads/`
+Chat archive. Each thread (`/threads/jan_unixstamp/`) contains:
+
+- `messages.jsonl`:
+```json
+ {
+ "completed_at": 0,
+ "content": [
+ {
+ "text": {
+ "annotations": [],
+ "value": "Hello! I can help you with various tasks. I can search for information on the internet, including news, videos, images, shopping, and more. I can also scrape webpages to extract specific information. Let me know what you need!"
+ },
+ "type": "text"
+ }
+ ],
+ "created_at": 1751012639307,
+ "id": "01JYR7S0JB5ZBGMJV52KWMW5VW",
+ "metadata": {
+ "assistant": {
+ "avatar": "š",
+ "id": "jan",
+ "instructions": "You have access to a set of tools to help you answer the user's question. You can use only one tool per message, and you'll receive the result of that tool in the user's next response. To complete a task, use tools step by stepāeach step should be guided by the outcome of the previous one.\nTool Usage Rules:\n1. Always provide the correct values as arguments when using tools. Do not pass variable namesāuse actual values instead.\n2. You may perform multiple tool steps to complete a task.\n3. Avoid repeating a tool call with exactly the same parameters to prevent infinite loops.",
+ "name": "Jan",
+ "parameters": ""
+ },
+ "tokenSpeed": {
+ "lastTimestamp": 1751012637097,
+ "message": "01JYR7S0GW5M9PSHMRE7T8VQJM",
+ "tokenCount": 49,
+ "tokenSpeed": 22.653721682847895
+ }
+ },
+ "object": "thread.message",
+ "role": "assistant",
+ "status": "ready",
+ "thread_id": "8f2c9922-db49-4d1e-8620-279c05baf2d0",
+ "type": "text"
+ }
+```
+
+- `thread.json`:
+
+| Parameter | Description |
+|------------|------------------------------------------------|
+| assistants | Assistant configuration clone |
+| created | Creation timestamp |
+| id | Thread identifier |
+| metadata | Additional thread data |
+| model | Active model settings |
+| object | OpenAI compatibility marker |
+| title | Thread name |
+| updated | Updated timestamp |
+
+
+
+
+## Delete Jan Data
+Uninstall guides: [Mac](/docs/desktop/mac#step-2-clean-up-data-optional),
+[Windows](/docs/desktop/windows#step-2-handle-jan-data), or [Linux](docs/desktop/linux#uninstall-jan).
diff --git a/docs/src/pages/local-server/index.mdx b/docs/src/pages/local-server/index.mdx
new file mode 100644
index 000000000..cb31cdc9b
--- /dev/null
+++ b/docs/src/pages/local-server/index.mdx
@@ -0,0 +1,144 @@
+---
+title: Jan Local Server
+description: Run Jan as a local AI server with OpenAI-compatible API for building AI applications.
+keywords:
+ [
+ Jan,
+ Jan Local Server,
+ local AI server,
+ OpenAI API,
+ local API,
+ AI server,
+ self-hosted AI,
+ local LLM server,
+ AI development,
+ API integration,
+ ]
+---
+
+import { Callout } from 'nextra/components'
+import FAQBox from '@/components/FaqBox'
+
+# Jan Local Server
+
+
+
+Jan Local Server provides an OpenAI-compatible API that runs 100% offline on your machine. Build AI applications
+using familiar API patterns while maintaining full control over your data and models with complete
+[privacy](https://www.reuters.com/legal/legalindustry/privacy-paradox-with-ai-2023-10-31/).
+
+Jan is powered by [Llama.cpp](https://github.com/ggerganov/llama.cpp), a local AI engine that provides an OpenAI-compatible
+API that can run in the background by default at `https://localhost:1337` (or your custom port). This enables you to power all sorts of
+applications with AI capabilities from your laptop/PC. For example, you can connect local tools like [Continue](https://jan.ai/docs/server-examples/continue-dev)
+and [Cline](https://cline.bot/) to Jan and power them using your favorite models.
+
+Jan doesn't limit you to locally hosted models, meaning, you can create an API key from your favorite model provider,
+add it to Jan via the configuration's page and start talking to your favorite models.
+
+### Features
+
+- Download popular open-source LLMs (Llama3, Gemma3, Qwen3, and more) from the HuggingFace [Model Hub](./docs/manage-models.mdx)
+or import any GGUF files (the model format used by llama.cpp) available locally
+- Connect to [cloud services](/docs/remote-models/openai) (OpenAI, Anthropic, Mistral, Groq, etc.)
+- [Chat](./docs/threads.mdx) with AI models & [customize their parameters](/docs/model-parameters.mdx) via our
+intuitive interface
+- Use our [local API server](https://jan.ai/api-reference) with an OpenAI-equivalent API to power other apps.
+
+### Philosophy
+
+Jan is built to be [user-owned](about#-user-owned), this means that Jan is:
+- Truly open source via the [Apache 2.0 license](https://github.com/menloresearch/jan/blob/dev/LICENSE)
+- [Data is stored locally, following one of the many local-first principles](https://www.inkandswitch.com/local-first)
+- Internet is optional, Jan can run 100% offline
+- Free choice of AI models, both local and cloud-based
+- We do not collect or sell user data. See our [Privacy Policy](./privacy).
+
+
+ You can read more about our [philosophy](/about#philosophy) here.
+
+
+### Inspirations
+
+Jan is inspired by the concepts of [Calm Computing](https://en.wikipedia.org/wiki/Calm_technology), and the Disappearing Computer.
+
+## Acknowledgements
+
+Jan is built on the shoulders of many open-source projects like:
+
+- [Llama.cpp](https://github.com/ggerganov/llama.cpp/blob/master/LICENSE)
+- [Scalar](https://github.com/scalar/scalar)
+
+## FAQs
+
+
+ Jan is a customizable AI assistant that can run offline on your computer - a privacy-focused alternative to tools like
+ ChatGPT, Anthropic's Claude, and Google Gemini, with optional cloud AI support.
+
+
+
+ Download Jan on your computer, download a model or add API key for a cloud-based one, and start chatting. For
+ detailed setup instructions, see our [Quick Start](/docs/quickstart) guide.
+
+
+
+ Jan supports all major operating systems,
+ - [Mac](/docs/desktop/mac#compatibility)
+ - [Windows](/docs/desktop/windows#compatibility)
+ - [Linux](/docs/desktop/linux)
+
+ Hardware compatibility includes:
+ - NVIDIA GPUs (CUDA)
+ - AMD GPUs (Vulkan)
+ - Intel Arc GPUs (Vulkan)
+ - Any GPU with Vulkan support
+
+
+
+ Jan prioritizes privacy by:
+ - Running 100% offline with locally-stored data
+ - Using open-source models that keep your conversations private
+ - Storing all files and chat history on your device in the [Jan Data Folder](/docs/data-folder)
+ - Never collecting or selling your data
+
+
+ When using third-party cloud AI services through Jan, their data policies apply. Check their privacy terms.
+
+
+ You can optionally share anonymous usage statistics to help improve Jan, but your conversations are never
+ shared. See our complete [Privacy Policy](./docs/privacy).
+
+
+
+ - Download optimized models from the [Jan Hub](/docs/manage-models)
+ - Import GGUF models from Hugging Face or your local files
+ - Connect to cloud providers like OpenAI, Anthropic, Mistral and Groq (requires your own API keys)
+
+
+
+ Jan is completely free and open-source with no subscription fees for local models and features. When using cloud-based
+ models (like GPT-4o or Claude Sonnet 3.7), you'll only pay the standard rates to those providersāwe add no markup.
+
+
+
+ Yes! Once you've downloaded a local model, Jan works completely offline with no internet connection needed.
+
+
+
+ - Join our [Discord community](https://discord.gg/qSwXFx6Krr) to connect with other users
+ - Contribute through [GitHub](https://github.com/menloresearch/jan) (no permission needed!)
+ - Get troubleshooting help in our [Discord](https://discord.com/invite/FTk2MvZwJH) channel [#š|jan-help](https://discord.com/channels/1107178041848909847/1192090449725358130)
+ - Check our [Troubleshooting](./docs/troubleshooting) guide for common issues
+
+
+
+ Yes! We fully support the self-hosted movement. Either download Jan directly or fork it on
+ [GitHub repository](https://github.com/menloresearch/jan) and build it from source.
+
+
+
+ Jan stands for "Just a Name". We are, admittedly, bad at marketing š.
+
+
+
+ Yes! We love hiring from our community. Check out our open positions at [Careers](https://menlo.bamboohr.com/careers).
+
diff --git a/docs/src/pages/local-server/llama-cpp.mdx b/docs/src/pages/local-server/llama-cpp.mdx
new file mode 100644
index 000000000..b76c42ea3
--- /dev/null
+++ b/docs/src/pages/local-server/llama-cpp.mdx
@@ -0,0 +1,165 @@
+---
+title: llama.cpp
+description: A step-by-step guide on how to customize the llama.cpp engine.
+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 { Tabs } from 'nextra/components'
+import { Callout, Steps } from 'nextra/components'
+import { Settings, EllipsisVertical, Plus, FolderOpen, Pencil } from 'lucide-react'
+
+# Local Model Management
+
+## Overview
+Jan uses **llama.cpp** for running local AI models. You can find its settings in **Settings** () > **Local Engine** > **llama.cpp**:
+
+
+
+
+
+These settings are for advanced users, you would want to check these settings when:
+- Your AI models are running slowly or not working
+- You've installed new hardware (like a graphics card)
+- You want to tinker & test performance with different [backends](/docs/local-engines/llama-cpp#available-backends)
+
+## Engine Version and Updates
+- **Engine Version**: View current version of llama.cpp engine
+- **Check Updates**: Verify if a newer version is available & install available updates when it's available
+
+
+## Available Backends
+
+Jan offers different backend variants for **llama.cpp** based on your operating system, you can:
+- Download different backends as needed
+- Switch between backends for different hardware configurations
+- View currently installed backends in the list
+
+
+Choose the backend that matches your hardware. Using the wrong variant may cause performance issues or prevent models from loading.
+
+
+
+
+
+### CUDA Support (NVIDIA GPUs)
+- `llama.cpp-avx-cuda-11-7`
+- `llama.cpp-avx-cuda-12-0`
+- `llama.cpp-avx2-cuda-11-7`
+- `llama.cpp-avx2-cuda-12-0`
+- `llama.cpp-avx512-cuda-11-7`
+- `llama.cpp-avx512-cuda-12-0`
+- `llama.cpp-noavx-cuda-11-7`
+- `llama.cpp-noavx-cuda-12-0`
+
+### CPU Only
+- `llama.cpp-avx`
+- `llama.cpp-avx2`
+- `llama.cpp-avx512`
+- `llama.cpp-noavx`
+
+### Other Accelerators
+- `llama.cpp-vulkan`
+
+
+- For detailed hardware compatibility, please visit our guide for [Windows](/docs/desktop/windows#compatibility).
+- AVX, AVX2, and AVX-512 are CPU instruction sets. For best performance, use the most advanced instruction set your CPU supports.
+- CUDA versions should match your installed NVIDIA drivers.
+
+
+
+
+
+### CUDA Support (NVIDIA GPUs)
+- `llama.cpp-avx-cuda-11-7`
+- `llama.cpp-avx-cuda-12-0`
+- `llama.cpp-avx2-cuda-11-7`
+- `llama.cpp-avx2-cuda-12-0`
+- `llama.cpp-avx512-cuda-11-7`
+- `llama.cpp-avx512-cuda-12-0`
+- `llama.cpp-noavx-cuda-11-7`
+- `llama.cpp-noavx-cuda-12-0`
+
+### CPU Only
+- `llama.cpp-avx`
+- `llama.cpp-avx2`
+- `llama.cpp-avx512`
+- `llama.cpp-noavx`
+
+### Other Accelerators
+- `llama.cpp-vulkan`
+- `llama.cpp-arm64`
+
+
+- For detailed hardware compatibility, please visit our guide for [Linux](docs/desktop/linux).
+- AVX, AVX2, and AVX-512 are CPU instruction sets. For best performance, use the most advanced instruction set your CPU supports.
+- CUDA versions should match your installed NVIDIA drivers.
+
+
+
+
+
+### Apple Silicon
+- `llama.cpp-mac-arm64`: For M1/M2/M3 Macs
+
+### Intel
+- `llama.cpp-mac-amd64`: For Intel-based Macs
+
+
+For detailed hardware compatibility, please visit our guide for [Mac](/docs/desktop/mac#compatibility).
+
+
+
+
+
+
+
+## Performance Settings
+
+
+| Setting | Description | Default |
+|---------|-------------|---------|
+| **Continuous Batching** | - Enables processing multiple requests simultaneously - Improves throughput for concurrent operations | Enabled |
+| **Parallel Operations** | - Number of prompts to run in parallel - Affects model inference speed | 4 |
+| **CPU Threads** | - Number of CPU cores to use when running without GPU - Higher thread counts may improve performance but increase CPU usage | Auto-detected based on your system's capabilities |
+
+
+
+## Memory Settings
+
+| Setting | Description | Default |
+|---------|-------------|---------|
+| **Flash Attention** | - Optimizes attention computation - Reduces memory usage - Recommended for most cases | Enabled |
+| **Caching** | - Enable to store recent prompts and responses - Improves response time for repeated prompts | Enabled |
+| **KV Cache Type** | - KV cache implementation type; controls memory usage and precision trade-off - Options: ⢠f16 (most stable) ⢠q8_0 (balanced) ⢠q4_0 (lowest memory) | f16 |
+| **mmap** | - Enables memory-mapped model loading - Reduces memory usage - Recommended for large models | Enabled |
+| **Context Shift** | - Automatically shifts the context window when the model is unable to process the entire prompt - Ensures that the most relevant information is always included - Recommended for long conversations and multiple tool calls | Disabled |
+
+
+## Best Practices
+- Start with default settings
+- Adjust based on your hardware capabilities
+- Monitor system performance
+- Test changes with your specific use case
+
+
+Performance impact varies by hardware, model size, and usage patterns.
+
diff --git a/docs/src/pages/local-server/mcp.mdx b/docs/src/pages/local-server/mcp.mdx
new file mode 100644
index 000000000..b496a19ed
--- /dev/null
+++ b/docs/src/pages/local-server/mcp.mdx
@@ -0,0 +1,201 @@
+---
+title: Model Context Protocol
+description: Manage your interaction with AI locally.
+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,
+ ]
+---
+import { Callout, Steps } from 'nextra/components'
+
+# Using the Model Context Protocol (MCP) in Jan
+
+```mermaid
+graph TD
+ subgraph "What is MCP?"
+ You[You using Jan Desktop]
+ Claude[Jan AI Assistant]
+
+ subgraph "Your Connected Tools"
+ Files[š Your Files Documents, folders, text files]
+ Database[š Your Data Spreadsheets, databases]
+ WebServices[š Online Services GitHub, Slack, Google Drive]
+ Custom[š§ Custom Tools Special programs you've added]
+ end
+
+ subgraph "What Jan Can Do"
+ Read[Read & Understand - View your files - Check your data - See updates]
+ Action[Take Actions - Search for info - Create content - Run commands]
+ Templates[Use Templates - Common tasks - Saved prompts - Workflows]
+ end
+ end
+
+ You --> Claude
+ Claude -->|"Can I see this file?"| Files
+ Claude -->|"What's in my database?"| Database
+ Claude -->|"Check my GitHub"| WebServices
+ Claude -->|"Run this tool"| Custom
+
+ Files --> Read
+ Database --> Read
+ WebServices --> Action
+ Custom --> Templates
+
+ style You fill:transparent
+ style Claude fill:transparent
+ style Files fill:transparent
+ style Database fill:transparent
+ style WebServices fill:transparent
+ style Custom fill:transparent
+ style Read fill:transparent
+ style Action fill:transparent
+ style Templates fill:transparent
+```
+
+
+Jan now supports the **Model Context Protocol (MCP)**, an open standard designed to allow language models to
+interact with external tools and data sources.
+
+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.
+
+Jan is an MCP host that allows you to download different clients and servers and use them to accomplish a task.
+
+This document outlines the benefits, risks, and implementation of MCPs within Jan.
+
+## Core Benefits of MCP
+
+Integrating MCP provides a structured way to extend the capabilities of the models you use in Jan. Here are the three
+
+* **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.
+
+
+ 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.
+
+
+
+ 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
+
+
+## Considerations and Risks
+
+While powerful, MCP is an evolving standard, and its use requires careful consideration of the following points:
+
+* **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.
+
+
+## Configure and Use MCPs within Jan
+
+To illustrate how MCPs can be used within Jan, we will walk through an example using the [Browser MCP](https://browsermcp.io/).
+
+Before we begin, you will need to enable Jan's MCP functionality at `Settings` > `MCP Servers`, and toggle
+the `Allow All MCP Tool Permission` switch ON.
+
+
+
+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/)
+
+
+### Browser MCP
+
+- Click on the `+` sign on the upper right-hand corner of the MCP box.
+
+
+
+- Enter the following details to configure the BrowserMCP:
+ - **Server Name**: `browsermcp`
+ - **Command**: `npx`
+ - **Arguments**: `@browsermcp/mcp`
+ - **Environment Variables**: You can leave this field empty.
+
+
+
+- Check that the server has been activated successfully.
+
+
+
+- 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).
+
+
+
+- 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.
+
+
+
+- Enable the extension to run on private windows by clicking on it and Connecting to the Browser MCP server.
+
+
+
+- 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.
+
+
+
+You can check and see if this was accurate below.
+
+
+
+
+## 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
+
+## Future Potential
+
+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.
+
+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.
diff --git a/docs/src/pages/docs/server-examples/_assets/tabby-answer-engine.png b/docs/src/pages/local-server/server-examples/_assets/tabby-answer-engine.png
similarity index 100%
rename from docs/src/pages/docs/server-examples/_assets/tabby-answer-engine.png
rename to docs/src/pages/local-server/server-examples/_assets/tabby-answer-engine.png
diff --git a/docs/src/pages/docs/server-examples/_assets/tabby-chat-sidebar.png b/docs/src/pages/local-server/server-examples/_assets/tabby-chat-sidebar.png
similarity index 100%
rename from docs/src/pages/docs/server-examples/_assets/tabby-chat-sidebar.png
rename to docs/src/pages/local-server/server-examples/_assets/tabby-chat-sidebar.png
diff --git a/docs/src/pages/docs/server-examples/continue-dev.mdx b/docs/src/pages/local-server/server-examples/continue-dev.mdx
similarity index 100%
rename from docs/src/pages/docs/server-examples/continue-dev.mdx
rename to docs/src/pages/local-server/server-examples/continue-dev.mdx
diff --git a/docs/src/pages/docs/server-examples/llmcord.mdx b/docs/src/pages/local-server/server-examples/llmcord.mdx
similarity index 100%
rename from docs/src/pages/docs/server-examples/llmcord.mdx
rename to docs/src/pages/local-server/server-examples/llmcord.mdx
diff --git a/docs/src/pages/docs/server-examples/n8n.mdx b/docs/src/pages/local-server/server-examples/n8n.mdx
similarity index 100%
rename from docs/src/pages/docs/server-examples/n8n.mdx
rename to docs/src/pages/local-server/server-examples/n8n.mdx
diff --git a/docs/src/pages/docs/server-examples/tabby.mdx b/docs/src/pages/local-server/server-examples/tabby.mdx
similarity index 100%
rename from docs/src/pages/docs/server-examples/tabby.mdx
rename to docs/src/pages/local-server/server-examples/tabby.mdx
diff --git a/docs/src/pages/local-server/settings.mdx b/docs/src/pages/local-server/settings.mdx
new file mode 100644
index 000000000..def78e867
--- /dev/null
+++ b/docs/src/pages/local-server/settings.mdx
@@ -0,0 +1,232 @@
+---
+title: Settings
+description: Explore how to adjust Jan's settings to suit your specific requirements.
+keywords:
+ [
+ Jan,
+ Customizable Intelligence, LLM,
+ local AI,
+ privacy focus,
+ free and open source,
+ private and offline,
+ conversational AI,
+ no-subscription fee,
+ large language models,
+ Advanced Settings,
+ HTTPS Proxy,
+ SSL,
+ settings,
+ Jan settings,
+ ]
+---
+
+import { Tabs, Steps, Callout } from 'nextra/components'
+import { Settings, EllipsisVertical, Plus, FolderOpen, Pencil } from 'lucide-react'
+
+
+# Settings
+
+To access the **Settings**, click icon in the bottom left corner of Jan.
+
+## Model Management
+
+Manage your installed AI models in **Settings** > **Model Providers**:
+
+### Import Models
+- **From Hugging Face:**
+ - Enter a model's Hugging Face ID (e.g., `org/model_name_or_id`) in the Hub's search bar.
+ - **Note:** Some models require a Hugging Face Access Token. Enter your token in **Settings > Model Providers > Hugging Face Access Token**.
+- **From Local Files:**
+ - Click **Import Model** and select your GGUF files.
+
+### Remove Models
+
+- Click the trash icon next to the **Start** button and then click **Delete**.
+
+### Start Models
+
+1. Open a new chat and select the model you want to start.
+2. Click the **Start** button on the **Settings > Model Providers**
+
+### Hugging Face Access Token
+To download models from Hugging Face that require authentication, for example, like the llama models from meta:
+1. Get your token from [Hugging Face Tokens](https://huggingface.co/docs/hub/en/security-tokens)
+2. Enter it in **Settings > Model Providers > Hugging Face**.
+
+## Model Settings (Gear Icon)
+
+
+
+Click the gear icon next to a model to configure advanced settings:
+- **Context Size**: Maximum prompt context length
+- **GPU Layers**: Number of model layers to offload to GPU. If you have an NVIDIA GPU and notice that your model won't fully load in it, you can reduce this value to load smaller parts of the model and try again.
+- **Temperature**: Controls randomness (higher = more random)
+- **Top K**: Limits token selection to K most likely next tokens (smaller K = more focused responses)
+- **Top P**: Limits token selection to tokens comprising P probability mass (smaller P = more focused responses)
+- **Min P**: Sets a minimum threshold for words the model can select (higher values filter out less likely words)
+- **Repeat Last N**: Determines how many recent words the model checks to avoid repetition
+- **Repeat Penalty**: Controls how strongly the model avoids repeating phrases (higher values reduce repetition)
+- **Presence Penalty**: Discourages reusing words that already appeared in the text (helps with variety)
+
+_See [Model Parameters](/docs/model-parameters) for a more detailed explanation._
+
+
+## Hardware
+
+Monitor and manage system resources at **Settings > Hardware**:
+- **CPU, RAM, GPU**: View usage and specs
+- **GPU Acceleration**: Enable/disable and configure GPU settings
+
+
+
+
+
+## Preferences
+
+### Appearance & Theme
+Control the visual theme of Jan's interface with any color combo you'd like. You can also control the color use in the code blocks.
+
+
+
+
+
+### Spell Check
+Jan includes a built-in spell check feature to help catch typing errors in your messages.
+
+
+
+
+
+
+## Privacy
+At **Settings** () > **Privacy**, you can control analytics & logs in Jan:
+
+### Analytics
+Jan is built with privacy at its core. By default, no data is collected. Everything stays local on your device.
+You can help improve Jan by sharing anonymous usage data:
+1. Toggle on **Analytics** to share anonymous data
+2. You can change this setting at any time
+
+
+Read more about that we collect with opt-in users at [Privacy](/docs/privacy).
+
+
+
+
+
+
+### Log Management
+
+**1. View Logs**
+- Logs are stored at:
+ - App log: `~/Library/Application\ Support/jan/data/logs/app.log`
+ - Cortex log: `~/Library/Application\ Support/jan/data/logs/cortex.log`
+- To open logs from Jan's interface: at **Logs**, click icon to open App Logs & Cortex Logs:
+
+
+
+
+
+**2. Clear Logs**
+
+Jan retains your logs for only **24 hours**. To remove all logs from Jan, at **Clear Logs**, click the **Clear** button:
+
+
+This action cannot be undone.
+
+
+
+
+
+
+
+### Jan Data Folder
+Jan stores your data locally in your own filesystem in a universal file format. See detailed [Jan Folder Structure](docs/data-folder#folder-structure).
+
+**1. Open Jan Data Folder**
+
+At **Jan Data Folder**, click icon to open Jan application's folder:
+
+
+
+
+**2. Edit Jan Data Folder**
+
+1. At **Jan Data Folder**, click icon to edit Jan application's folder
+2. Choose a new directory & click **Select**, make sure the new folder is empty
+3. Confirmation pop-up shows up:
+
+> Are you sure you want to relocate Jan Data Folder to `new directory`?
+Jan Data Folder will be duplicated into the new location while the original folder remains intact.
+An app restart will be required afterward.
+
+4. Click **Yes, Proceed**
+
+
+
+
+
+### HTTPs Proxy
+HTTPS Proxy encrypts data between your browser and the internet, making it hard for outsiders to intercept or read. It also helps you maintain your privacy and security while bypassing regional restrictions on the internet.
+
+
+- Model download speeds may be affected due to the encryption/decryption process and your cloud service provider's networking
+- HTTPS Proxy does not affect the remote model usage.
+
+
+1. **Enable** the proxy toggle
+2. Enter your proxy server details in the following format:
+```
+http://:@:
+```
+Where:
+- ``: Your proxy username (if authentication is required)
+- ``: Your proxy password (if authentication is required)
+- ``: Your proxy server's domain name or IP address
+- ``: The port number for the proxy server
+
+
+
+
+
+**Ignore SSL Certificates**
+
+This setting allows Jan to accept self-signed or unverified SSL certificates. This may be necessary when:
+- Working with corporate proxies using internal certificates
+- Testing in development environments
+- Connecting through specialized network security setups
+
+
+Only enable this option if you trust your network environment.
+
+
+
+
+
+
+
+### Factory Reset
+Reset to Factory Settings restores Jan to its initial state by erasing all user data, including downloaded models and chat history. This action is irreversible and should only be used as a last resort when experiencing serious application issues.
+
+
+This action cannot be undone. All data will be permanently deleted.
+
+
+Only use factory reset if:
+- The application is corrupted
+- You're experiencing persistent technical issues that other solutions haven't fixed
+- You want to completely start fresh with a clean installation
+
+To begin the process:
+1. At **Reset to Factory Settings**, click **Reset** button
+
+
+
+2. In the confirmation dialog:
+- Type the word **RESET** to confirm
+- Optionally check **Keep the current app data location** to maintain the same data folder
+- Click **Reset Now**
+3. App restart is required upon confirmation
+
+
+
diff --git a/docs/src/pages/local-server/troubleshooting.mdx b/docs/src/pages/local-server/troubleshooting.mdx
new file mode 100644
index 000000000..0a905e9b4
--- /dev/null
+++ b/docs/src/pages/local-server/troubleshooting.mdx
@@ -0,0 +1,401 @@
+---
+title: Troubleshooting
+description: Explore solutions for common issues and optimize Jan's performance with this comprehensive troubleshooting guide.
+keywords:
+ [
+ Jan,
+ Customizable Intelligence, LLM,
+ local AI,
+ privacy focus,
+ free and open source,
+ private and offline,
+ conversational AI,
+ no-subscription fee,
+ large language models,
+ troubleshooting,
+ error codes,
+ broken build,
+ something amiss,
+ unexpected token,
+ undefined issue,
+ permission denied,
+ ]
+---
+
+import { Tabs } from 'nextra/components'
+import { Callout, Steps } from 'nextra/components'
+
+
+# Troubleshooting
+
+## How to Get Error Logs
+
+Error logs are essential for troubleshooting issues and getting help from Jan team. To get error logs from Jan, follow the steps below:
+
+#### Through Jan Interface
+
+1. Open **System Monitor** in the footer
+2. Choose **App Log**
+
+
+
+
+
+#### Through Terminal
+**Application Logs**
+```bash
+tail -n 50 ~/Library/Application\ Support/Jan/data/logs/app.log
+```
+**Server Logs**
+```bash
+tail -n 50 ~/Library/Application\ Support/Jan/data/logs/cortex.log
+```
+
+
+Ensure to redact any private or sensitive information when sharing logs or error details. We retain your logs for only 24 hours.
+
+
+
+## Broken Build
+
+To resolve the issue where Jan is stuck in a broken build after installation:
+
+
+
+ 1. **Uninstall** Jan
+
+ 2. **Delete** Application Data, Cache, and User Data:
+
+ ```zsh
+ rm -rf ~/Library/Application\ Support/Jan
+ ```
+
+ 3. If you are using a version before `0.4.2`, you need to run the following commands:
+
+ ```zsh
+ ps aux | grep nitro
+ # Looks for processes like `nitro` and `nitro_arm_64`, and kill them one by one by process ID
+ kill -9
+ ```
+
+ 4. **Download** the [latest version of Jan](/download)
+
+
+
+ 1. **Uninstall** Jan, using the [Windows Control Panel](https://support.microsoft.com/en-us/windows/uninstall-or-remove-apps-and-programs-in-windows-4b55f974-2cc6-2d2b-d092-5905080eaf98)
+
+ 2. **Delete** Application Data, Cache, and User Data:
+
+ ```cmd
+ cd C:\Users\%USERNAME%\AppData\Roaming
+ rmdir /S Jan
+ ```
+
+ 3. If you are using a version before `0.4.2`, you need to run the following commands:
+
+ ```bash
+ # Find the process ID (PID) of the nitro process by filtering the list by process name
+ tasklist | findstr "nitro"
+ # Once you have the PID of the process you want to terminate, run the `taskkill`
+ taskkill /F /PID
+ ```
+
+ 4. **Download** the [latest version of Jan](/download)
+
+
+
+ 1. **Uninstall** Jan
+
+ Choose the appropriate method based on how you installed Jan:
+
+ **For Debian/Ubuntu:**
+ ```
+ sudo apt-get remove Jan
+ ```
+ **For Others:** Delete the Jan `.AppImage` file from your system
+
+ 2. Delete Application Data, Cache, and User Data:
+
+ ```bash
+ # Default dir
+ ~/.config/Jan
+ # Custom installation directory
+ $XDG_CONFIG_HOME = /home/username/custom_config/Jan
+ ```
+
+ 3. If you are using a version before `0.4.2`, you need to run the following commands:
+
+ ```zsh
+ ps aux | grep nitro
+ # Looks for processes like `nitro` and `nitro_arm_64`, and kill them one by one by process ID
+ kill -9
+ ```
+
+ 4. **Download** the [latest version of Jan](/download)
+
+
+
+
+Following these steps, you can cleanly uninstall and reinstall Jan, ensuring a smooth and error-free experience with the latest version.
+
+
+ Before reinstalling Jan, ensure it's completely removed from all shared spaces if installed on multiple user accounts on your device.
+
+
+## Troubleshooting NVIDIA GPU
+To resolve issues when Jan does not utilize the NVIDIA GPU on Windows and Linux systems.
+
+
+
+### Step 1: Verify Hardware and System Requirements
+
+#### 1.1. Check GPU Detection
+First, verify that your system recognizes the NVIDIA GPU:
+**Windows:**
+- Right-click desktop ā NVIDIA Control Panel
+- Or check Device Manager ā Display Adapters
+**Linux:**
+```
+lspci | grep -i nvidia
+```
+#### 1.2. Install Required components
+**NVIDIA Driver:**
+1. Install [NVIDIA Driver](https://www.nvidia.com/en-us/drivers/) for your GPU (NVIDIA driver **470.63.01 or higher**).
+2. Verify installation:
+
+```
+nvidia-smi
+```
+Expected output should show your GPU model and driver version.
+
+**CUDA Toolkit:**
+1. Download and install [CUDA toolkit](https://developer.nvidia.com/cuda-downloads) (**CUDA 11.7 or higher**)
+2. Verify installation:
+
+```
+nvcc --version
+```
+**Linux Additional Requirements:**
+1. Required packages are installed:
+```
+sudo apt update
+sudo apt install gcc-11 g++-11 cpp-11
+```
+See [detailed instructions](https://gcc.gnu.org/projects/cxx-status.html#cxx17).
+
+2. Set up CUDA environment:
+```
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
+```
+See [detailed instructions](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions).
+
+
+Ensure your (V)RAM is accessible; some users with virtual RAM may require additional configuration.
+
+
+### Step 2: Turn on GPU acceleration
+
+Jan manages GPU usage automatically:
+- Switches to GPU mode when supported
+- Automatically selects GPU with highest VRAM
+
+To verify GPU acceleration is turned on:
+1. Open **Settings** > **Hardware**
+2. Verify that **GPU Acceleration** is turned on
+3. Verify your selected GPU(s) are visible in **System Monitor** from Jan's footer
+
+
+
+
+
+
+### Step 3: GPU Settings Check
+
+1. Go to **Settings** > **General** > **Data Folder**
+2. Click on **Open Containing Folder**
+3. Open `settings.json` file
+
+Example `settings.json`:
+
+```
+{
+ "notify": true,
+ "run_mode": "gpu",
+ "nvidia_driver": {
+ "exist": true,
+ "version": "531.18"
+ },
+ "cuda": {
+ "exist": true,
+ "version": "12"
+ },
+ "gpus": [
+ {
+ "id": "0",
+ "vram": "12282"
+ },
+ {
+ "id": "1",
+ "vram": "6144"
+ },
+ {
+ "id": "2",
+ "vram": "6144"
+ }
+ ],
+ "gpu_highest_vram": "0"
+}
+```
+**Key Configuration Values:**
+- `run_mode`: Should be "gpu" for GPU acceleration
+- `nvidia_driver`: Shows driver status and version
+- `cuda`: Shows CUDA toolkit status and version
+- `gpus`: Lists available GPUs and their VRAM (in MB)
+- `gpu_highest_vram`: ID of GPU with most VRAM
+
+
+
+### Step 4: Restart Jan
+
+Restart Jan to make sure it works.
+
+
+
+### Tested Configurations
+These configurations have been verified to work with Jan's GPU acceleration. You can use them as reference points for your setup.
+
+**Bare Metal Installations**
+
+Windows 11 Pro (64-bit)
+| Component | Version/Model |
+|-----------|--------------|
+| GPU | NVIDIA GeForce RTX 4070Ti |
+| CUDA | 12.2 |
+| NVIDIA Driver | 531.18 |
+| OS | Windows 11 Pro 64-bit |
+| RAM | 32GB |
+
+Ubuntu 22.04 LTS
+| Component | Version/Model |
+|-----------|--------------|
+| GPU | NVIDIA GeForce RTX 4070Ti |
+| CUDA | 12.2 |
+| NVIDIA Driver | 545 |
+| OS | Ubuntu 22.04 LTS |
+
+**Virtual Machine Setups**
+
+Ubuntu on Proxmox VM
+| Component | Version/Model |
+|-----------|--------------|
+| GPU | NVIDIA GeForce GTX 1660Ti |
+| CUDA | 12.1 |
+| NVIDIA Driver | 535 |
+| OS | Ubuntu 20.04/18.04 LTS |
+| VM Type | Proxmox |
+
+**Performance Notes**
+- Bare metal installations provide better performance
+- VM setups require proper GPU passthrough configuration
+- Some laptop GPUs may have reduced performance
+- Hybrid graphics (Optimus) may need additional configuration
+
+## Permission Denied
+
+When running Jan, you might encounter the following error message:
+
+```
+Uncaught (in promise) Error: Error invoking layout-480796bff433a3a3.js:538 remote method 'installExtension':
+Error Package /Applications/Jan.app/Contents/Resources/app.asar.unpacked/pre-install/janhq-assistant-extension-1.0.0.tgz does not contain a valid manifest:
+Error EACCES: permission denied, mkdtemp '/Users/username/.npm/_cacache/tmp/ueCMn4'
+```
+
+Permission problems mainly cause this error during installation. To resolve this issue, follow these steps:
+
+1. Open your **Terminal**
+
+2. Execute the following command to change ownership of the `~/.npm` directory to the current user:
+
+```bash
+sudo chown -R $(whoami) ~/.npm
+```
+
+This command ensures that the necessary permissions are granted for Jan's installation.
+
+
+## "Failed to fetch" or "Something's Amiss" errors
+
+When you start a chat with a model and encounter a **Failed to Fetch** or **Something's Amiss** error, here are some possible solutions to resolve it:
+
+**1. Check System & Hardware Requirements**
+- Hardware dependencies: Ensure your device meets all [hardware requirements](docs/troubleshooting#step-1-verify-hardware-and-system-requirements)
+- OS: Ensure your operating system meets the minimum requirements ([Mac](/docs/desktop/mac#minimum-requirements), [Windows](/docs/desktop/windows#compatibility), [Linux](docs/desktop/linux#compatibility))
+- RAM: Choose models that use less than 80% of your available RAM
+ - For 8GB systems: Use models under 6GB
+ - For 16GB systems: Use models under 13GB
+
+**2. Check Model Parameters**
+- In **Engine Settings** in right sidebar, check your `ngl` ([number of GPU layers](/docs/models/model-parameters#engine-parameters)) setting to see if it's too high
+- Start with a lower NGL value and increase gradually based on your GPU memory
+
+**3. Port Conflicts**
+
+If you check your [app logs](/docs/troubleshooting#how-to-get-error-logs) & see "Bind address failed at 127.0.0.1:39291", check port availability:
+```
+# Mac
+netstat -an | grep 39291
+
+# Windows
+netstat -ano | find "39291"
+tasklist /fi "PID eq 39291"
+
+# Linux
+netstat -anpe | grep "39291"
+```
+
+ `Netstat` displays the contents of various network-related data structures for active connections.
+
+
+Default Jan ports:
+- Jan and Cortex API Server: `1337`
+- Jan Documentation: `3001`
+
+**4. Factory Reset**
+
+A factory reset can resolve persistent issues by returning Jan to its original state. This will remove all custom settings, downloaded models, and chat history.
+1. Go to **Settings** > **Advanced Settings**
+2. At **Reset To Factory Settings**, click **Reset**
+
+
+This will delete all chat history, models, and settings.
+
+
+**5. Try a clean installation**
+- Uninstall Jan & clean Jan data folders ([Mac](/docs/desktop/mac#uninstall-jan), [Windows](/docs/desktop/windows#uninstall-jan), [Linux](docs/desktop/linux#uninstall-jan))
+- Install the latest [stable release](/download)
+
+
+This will delete all your Jan data.
+
+
+## OpenAI Unexpected Token Issue
+The "Unexpected token" error usually relates to OpenAI API authentication or regional restrictions.
+
+**Step 1: API Key Sepup**
+1. Get a valid API key from [OpenAI's developer platform](https://platform.openai.com/)
+2. Ensure the key has sufficient credits & appropriate permissions
+
+**Step 2: Regional Access**
+1. If you're in a region with restricted access, use a VPN service from a supported region
+2. Verify your network can reach OpenAI's API endpoints
+
+
+## Need Further Support?
+If you can't find what you need in our troubleshooting guide, feel free reach out to us for extra help:
+- **Copy** your [app logs](/docs/troubleshooting#how-to-get-error-logs)
+- Go to our [Discord](https://discord.com/invite/FTk2MvZwJH) & send it to **#š|jan-help** channel for further support.
+
+
+
+Check the logs to ensure the information is what you intend to send. We retain your logs for only **24 hours**, so report any issues promptly.
+
diff --git a/docs/theme.config.tsx b/docs/theme.config.tsx
index 59bc8c6c9..3c63fc16b 100644
--- a/docs/theme.config.tsx
+++ b/docs/theme.config.tsx
@@ -75,13 +75,13 @@ const config: DocsThemeConfig = {
{[
{ title: 'Jan', path: '/docs', Icon: LibraryBig },
{
- title: 'Jan Web',
- path: '/platforms',
+ title: 'Jan Local Server',
+ path: '/local-server',
Icon: BrainCircuit,
},
- { title: 'Jan Mobile', path: '/platforms', Icon: Blocks },
+ // { title: 'Jan Mobile', path: '/platforms', Icon: Blocks },
{
- title: 'API Platform',
+ title: 'Jan API Platform',
path: '/platforms',
Icon: Computer,
},
@@ -131,14 +131,14 @@ const config: DocsThemeConfig = {
name="description"
content={
frontMatter?.description ||
- `Run LLMs like Mistral or Llama2 locally and offline on your computer, or connect to remote AI APIs like OpenAI's GPT-4 or Groq.`
+ `Run LLMs like Qwen3 or Llama3 locally and offline on your computer, or connect to remote AI APIs like OpenAI's GPT-4 or Groq.`
}
/>