Skip to content
Free Tool Arena

AI & LLMs · Guide · AI & Prompt Tools

How to Use Jan

Installing Jan, connecting local and remote model providers, extensions, keyboard shortcuts, and offline use.

Updated April 2026 · 6 min read

Jan is an open-source desktop app that runs LLMs locally with a ChatGPT-style interface — no account, no cloud, no data leaving your machine. This guide covers installing it, loading a model, and wiring it into your existing tooling.

Advertisement

What Jan is

Jan is an Electron app developed by Homebrew Computer Company (the Jan team). It wraps llama.cpp plus an extension system, ships a polished chat UI, and can either run models locally or proxy to remote providers like OpenAI, Anthropic, Groq, and Mistral behind one interface. The whole thing is AGPL-licensed and available on GitHub.

It targets users who want “ChatGPT on my laptop” without learning CLI tools or touching Python. Under the hood, it is a thin client over the same GGUF/llama.cpp stack that powers Ollama and LM Studio.

Installing Jan

Download the installer for macOS, Windows, or Linux from jan.ai. On Linux, an AppImage and .deb are both published. First launch drops your data in ~/jan (or %APPDATA%\jan on Windows), which you can back up or symlink to another disk if your home partition is small.

Jan does not phone home by default. You can verify by checking the telemetry toggle under Settings → Advanced and watching network traffic with your favorite tool.

Loading your first model

Open the Hub tab. Jan shows a curated list of models (Llama 3.1, Mistral, Qwen, Phi, Gemma, DeepSeek) with recommended quantizations tagged as “Recommended for your device” based on your RAM. Click Download on one that fits — for a 16GB machine, Llama 3.1 8B Q4 or Qwen 2.5 7B Q4 are solid picks.

Once downloaded, start a new thread and pick the model from the top-right dropdown. You can tune temperature, top-p, and max tokens per-thread in the right-hand panel without changing global defaults.

Using the local API server

Jan exposes an OpenAI-compatible server out of the box. Open Settings → Local API Server and flip it on; default port is 1337. Once running, point any OpenAI-compatible client at it:

curl http://localhost:1337/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama3.1-8b-instruct",
    "messages": [{"role": "user", "content": "hello"}]
  }'

This is how you bolt Jan onto tools like Continue.dev, Aider, or your own scripts — the chat UI becomes a debug surface for the same model your code is hitting.

Adding remote providers and extensions

Under Settings → Model Providers you can paste an OpenAI, Anthropic, Groq, Mistral, or OpenRouter API key and Jan will start surfacing those models alongside your local ones. Each thread can target any provider, so you can quickly compare Claude vs. a local Llama on the same prompt.

The Extensions page lets you enable retrieval, function calling, and other add-ons. Treat these as experimental — the stable surface is chat + the local API.

When Jan is the wrong choice

Jan is ideal for desktop power users who want a ChatGPT replacement and occasional API access. It is not a production inference server, and its model catalog lags behind raw Hugging Face by a week or two on new releases. If you need bleeding-edge weights the day they drop, use llama.cpp directly. If you want a lightweight background server with no UI, use Ollama. Jan’s sweet spot is “I want to chat with local models and I like a real app window.”

Advertisement

Found this useful?Email