* chore: initial new FE setup * chore: update namespace text-left-panel foreground variable * chore: enable dynamic mainview color * chore: remove greetings new chat * chore: fix chat input style * chore: simplify hook useAppearance * chore: enable internationalization * chore: prepare vn locale * chore: keyboardshortcut layout * chore: update keyboard shortcut exclude pathname * chore: update state active setting route * chore: fix update theme by system * chore: handle dynamic primary color * chore: fix left panel navigation active state and styled item privacy analytic * chore: reorder general setting being a first * chore: add function reset appearance * chore: update scrollbar * chore: update delete thread with dialog confirmation * chore: update state dialog inside dropdown menu * chore: wip thread detail or chat page * chore: wip model dropdown * chore: prepare model dropdown select * chore: update model providers setting * chore: show provider on model dropdown based isActive toogle * chore: update layout model provider * chore: update state active on storage * chore: update gap of item dropdown model * chore: update select model base on id * chore: update edit model capabilities * chore: add dialog to add model * chore: update sheet for model setting * chore: add sheet setting each model * chore: make dynamic syntax highlight * chore: fix menu setting appearance theme * chore: markdown render support emoji * chore: markdown support latex * chore: change codeblock default theme * chore: update ui codeblock * chore: custom render link taget new window * chore: fix copy button codeblock * chore: update accent and desctructive color * chore: setup user chat message * chore: prepare some page settings * chore: simple list extension and prepare mcp, local api, and hardware * chore: mcp-serve * chore: MCP server UI * chore: update local api server config * chore: adjust chat input * chore: update local api server log * chore: prepare hub page * chore: remove help page * chore: update mock * chore: prepare http proxy setting UI * chore: adjust local api server and title every action * fix: chore FE package (#4962) * fix: update command which referred to non-existent web app * fix: added commented out macos platform for now * fix: remove the platform name as macos * fix: remove unnecessary line for platform name in HeaderPage component * fix: update dev script to specify port 3000 for Vite * feat: model providers and chat completion * enhancement: threads performance * fix: thread content update * chore: clean up threads * fix: performance issue with streaming and state loop * fix: streaming * fix: react markdow * feat: extension manager * chore: add nodePolyfills include path * chore: improve performance avoid unhandle rejection * chore: update pre margin bottom * chore: swith thread should be deafult scroll to bottom * chore: wip scroll to bottom * chore: add model loader * chore: add platform utils * feat: threads functionality * chore: setup toaster * chore: persist threads deletion * fix: create thread with new message * chore: create new thread should change route path * chore: navigate after delet dialog thread * chore: thread favorites and orders * chore: dismiss deleting modal on delete * chore: remove undefined properties * chore: remove deprecated run step * chore: fix delete thread * chore: create empty thread content on started streaming * chore: correct messages store key * chore: stuck at generating state * chore: preapre chat toolbar * chore: introduce in-memory app state * chore: update extensions migration logic * chore: remove redundant extensions migration gate * chore: message toolbar user and assistant * chore: add logo gemini * feat: remote providers with model capabilities * chore: maintain provider settings * chore: move speed token into chat input * chore: temp harcoded model loader * chore: make chat text selectable and truncate model list * chore: update shortcut UI * Feat/implement threads (#4977) * chore: add fuse.js library for enhanced search functionality * feat: implement thread filtering with Fuse.js for improved search capabilities * fix: update the fuseOptions * feat: add search functionality to LeftPanel and refactor thread retrieval logic * refactor: optimize thread filtering and improve search functionality in LeftPanel * fix: more edits * refactor: remove duplicate import of useAppState in StreamingContent component * chore: update navigate after delete all thread * chore: pass prop speedToken from new chat input * chore: persist provider general settings * chore: styling search left panel * chore: cleanup margin * chore: update size icon * chore: improve chat input * chore: imprve list markdown * chore: animate border * feat: local model provider work * chore: persist manually added model * chore: prepare download management ui and show version on general setting * chore: improve pre tag * chore: remove buton install extension and improve light theme download * chore: add missing hardware information handler * chore: cleanup small ui * chore: update default provider settings * fix: missing fs commands * chore: correct provider models * chore: prepare delete model * chore: handle thinking block * chore: fix conditional message toolbar * chore: pophover download select none * enhancement: add prune mode * chore: model settings * chore: bump engine version tauri * chore: update style thinking * chore: add indicator and toogle mcp server * chore: wip hub * chore: update model settings * chore: mvp hub * chore: add function rename title * chore: update function delete message * chore: update rename title * chore: update model settings * chore: persist MCP configs * refactor: clean up utils * chore: add tools to completion request * chore: clean up * chore: ignore assets --------- Co-authored-by: Ivan Leo <ivanleomk@gmail.com> Co-authored-by: Louis <louis@jan.ai>
Jan - Local AI Assistant
Getting Started - Docs - Changelog - Bug reports - Discord
⚠️ Jan is currently in Development: Expect breaking changes and bugs!
Jan is a ChatGPT-alternative that runs 100% offline on your device. Our goal is to make it easy for a layperson to download and run LLMs and use AI with full control and privacy.
Jan is powered by Cortex, our embeddable local AI engine that runs on any hardware. From PCs to multi-GPU clusters, Jan & Cortex supports universal architectures:
- NVIDIA GPUs (fast)
- Apple M-series (fast)
- Apple Intel
- Linux Debian
- Windows x64
Features:
- Model Library with popular LLMs like Llama, Gemma, Mistral, or Qwen
- Connect to Remote AI APIs like Groq and OpenRouter
- Local API Server with OpenAI-equivalent API
- Extensions for customizing Jan
Download
| Version Type | Windows | MacOS Universal | Linux | |
| Stable (Recommended) |
jan.exe
|
jan.dmg
|
jan.deb
|
jan.AppImage
|
| Beta (Preview) |
jan.exe
|
jan.dmg
|
jan.deb
|
jan.AppImage
|
| Nightly Build (Experimental) |
jan.exe
|
jan.dmg
|
jan.deb
|
jan.AppImage
|
Download the latest version of Jan at https://jan.ai/ or visit the GitHub Releases to download any previous release.
Demo
https://github.com/user-attachments/assets/c3592fa2-c504-4d9d-a885-7e00122a50f3
Real-time Video: Jan v0.5.7 on a Mac M2, 16GB Sonoma 14.2
Quicklinks
Jan
Cortex.cpp
Jan is powered by Cortex.cpp. It is a C++ command-line interface (CLI) designed as an alternative to Ollama. By default, it runs on the llama.cpp engine but also supports other engines, including ONNX and TensorRT-LLM, making it a multi-engine platform.
- Cortex Website
- Cortex GitHub
- Documentation
- Models Library
- API Reference: Under development
Requirements for running Jan
- MacOS: 13 or higher
- Windows:
- Windows 10 or higher
- To enable GPU support:
- Nvidia GPU with CUDA Toolkit 11.7 or higher
- Nvidia driver 470.63.01 or higher
- Linux:
- glibc 2.27 or higher (check with
ldd --version) - gcc 11, g++ 11, cpp 11 or higher, refer to this link for more information
- To enable GPU support:
- Nvidia GPU with CUDA Toolkit 11.7 or higher
- Nvidia driver 470.63.01 or higher
- glibc 2.27 or higher (check with
Troubleshooting
As Jan is in development mode, you might get stuck on a some common issues:
If you can't find what you need in our troubleshooting guide, feel free reach out to us for extra help:
- Copy your error logs & device specifications.
- Go to our Discord & send it to #🆘|get-help channel for further support.
Check the logs to ensure the information is what you intend to send. Note that we retain your logs for only 24 hours, so report any issues promptly.
Contributing
Contributions are welcome! Please read the CONTRIBUTING.md file
Pre-requisites
- node >= 20.0.0
- yarn >= 1.22.0
- make >= 3.81
Instructions
-
Clone the repository and prepare:
git clone https://github.com/menloresearch/jan cd jan git checkout -b DESIRED_BRANCH -
Run development and use Jan Desktop
make dev
This will start the development server and open the desktop app.
For production build
# Do steps 1 and 2 in the previous section
# Build the app
make build
This will build the app MacOS m1/m2 for production (with code signing already done) and put the result in dist folder.
Acknowledgements
Jan builds on top of other open-source projects:
Contact
- Bugs & requests: file a GitHub ticket
- For discussion: join our Discord here
- For business inquiries: email hello@jan.ai
- For jobs: please email hr@jan.ai
Trust & Safety
Beware of scams!
- We will never request your personal information.
- Our product is completely free; no paid version exists.
- We do not have a token or ICO.
- We are a bootstrapped company, and don't have any external investors (yet). We're open to exploring opportunities with strategic partners want to tackle our mission together.
License
Jan is free and open source, under the AGPLv3 license.

jan.exe
jan.dmg
jan.deb