Jan : l'alternative open-source à ChatGPT, 100% locale
Jan (jan.ai) est une application desktop libre, sous licence AGPL, qui ressemble à ChatGPT mais tourne entièrement sur votre machine. Pas de compte, pas de cloud, pas de télémétrie cachée — juste un binaire à installer et des modèles open-weight à charger. Ce tutoriel Jan AI local couvre l'installation, le premier chat, le serveur API OpenAI-compatible, et la comparaison honnête avec LM Studio et Msty.
#Pourquoi Jan ?
Trois choses distinguent Jan dans le paysage encombré des clients LLM desktop. Premièrement, c'est de l'open source réel : code sur GitHub (menloresearch/jan), licence AGPL-3.0, build reproductible. LM Studio et Msty sont gratuits mais fermés. Si la transparence du binaire qui tourne en permanence sur votre machine compte pour vous, Jan est le seul des trois à cocher cette case.
Deuxièmement, la philosophie offline-first est radicale. Jan ne fait aucun appel réseau au démarrage. Pas de check de mise à jour automatique, pas de télémétrie, pas de "phone home" déguisé. Les modèles se téléchargent à la demande depuis Hugging Face, point. Vous pouvez l'utiliser sur une machine air-gappée sans rien casser.
Troisièmement, l'architecture est propre : Jan est un front Electron au-dessus de Cortex, un moteur d'inférence séparé (anciennement Nitro). Cortex utilise llama.cpp en backend et expose une API REST. Vous pouvez donc utiliser le serveur Cortex sans le front Jan, ou brancher d'autres clients sur Cortex. C'est plus modulaire que LM Studio qui est monolithique.
#Prérequis
- Système
- Windows 10/11 (x64), macOS 12+ (Intel ou Apple Silicon), Linux (deb, AppImage, ou rpm).
- RAM
- 8 Go strict minimum (modèles 1B-3B), 16 Go confortable (modèles 7B Q4), 32 Go+ pour viser du 14B et au-delà.
- Espace disque
- Comptez 5 Go pour Jan + Cortex, puis 2 à 40 Go par modèle selon la taille. Un dossier dédié sur un SSD est l'idéal.
- GPU (optionnel mais recommandé)
- NVIDIA avec CUDA pour Windows/Linux, Metal automatique sur Apple Silicon. Sans GPU, Jan tourne sur CPU — lent mais fonctionnel pour les petits modèles.
#1. Installation
Téléchargez l'installateur depuis le site officiel. Jan se présente comme un installateur en 1 clic — pas de manipulations CLI, pas de dépendances Python à gérer.
- 01Lancer l'installateurDouble-cliquez le .exe (Windows), .dmg (macOS) ou .AppImage (Linux). Sur Linux, rendez l'AppImage exécutable avec chmod +x Jan-*.AppImage si nécessaire.
- 02Premier lancementJan crée son dossier de données (~/jan sur macOS/Linux, %APPDATA%\Jan sur Windows). C'est là que vivront les modèles, les conversations et la config. Pensez-y si vous voulez le placer sur un SSD secondaire.
- 03Vérifier CortexAu démarrage, Jan lance le service Cortex en arrière-plan. Si une fenêtre de pare-feu s'ouvre, autorisez la connexion locale (Cortex écoute sur 127.0.0.1, pas sur le réseau).
- 04OnboardingJan vous propose un modèle de démarrage (typiquement un petit Llama ou Qwen). Vous pouvez l'accepter pour tester en 2 minutes, ou skip pour choisir vous-même dans le Hub.
#2. Premier modèle
Jan intègre un Hub de modèles qui pointe sur Hugging Face avec des versions GGUF préparées et testées. Ouvrez l'onglet "Hub" dans la sidebar gauche pour voir le catalogue.
Pour démarrer, trois choix solides en français selon votre VRAM :
- Petite config (8 Go RAM, pas de GPU)
- Llama 3.2 3B Instruct Q4_K_M (≈2 Go). Suffisant pour discuter, résumer un texte court, brainstormer. Tokens/sec corrects en CPU.
- Config standard (16 Go RAM, GPU 6-8 Go)
- Qwen2.5 7B Instruct Q4_K_M (≈5 Go). Le meilleur compromis FR/EN pour la majorité des usages quotidiens.
- Config confort (32 Go RAM, GPU 12 Go+)
- Mistral Small 24B ou Qwen2.5 14B en Q4_K_M. Qualité proche de GPT-3.5 Turbo, raisonnement nettement supérieur aux 7B.
Cliquez "Download" sur la fiche du modèle. Jan affiche la progression et stocke le fichier GGUF dans son dossier data. Une fois téléchargé, le bouton devient "Use" — un clic et le modèle est chargé en mémoire.
#3. Prendre en main
L'interface Jan reprend les codes ChatGPT : sidebar des conversations à gauche, zone de chat au centre, panneau de réglages contextuels à droite. Trois choses à connaître pour être productif :
- Threads
- Chaque conversation est un "Thread" indépendant avec son propre modèle assigné. Vous pouvez ouvrir plusieurs threads en parallèle (utile pour comparer la réponse d'un 7B et d'un 14B sur la même question).
- Assistants
- Onglet Assistants : créez des personas avec system prompt, température et modèle préassigné. Pratique pour avoir un "Assistant code" (Qwen Coder, température 0.2) et un "Assistant rédaction" (Mistral, température 0.8) séparés.
- Paramètres de génération
- Panneau de droite — température, top-p, top-k, max tokens, fréquence de pénalité. Modifiables par thread. La fenêtre de contexte (n_ctx) se règle au niveau du modèle dans Settings → My Models.
#4. Extensions et Cortex
Jan a une architecture à extensions. Les principales briques sont elles-mêmes des extensions internes (Inference Cortex Extension, Model Extension, etc.) ce qui permet à terme d'en swapper. Côté utilisateur, l'écosystème d'extensions tierces reste plus jeune que celui de VS Code, mais quelques-unes valent le détour :
- Inference Engines alternatifs
- Au-delà de Cortex/llama.cpp par défaut, vous pouvez activer des extensions qui pointent sur un endpoint OpenAI-compatible distant (Ollama, vLLM, ou même OpenAI cloud si vous acceptez de sortir du local).
- Cortex en standalone
- Cortex est livré avec Jan mais peut tourner seul. cortex run llama3.2:3b en CLI démarre un serveur sur le port par défaut sans le front Jan. Utile pour scripter ou déployer sur un serveur headless.
- Model Hub configurable
- Vous pouvez ajouter des sources de modèles personnalisées (un repo HF privé, un miroir interne) en éditant les paramètres du Hub. Pratique en entreprise pour distribuer des modèles fine-tunés maison.
#5. Mode serveur API
Le mode serveur de Jan expose une API OpenAI-compatible sur le réseau local. C'est ce qui transforme Jan d'un simple client chat en un vrai backend pour vos scripts, vos automatisations n8n, ou un copilote VS Code via Continue.dev.
- 01Activer le serveurSettings → Local API Server. Cochez "Start Local API Server". Jan démarre Cortex en mode serveur sur le port 1337 par défaut (réglable).
- 02Choisir le modèle serviTous les modèles téléchargés sont exposés. Chacun a un identifiant utilisable dans le champ "model" des requêtes (visible dans la colonne ID de My Models).
- 03Test rapide en curlVérifiez que le serveur répond avec un appel /v1/chat/completions standard. La syntaxe est identique à OpenAI.
#Jan vs LM Studio vs Msty
Les trois apps sont des clients desktop pour LLM locaux avec une UI propre et un serveur API local. Le diable est dans les détails.
- Jan
- Open source (AGPL), offline-first strict, architecture modulaire avec Cortex en moteur séparé. Catalogue de modèles plus restreint que LM Studio. Idéal pour qui veut du libre et de l'auditable.
- LM Studio
- Closed source mais gratuit. Catalogue Hugging Face le plus riche des trois (recherche en direct dans HF). Support MCP, MLX natif sur Mac, multi-token prediction. Plus de fonctionnalités, mais opaque.
- Msty
- Closed source, freemium (version Aurum payante). Le mieux pour le RAG : workspaces de documents, split chat (comparer deux modèles côte à côte), Knowledge Stacks. Moins solide en pur chat, plus orienté "agent personnel".
#Dépannage
- Le modèle ne se charge pas / OOM
- Vérifiez la VRAM/RAM disponible. Dans Settings → My Models → [modèle] → Edit Parameters, baissez n_gpu_layers pour offloader moins de couches sur le GPU. Ou passez à une quantization plus petite (Q4_K_S au lieu de Q4_K_M, ou IQ3_M).
- Tokens/sec très faibles
- Confirmez que le GPU est bien utilisé : sur NVIDIA, ouvrez nvidia-smi pendant une génération, vous devez voir Jan ou cortex-server consommer de la VRAM. Sur Apple Silicon, Metal est activé par défaut sans réglage.
- Cortex ne démarre pas (Windows)
- Visual C++ Redistributable manquant. Installez les vc_redist x64 depuis Microsoft. Vérifiez aussi qu'aucun autre process n'occupe le port 1337 (changez le port dans les settings si besoin).
- Linux : AppImage ne se lance pas
- Installez libfuse2 (sudo apt install libfuse2 sur Ubuntu 22.04+). Pour debug, lancez l'AppImage depuis un terminal pour voir les erreurs.
- Téléchargement de modèle bloqué à 99%
- Coupez et relancez. Jan reprend le téléchargement. Si ça persiste, téléchargez le GGUF manuellement depuis Hugging Face et importez-le via Settings → My Models → Import.
- Réponses en anglais malgré un prompt FR
- Modèle pas assez fort pour le bilingue cohérent. Ajoutez un system prompt explicite « Réponds toujours en français » dans l'assistant, ou passez à un modèle entraîné FR (Mistral, Qwen, Llama 3.x récents).
#Pour aller plus loin
Selon où vous voulez aller maintenant :
- Comparer Jan avec ses concurrents directs
- « Ollama vs LM Studio vs Jan vs GPT4All » fait le tableau détaillé pour choisir l'outil adapté à votre profil.
- Comprendre les quantizations Q4/Q5/Q8
- « Choisir sa quantification (Q4, Q5, Q8, FP16) » explique les compromis qualité/mémoire — utile pour choisir intelligemment dans le Hub de Jan.
- Faire du RAG sur vos documents
- Jan n'a pas de RAG natif solide. « RAG local avec Ollama sans coder (Open WebUI, AnythingLLM) » montre les alternatives no-code qui se branchent aussi sur le serveur API de Jan.
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.