Jan: the open-source alternative to ChatGPT
Jan is a free desktop application (Apache 2.0, published by Menlo Research) that runs GGUF models through llama.cpp on Windows, Linux, and Mac Apple Silicon, without an account. It combines local and cloud models in the same interface, exposes an OpenAI-compatible API on port 1337, and collects usage metrics only with your consent.
Jan presents itself as a free and open alternative to ChatGPT, but its documentation has changed substantially: the engine, license, settings, and Mac support are no longer what they used to be. You will learn how to install it, choose a model suited to your memory, connect cloud models with a clear understanding of the implications, use its API server, and decide whether it works for you.
#Jan in two words: what it is in 2026
Jan is a free desktop application developed by Menlo Research that replaces ChatGPT with models running on your machine. Its code is released under the Apache 2.0 license on GitHub. It runs on Windows, macOS (Apple Silicon only), and Linux; downloads GGUF-format models from a Hub connected to Hugging Face; runs them with llama.cpp; and exposes an OpenAI-compatible API on port 1337. It can also connect to cloud models (OpenAI, Anthropic, Google, Groq, Mistral, OpenRouter) in the same interface, connect MCP servers, and perform web searches. For everyday use, no account or command line is required. This guide installs Jan, helps you choose a model suited to your memory, and shows you where its strengths end.
#Jan, LM Studio, or Ollama: what sets them apart
Your private ChatGPT, free, on your own machine in an hour — LM Studio, Ollama, Open WebUI, your documents, no cloud.
- Lifetime online access
- PDF + files
- Lifetime updates
All three tools run the same GGUF models; they differ in their interface, license, and typical use. The table is limited to elements verifiable in their official documentation.
| Criterion | Jan | LM Studio | Ollama |
|---|---|---|---|
| Interface | Desktop application (chat, projects, assistants) | Desktop application | Command line, API, and Ollama application |
| Code license | Apache 2.0 | Free application at work and at home since July 2025 | MIT |
| Local API port | 1337 | 1234 | 11434 |
| Documented engine | llama.cpp (experimental MLX on Mac) | See the LM Studio documentation | See the Ollama documentation |
The choice depends on how you use it. Jan works if you want a complete interface, open-source code, and the ability to mix local and cloud models without changing tools. If you automate, script, or deploy on a server, Ollama or llama-server remain more natural choices. The comparison guide details these trade-offs.
#Install Jan on Windows, macOS, or Linux
Installation does not require an account. Here are the official prerequisites to check before downloading: they determine which model you can load afterward.
| System | Prerequisites | Good to know |
|---|---|---|
| Windows | Windows 10 or newer; processor with AVX2; NVIDIA GPU, AMD, or Intel Arc | GPU optional; 10 GB of free space recommended |
| macOS | macOS 13.6 or later; Apple Silicon (M1 to M4) | Intel Macs are not supported; 10 GB of free space |
| Linux | Debian/Ubuntu, Fedora/RHEL, Arch, openSUSE; AVX2; 8 GB of RAM minimum | Flatpak recommended, .deb or AppImage as fallback |
- 01Download the installerGo to jan.ai or the GitHub releases page. Windows: .exe file. macOS: .dmg to drag into Applications. Linux: Flatpak preferred, otherwise .deb or AppImage.
- 02Launch Jan for the first timeNo account creation. On first launch, Jan downloads its default model; once the download is complete, chat is ready to use. The first launch also lets you choose your usage measurement preferences.
- 03Open the Hub for more modelsThe Hub is accessible from the sidebar. Search for a model, click Download, then select it in the model selector of any chat.
#Choose a model that fits in your memory
The Hub displays a fit indicator for each model: Fits, May be slow, or Won't fit, calculated from your hardware without downloading anything. Quantizations are grouped into Small, Balanced, and Large, with a Recommended label for the default download. Check these indicators before considering any other criteria.
To give you a sense of scale, here are the site's approximate Q4 sizes (weights only, before context) and the figures Jan provides for Macs; the table cross-references both.
| Machine memory | Jan's benchmark (Mac) | Q4 model (weights only) |
|---|---|---|
| 8 GB | Up to 3B comfortably | 3B: about 2 GB |
| 16 GB | Up to 7B comfortably | 7–8B: about 5 GB |
| 32 GB | Up to 13B comfortably, with more headroom for context | 14B: about 9 GB |
The in-house Jan-v3-4B model, released under the Apache 2.0 license, is a reasonable starting point: 4 billion parameters, a native context window of 262,144 tokens, and, according to Jan, at least 8 GB of RAM in Q4 quantization (16 GB recommended in Q8). It is a lightweight model: for summarization or long-form writing, a model with 7 to 14 billion parameters will do better if your memory allows it.
#First chat, assistants, and projects
- 01Open a new chatSelect the model from the selector at the top of the chat. A local model is loaded into memory the first time you use it; allow more time for a large model.
- 02Write the messageSend your message; the response appears as it is generated. The model parameters (temperature, context) are documented in Jan's “Model Parameters” documentation.
- 03Attach a fileThe plus button lets you add documents, images (a vision-enabled model required), or WAV and MP3 audio files (an audio model required). With a local model, the files stay on your machine.
Two features change everyday use. Assistants are reusable sets of instructions: the equivalent of a saved system prompt that you activate from the input field. Projects group conversations around shared instructions and files: a document added to a project is split into chunks and indexed, then made available in every conversation in the project. It's lightweight RAG, sufficient for querying a few PDFs without building a pipeline. See the guide to system prompts for advice on writing an assistant's instructions.
#Connect a cloud model (and what that entails)
Jan lets you mix local and cloud models in the same interface: useful for comparing a local response with one from a large model, or for keeping a single chat client. Open Settings, then Model Providers, choose a provider (OpenAI, Anthropic, Google, Groq, Mistral, OpenRouter, Azure OpenAI, Hugging Face), and paste in your API key. Any OpenAI- or Anthropic-compatible endpoint can also be added as a custom endpoint. The cloud model then appears in the selector.
#Use Jan as a local API server
Jan includes an OpenAI-compatible server powered by llama.cpp. Open Settings, then Local API Server, and click Start Server. It is ready when the logs show it listening on http://127.0.0.1:1337. Your scripts, code editors, or OpenAI-compatible applications can then use it by changing the base URL.
Replace YOUR_MODEL_ID with the ID of a model available in your Jan, and the key with the one you defined. Configuration options deserve attention, especially those related to networking.
| Setting | Default value | Key takeaway |
|---|---|---|
| Host | 127.0.0.1 | Accessible only from your machine; 0.0.0.0 exposes it to the local network, so use with caution |
| Port | 1337 | Can be changed if the port is occupied |
| API prefix | /v1 | Follows the OpenAI convention |
| API key | Optional | A defined key is required in the Authorization header; define it before exposing the service to the network |
| Trusted hosts | Fill in if needed | Additional security layer in case of network exposure |
| CORS | Enabled | Disable if only non-browser scripts access it |
#Common local server errors
- Connection refused
- The server is not running, or your application is targeting the wrong host or port.
- 401 Unauthorized
- The API key is missing from or incorrect in the Authorization header.
- 404 Not Found
- The model identifier does not match any model available in Jan, or the API prefix is misspelled.
- CORS error in the browser
- Make sure the CORS option is enabled in the server settings.
#llama.cpp or MLX on Mac
On Apple Silicon, Jan offers two engines. llama.cpp is the stable engine, available on all platforms in GGUF format. MLX is an engine for Apple chips (macOS 14 minimum) that uses Metal, but Jan labels it experimental: no embeddings, so no RAG; reasoning output is unsupported; and some recent architectures will not load. The documentation recommends starting with llama.cpp and trying MLX for a compatible model if you want speed.
#Privacy: what stays with you
Jan says it collects no data before you consent: you choose your usage-measurement preferences on first launch and can change them later in the settings. If you agree, the publisher counts usage metrics, such as active users, linked to a random identifier, through PostHog hosted in the European Union. It says it never reads your conversations or logs your prompts. Your data (models, conversation threads, settings, logs) is stored in a local folder: on macOS, ~/Library/Application Support/Jan/data; on Linux, ~/.local/share/Jan/data. This description comes from the publisher; for a regulated environment, verify your workstation’s outbound traffic.
#Is Jan right for you?
- You want open-source code
- The repository is licensed under Apache 2.0: you can read, fork, and redistribute the code in compliance with the license, with attribution requested.
- You're mixing local and cloud
- One interface for your local models and cloud providers, with shared assistants and projects.
- You avoid the terminal
- Installation, model downloads, and the local server are all managed from the interface.
- You automate or deploy on a server
- Prefer Ollama or llama-server, which are better suited to services that run without an interface.
- You're on an Intel Mac
- Jan is not supported: choose another tool.
- Jan: the open-source alternative to ChatGPT, 100% local (tutorial)
- Ollama vs. LM Studio vs. Jan vs. GPT4All
- LM Studio for beginners: your first local chat
- Master system prompts
- llama-server: local OpenAI API with llama.cpp
- Source: Jan Desktop’s official documentation
- Source: Jan’s GitHub repository
- Source: Jan's local API server
- Source: Jan's approach to privacy
Is Jan really free and open source?+
Does Jan work without an Internet connection?+
What is the minimum configuration required for Jan?+
How do I use Jan with my code editor or scripts?+
Does Jan send my conversations to anyone?+
Jan or LM Studio: which should you choose?+
Feedback, an error, or a clarification? Let us know—it improves the guide for everyone.