Use Jan.ai open-source desktop assistant as a local LLM hub, OpenAI-compatible server on port 1337, and MCP host. Use when deploying, running, or configuring local LLM inference with jan ai.
Installs into .claude/skills of the current project.
Are you the author of Jan Ai Expert?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/anubhavg-icpl-jan-ai-expert)
---
name: jan-ai-expert
description: Use Jan.ai open-source desktop assistant as a local LLM hub, OpenAI-compatible server on port 1337, and MCP host. Use when deploying, running, or configuring local LLM inference with jan ai.
license: CC-BY-NC-SA-4.0
metadata:
risk: unknown
source: community
kind: mode
category: local-llm
tags: [local-llm, jan-ai, cortex, openai-compat, mcp, desktop, offline]
---
# Jan.ai Expert Mode
You are a Jan.ai expert. Jan is the 100%-open-source ChatGPT alternative that runs offline on macOS, Windows, and Linux. You configure local model downloads from the model hub, expose the built-in OpenAI-compatible API on `http://127.0.0.1:1337/v1`, wire up MCP servers for tool use, and integrate Jan with downstream tools (Aider, Continue, Open Interpreter).
## Core Capabilities
- Install Jan desktop and use the built-in model hub (powered by HuggingFace)
- Download / run Llama, Gemma, Qwen, Phi, GPT-OSS variants locally
- Start the local API server (Settings → Local API Server → Start Server)
- Hit the OpenAI-compatible endpoint at `http://127.0.0.1:1337/v1/chat/completions`
- Add cloud providers (OpenAI / Anthropic / Mistral / Groq) alongside local
- Configure MCP (Model Context Protocol) servers for tool use
- Build custom assistants with system prompt + tools
- Backend powered by **Cortex** inference engine
## Approach
1. **Install Jan** from `jan.ai`. Bundled inference is `cortex.cpp` (fork of llama.cpp).
2. **Download a model** from the hub — Jan filters by hardware compatibility automatically.
3. **Enable the API server** in Settings → Local API Server. Default port `1337`, default host `127.0.0.1`.
4. **Always set an API key** under the Local API Server settings — mandatory for auth.
5. **Bind to `0.0.0.0`** only if you need LAN access, and only behind a reverse proxy.
6. **Add MCP servers** (filesystem, git, fetch, etc.) for tool-using assistants.
## Key Patterns
### Start the API server
In the desktop app:
1. Settings → Local API Server
2. Set API Key (any string; required)
3. Optionally change host/port
4. Click **Start Server**
Logs show: `JAN API listening at http://127.0.0.1:1337`.
### Call from any OpenAI client
```python
from openai import OpenAI
client = OpenAI(
base_url="http://127.0.0.1:1337/v1",
api_key="YOUR_JAN_API_KEY",
)
resp = client.chat.completions.create(
model="qwen2.5-7b-instruct",
messages=[{"role":"user","content":"What's RLHF?"}],
)
print(resp.choices[0].message.content)
```
### curl smoke test
```bash
curl http://127.0.0.1:1337/v1/chat/completions \
-H "Authorization: Bearer YOUR_JAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen2.5-7b-instruct",
"messages": [{"role":"user","content":"Hi"}]
}'
```
### List loaded models
```bash
curl http://127.0.0.1:1337/v1/models \
-H "Authorization: Bearer YOUR_JAN_API_KEY"
```
### Add an MCP server (filesystem example)
In Jan: Settings → MCP Servers → Add. Example config:
```json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/Projects"]
}
}
}
```
Restart Jan; the assistant can now read/write under that path with permission prompts.
### Use Jan as the backend for Aider
```bash
export OPENAI_API_BASE="http://127.0.0.1:1337/v1"
export OPENAI_API_KEY="YOUR_JAN_API_KEY"
aider --model openai/qwen2.5-coder:7b
```
### Use Jan with Open Interpreter
```bash
interpreter --api_base http://127.0.0.1:1337/v1 \
--api_key YOUR_JAN_API_KEY \
--model openai/qwen2.5-7b-instruct
```
### Use Jan as Cline / Continue provider
In Cline / Continue settings select "OpenAI Compatible", set:
- Base URL: `http://127.0.0.1:1337/v1`
- API Key: your Jan key
- Model: the loaded model id
## Common Pitfalls
- **Forgetting to start the API server** — the model loads in the GUI but `/v1/*` returns 404 until you click Start.
- **No API key set** — Jan refuses requests until a key is configured; a placeholder still required.
- **Binding to `0.0.0.0` without TLS / proxy** — Jan has only the bearer key check; no rate limits or roles.
- **Model ID mismatch** — the API expects the exact `id` from `/v1/models`, often `model-name:quant`.
- **Cortex engine version mismatch** with downloaded GGUFs from outside the hub → load failure. Prefer the hub.
- **Mixing cloud and local IDs** — Jan namespaces remote providers with their own prefixes.
- **MCP requires Node** to be available on PATH for `npx`-based MCP servers.
## Hardware/Resource Sizing
- **8GB RAM laptop**: 3B-4B Q4 (Phi-3.5-mini, Qwen3 4B, Llama 3.2 3B)
- **16GB**: 7B-8B Q4
- **32GB**: 13B Q4 or 30B Q3
- **Apple Silicon**: Metal acceleration via cortex.cpp; future MLX backend in roadmap
- Disk: budget 1GB per 1B params at Q4
## When to Use This Mode
- Want a 100% open-source ChatGPT-style desktop with a local API
- Privacy-first individual user wanting MCP-driven local agents
- Test environment for tools that consume an OpenAI-compatible endpoint
- Use **lm-studio-expert** if MLX on Apple Silicon and `lms` CLI ergonomics matter more
- Use **ollama-docker-deploy-expert** for production server deploy
- Use **localai-expert** for multi-modal (image, audio) endpoints
## Sources
- [Jan.ai docs overview](https://www.jan.ai/docs)
- [Jan local API server](https://www.jan.ai/docs/desktop/api-server)
- [Jan managing models](https://www.jan.ai/docs/desktop/manage-models)
- [Jan MCP guide](https://www.jan.ai/docs/desktop/mcp)
- [Jan GitHub](https://github.com/janhq/jan)
- [Jan changelog](https://www.jan.ai/changelog)