Jan
Open-source desktop app for running local LLMs offline with a ChatGPT-like interface.
applocal-firstinferencejan
Jan
Jan is an open-source desktop app that runs language models entirely on your own hardware. It is
positioned as a self-hosted alternative to ChatGPT and Claude: you download a model, chat with it,
and no account or cloud service is required. Jan is built on llama.cpp/GGML and ships as a Tauri
app (the Rust implementation is why the repository's primary language reads as Rust).
At a glance
| Field | Value |
|---|---|
| Home page | https://jan.ai/ |
| Download | https://jan.ai/download |
| Repository | https://github.com/janhq/jan |
| OSS? | Yes |
| License | Apache-2.0 (the LICENSE file requests attribution in user-facing docs) |
| Platforms | macOS, Windows, Linux (AppImage and .deb packages on Linux) |
| Model formats | GGUF via llama.cpp |
| Local API | Yes — OpenAI-compatible local API server |
| Account required? | No |
Why it is on our list
- It is the gentlest on-ramp to "a ChatGPT on my laptop" for people who are not ready to touch a terminal.
- Apache-2.0 with a public repository: inspectable, forkable, repairable.
- It exposes a local OpenAI-compatible API server, so the same models can back other tools later.
Install and first run
- Download the installer for your platform from https://jan.ai/download.
- Install and launch. Jan does not require an account.
- Pick a foundation model in the app, download it, and start chatting.
If you prefer written reference material over the in-app flow, start with the docs overview at https://docs.jan.ai/desktop.
Configuration worth knowing
- Local API server. Jan can expose an OpenAI-compatible endpoint on your machine; other local tools can then point at Jan instead of at a cloud provider.
- Data folder. Jan keeps models and settings in a data folder that you can relocate — useful when your system drive is small.
- Engine settings. Model parameters (context length, GPU layers, sampling) are adjustable per model; leave defaults until something actually misbehaves.
Common pitfalls
- Stale versions on Linux and older NVIDIA cards. The Jan 0.8.6 hotfix specifically addressed Linux AppImage model-loading crashes, NVIDIA Turing GPU compatibility, and Qwen3.8 speculative-decoding slowdowns. If you hit crashes or absurdly slow generation on that hardware, update before debugging anything else.
- Downloading a model that does not fit your VRAM. A failed or glacially slow load is usually a sizing problem, not a bug. Choose a smaller quantization first, prove the pipeline works, then scale up.
- Confusing "local" with "private from your network". Local inference keeps prompts on your machine; it does not stop a model from being served to other devices if you deliberately expose the API server.
Tips and tricks
- Start with one small model, confirm it responds at acceptable speed, then add larger ones. This separates "my hardware is too weak" from "my configuration is wrong".
- Once a model works in chat, turn on the local API server and point a second tool at it — that is the cheapest way to learn how local inference is reused across apps.
- Keep the app updated; the project ships fixes for specific GPU generations rather than generic "performance improvements".
Videos
All links below were resolved through YouTube's oEmbed API on 2026-10-28, so the titles and channels are the real ones.
- Run LLM Models Locally | Setup Jan.ai | Full Tutorial — Pyzit.
- How to Run AI Models Locally with Jan AI | Install Qwen & DeepSeek AI — AI2Play.
- How to Install Jan AI on Linux | Run Local AI Models Easily — World of Linux.
- Install Jan to Run LLM Offline and Local First — Fahd Mirza.
Related
- Unsloth Desktop — the current Owners Club recommendation for local inference plus a ChatGPT-like experience.
- Choosing local AI tools — which app fits which goal.
- The local-first AI stack — how the pieces fit.
Verification note: license, repository, and platform facts were read from the official site, the project docs, and the repository
LICENSEfile on 2026-10-28. Feature descriptions come from the project's own documentation and should be re-checked before being quoted as current.