OpenSourcePicks

Open source alternatives to popular software, with live GitHub data

GitHub stats refreshed every day

Jan

Desktop AI assistant that runs local models or connects to cloud providers, with projects and web search

Open source alternative to

Visit JanGitHubDocumentation

Main features

  • Downloads and runs local models with a bundled llama.cpp engine
  • Experimental MLX engine on Apple Silicon
  • OpenAI, Anthropic, Google, Mistral, Groq, OpenRouter and custom endpoints
  • Projects with shared instructions and indexed files for document chat
  • Image, audio and document attachments
  • Built-in web search and page fetching
  • MCP tool servers
  • Local OpenAI-compatible API server
  • Opt-in usage analytics, with chats stored as local files

What Jan does

Jan is a desktop chat app for macOS, Windows and Linux built to replace ChatGPT or Claude, fully offline or with cloud models when you want them. Its model Hub downloads open models to run on your own computer, and the chat window works like the hosted assistants, with conversations, attachments, custom assistants and projects.

Projects are the main organizing feature. Each project has its own conversations, an assigned assistant and a shared set of files. Jan splits those files into chunks and indexes them so every conversation in the project can draw on them. It handles PDFs, Markdown, Office documents and code. You can also attach images, WAV or MP3 audio, and documents to a single message, provided the active model can read them.

Models and providers

For local models, Jan includes llama.cpp. It is compiled into the app and updated with it, so there is no separate runtime to install. On Apple Silicon there is also an experimental MLX engine. Jan also publishes its own small models.

You can add cloud providers with your own API keys: OpenAI, Anthropic, Google, Mistral, Groq, OpenRouter, Azure and Hugging Face, plus any custom endpoint that speaks the OpenAI or Anthropic format. That last option also lets Jan front a local server such as Ollama or LocalAI. Jan’s documentation is plain about the trade-off: a cloud model sees your messages and any attached files. Only local models keep everything on the device.

Jan also includes built-in web_search and web_fetch tools for models that support tool use. MCP servers add further tools, and a local API server (on 127.0.0.1:1337 by default, with an optional API key) lets other apps use Jan’s models.

Privacy and data

Jan stores conversations, assistants and settings as JSON files in a local data folder whose location you can change. Analytics are opt-in. You choose at first launch and can change your choice later in Settings. When enabled, Jan counts only active users and retention against a random ID, and PostHog’s EU service processes the data. The documentation says chats, prompts, files and model choices are never tracked.

Web search is the one default to check. It is switched on out of the box and uses Exa’s free endpoint, which needs no key, so the search queries a model makes go to Exa. You can switch to Tavily, You.com or your own SearXNG instance, or turn web search off in Settings.

Running Jan

Jan comes as a macOS dmg, a Windows installer (also in the Microsoft Store), and on Linux as a Flatpak (the recommended option), a .deb or an AppImage. The documented requirements are:

  • macOS: 13.6 or newer on Apple Silicon only. Intel Macs can use cloud providers but cannot run local models. Metal is used automatically. As a rough guide, 8 GB of memory fits models up to about 3B parameters, 16 GB about 7B and 32 GB about 13B.
  • Windows and Linux: an x64 CPU with AVX2 (or ARM64 on Windows), at least 8 GB of RAM (16 GB recommended), a GPU with at least 6 GB of VRAM, and 10 GB of storage.
  • GPU backends: NVIDIA through CUDA 13, and AMD, Intel Arc and NVIDIA through Vulkan, all bundled in the installers. Jan falls back to the CPU when no supported GPU is present. ROCm on Windows means running llama.cpp’s own HIP build and connecting it as a custom endpoint.

Hosted version

Jan has no hosted version that we could verify. The documentation lists a browser version at chat.jan.ai, but that address redirected to the main jan.ai site when we checked.

Limitations

Jan is a single-user desktop app, with no server mode for sharing it with a team. Intel Macs are limited to cloud models, MLX support is experimental, and the Cowork agent mode is a nightly-only preview. Because web search is on by default, people who expect a fully offline setup need to switch it off.

Who it suits

Jan suits individuals who want one desktop assistant that can run private local models and also call GPT, Claude or Gemini when needed, with projects and web search close to what the hosted apps offer. Teams that need shared accounts should look at a server-based tool such as LocalAI.

License details

Apache-2.0. The LICENSE file adds a request (not a condition) for attribution in user-facing materials.

Technical details

Built with

  • TypeScript
  • React
  • Rust
  • Tauri

GitHub topics

  • chatgpt
  • gpt
  • llamacpp
  • llm
  • localai
  • open-source
  • self-hosted
  • tauri

Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.