Intermédiaire 25 minIDE

Tabby : installer une autocomplétion de code locale auto-hébergée

Cline et Aider font le chat et le mode agent, mais ne fournissent pas l'autocomplétion inline « texte grisé » qui s'affiche pendant que vous tapez — la signature de GitHub Copilot. Tabby comble exactement ce manque : c'est un serveur d'autocomplétion de code auto-hébergé, open-source (Apache 2.0), qui tourne en Docker sur votre GPU et propose des suggestions Fill-In-the-Middle directement dans l'éditeur. Ce guide l'installe pas à pas, configure un modèle StarCoder ou Qwen-Coder, génère le token, branche VS Code et JetBrains, et montre comment un seul GPU peut servir toute une équipe — votre code ne quittant jamais votre infrastructure.

Par Mohamed Meguedmi·Màj 2026-06-29·Testé sur Windows 11

#Pourquoi Tabby plutôt que Cline

Tabby et Cline ne sont pas concurrents : ils sont complémentaires. Cline (et Aider) excelle dans le chat conversationnel et le mode agent multi-fichiers, mais aucun des deux ne fait l'autocomplétion ligne par ligne pendant la frappe. Tabby, lui, ne fait que ça — et le fait très bien. Le combo gagnant en 2026 : Cline pour discuter et refactorer, Tabby pour la suggestion grisée qui apparaît au fil de la frappe.

Texte grisé inline
La suggestion s'affiche directement après le curseur, en grisé. Tab pour accepter, Échap pour ignorer. Exactement l'UX Copilot.
100 % auto-hébergé
Le serveur tourne chez vous (Docker). Aucun extrait de code n'est envoyé à un tiers — idéal pour les NDA et le code en secteur régulé.
Multi-utilisateurs
Contrairement à une extension purement locale, Tabby est un serveur : un seul GPU peut servir toute une équipe via le réseau.
Telemetry désactivable
Tabby remonte des stats anonymes par défaut ; une variable d'environnement coupe tout. Le code source que vous tapez n'est jamais transmis.
i
Tabby ≠ Cline
Si vous cherchez du chat ou un agent qui modifie plusieurs fichiers, ce n'est pas Tabby : voyez plutôt les guides Cline. Tabby ne fait QUE l'autocomplétion inline. Les deux cohabitent parfaitement dans le même éditeur, branchés sur le même GPU.

#Prérequis

Docker
Tabby se déploie en conteneur. Docker Desktop sur Windows/macOS, Docker Engine sur Linux.
GPU NVIDIA (recommandé)
Avec le NVIDIA Container Toolkit pour l'accès CUDA. Tabby tourne aussi en CPU, mais la latence inline devient inconfortable.
~6 Go de VRAM
Suffisant pour un modèle de complétion 1B–3B en quantisation. Plus de VRAM = modèle plus gros ou plus de devs en parallèle.
Un éditeur
VS Code ou un IDE JetBrains (IntelliJ, PyCharm, WebStorm, etc.). L'extension Tabby existe pour les deux.
Sur Mac Apple Silicon
Le passthrough GPU Docker n'existe pas sur macOS. Sur un Mac M1/M2/M3, lancez plutôt le binaire Tabby natif (Metal) téléchargé depuis les releases GitHub, pas l'image Docker CUDA. La config éditeur reste identique.

#Quel modèle de complétion

L'autocomplétion inline a une contrainte que le chat n'a pas : la latence. La suggestion doit apparaître en quelques centaines de millisecondes, sinon vous tapez plus vite qu'elle. On privilégie donc des modèles Fill-In-the-Middle (FIM) compacts, en variante -base, pas les gros modèles instruct du chat.

Modèle de complétion conseillé selon la VRAM
VRAMModèle de complétionRemarque
4–6 GoStarCoder2 3BRéactif, multilingue, bon défaut Tabby.
6–8 GoQwen2.5-Coder 1.5B / 3B (base)FIM excellent, très rapide, FR/Python/TS.
8–12 GoDeepSeek-Coder 6.7B (base)Suggestions plus longues, latence encore correcte.
12 Go+StarCoder2 7B / Qwen-Coder 7BPour mutualiser plusieurs devs sur un même serveur.
!
Variante -base, jamais -instruct
Pour l'autocomplétion FIM, prenez toujours la variante -base du modèle, pas la version instruct/chat. Une variante instruct a tendance à « bavarder » (ajouter des commentaires, des explications) au lieu de compléter proprement le code. Gardez les modèles instruct pour Cline.

#1. Lancer Tabby en Docker

On démarre le serveur Tabby avec accès GPU, un volume persistant pour les données, et un modèle de complétion choisi. Le port 8080 expose l'interface web et l'API.

Démarrer Tabby (GPU NVIDIA)
docker run -d \
  --name tabby \
  --gpus all \
  -p 8080:8080 \
  -v $HOME/.tabby:/data \
  registry.tabbyml.com/tabbyml/tabby \
  serve --model StarCoder2-3B --device cuda
  1. 01
    Vérifier le démarrage
    Au premier lancement, Tabby télécharge le modèle (quelques minutes). Suivez les logs avec docker logs -f tabby jusqu'au message indiquant que le serveur écoute sur le port 8080.
  2. 02
    Ouvrir l'interface web
    Rendez-vous sur http://localhost:8080. Le premier accès vous invite à créer un compte administrateur (email + mot de passe). C'est local : ces identifiants restent dans votre volume ~/.tabby.
  3. 03
    Tester la complétion
    L'onglet « Playground » de l'interface permet de vérifier que le modèle répond avant même de brancher un éditeur.
Couper la télémétrie
Ajoutez -e TABBY_DISABLE_USAGE_COLLECTION=1 à la commande docker run pour désactiver toute remontée de statistiques anonymes. Le contenu de votre code n'est de toute façon jamais transmis, mais cela coupe aussi les métriques d'usage.

#2. Créer le token d'accès

Les éditeurs s'authentifient auprès du serveur Tabby avec un token. C'est ce qui permet, en équipe, de savoir qui se connecte et de révoquer un accès sans tout casser.

  1. 01
    Aller dans les paramètres
    Dans l'interface web (http://localhost:8080), ouvrez la section comptes/sécurité. Le token de l'utilisateur courant y est affiché.
  2. 02
    Copier le token
    Récupérez la chaîne de caractères (souvent préfixée auth_). C'est elle que les extensions VS Code et JetBrains demanderont.
  3. 03
    Régénérer si besoin
    En cas de fuite ou de départ d'un collaborateur, régénérez le token depuis l'interface : l'ancien est immédiatement invalidé.
Ce dont l'éditeur a besoin
Endpoint : http://localhost:8080
Token    : auth_xxxxxxxxxxxxxxxxxxxxxxxx

#3. Brancher VS Code

  1. 01
    Installer l'extension
    Extensions (Ctrl+Shift+X) → chercher « Tabby » (éditeur TabbyML) → Install.
  2. 02
    Renseigner l'endpoint
    Au premier lancement, l'extension demande l'URL du serveur. Saisissez http://localhost:8080 (ou l'IP du serveur partagé sur le réseau).
  3. 03
    Coller le token
    Renseignez le token d'accès copié à l'étape précédente. L'icône Tabby dans la barre d'état doit passer au vert (connecté).
  4. 04
    Coder
    Tapez du code : la suggestion grisée apparaît après le curseur. Tab pour l'accepter, continuez à taper pour l'ignorer.
Régler le déclenchement
Dans les paramètres de l'extension, vous pouvez basculer entre déclenchement automatique (la suggestion apparaît seule) et manuel (à la demande via un raccourci). Le manuel économise du GPU si plusieurs devs partagent le serveur.

#4. Brancher JetBrains

La même configuration fonctionne sur toute la gamme JetBrains : IntelliJ IDEA, PyCharm, WebStorm, GoLand, Rider, etc. L'extension Tabby est un plugin unique compatible avec la plateforme.

  1. 01
    Installer le plugin
    Settings → Plugins → Marketplace → chercher « Tabby » → Install, puis redémarrer l'IDE.
  2. 02
    Configurer la connexion
    Settings → Tools → Tabby : renseignez l'endpoint (http://localhost:8080) et le token d'accès.
  3. 03
    Vérifier
    L'indicateur Tabby dans la barre d'état confirme la connexion. Les suggestions inline s'affichent comme dans VS Code.

#5. Pointer Tabby sur votre Ollama

Si vous faites déjà tourner Ollama pour Cline ou Aider, inutile de charger un second moteur d'inférence : Tabby sait consommer un backend Ollama via son protocole compatible OpenAI. Vous mutualisez ainsi un seul serveur de modèles pour la complétion et le chat.

Modèle FIM côté Ollama
# Tirez un modèle de complétion FIM dans Ollama
ollama pull qwen2.5-coder:1.5b-base
# ou
ollama pull starcoder2:3b

Côté Tabby, on déclare le backend HTTP au lieu d'un modèle local. La configuration se fait dans le fichier config.toml du volume de données (~/.tabby/config.toml), où l'on pointe le moteur de complétion vers l'API Ollama.

~/.tabby/config.toml
[model.completion.http]
kind = "ollama/completion"
model_name = "qwen2.5-coder:1.5b-base"
api_endpoint = "http://localhost:11434"
prompt_template = "<|fim_prefix|>{prefix}<|fim_suffix|>{suffix}<|fim_middle|>"
!
Le template FIM dépend du modèle
Chaque famille de modèles a ses propres balises Fill-In-the-Middle (StarCoder, Qwen, DeepSeek diffèrent). Un prompt_template incorrect produit des suggestions absurdes. Vérifiez les balises FIM de votre modèle dans sa fiche avant de figer la config.
i
Localhost vu depuis le conteneur
Depuis le conteneur Tabby, http://localhost:11434 ne pointe pas vers l'Ollama de l'hôte. Utilisez http://host.docker.internal:11434 (Docker Desktop) ou l'IP de l'hôte sur le réseau Docker, sinon Tabby ne joindra jamais Ollama.

#6. Partager le GPU entre plusieurs devs

C'est l'avantage décisif de Tabby sur une extension purement locale : un seul serveur, un seul GPU, plusieurs développeurs. Vous installez Tabby sur une machine équipée d'un GPU (un poste dédié, un serveur d'équipe), et chaque dev pointe son éditeur vers cette adresse réseau.

Exposer sur le réseau
Le port 8080 doit être accessible depuis les postes des devs. En interne, l'IP locale du serveur suffit (http://192.168.x.x:8080).
Un token par dev
Créez un compte/token par développeur dans l'interface. Vous gardez la traçabilité et pouvez révoquer un accès individuellement.
Dimensionner le GPU
Un modèle de complétion compact (1.5B–3B) sert plusieurs devs en parallèle sans saturer. La complétion étant brève, les requêtes ne se chevauchent que rarement.
Reverse proxy + HTTPS
Pour un accès hors LAN, placez Tabby derrière un reverse proxy (Caddy, Nginx) avec TLS. N'exposez jamais le port 8080 nu sur Internet.
Le serveur d'équipe idéal
Une seule carte de milieu de gamme (12–16 Go) suffit à équiper une petite équipe en autocomplétion. Comparé à un abonnement Copilot par siège, le retour sur investissement d'un GPU mutualisé est rapide — et tout le code reste sur votre infrastructure.

#Réglages perf et dépannage

Latence trop élevée
Descendez d'un cran de modèle (3B → 1.5B), vérifiez que --device cuda est bien actif (pas un fallback CPU), et limitez la longueur max des suggestions.
Pas de suggestion
Vérifiez l'icône d'état de l'extension (token/endpoint corrects) et que le conteneur tourne (docker ps). Le Playground web isole le problème côté serveur vs éditeur.
Suggestions hors-sujet
Quasi toujours un prompt_template FIM erroné ou une variante instruct au lieu de -base. Repassez sur un modèle base et le bon template FIM.
Indexation du dépôt (RAG)
Tabby peut indexer votre code pour des suggestions plus contextuelles. Activez-le dans l'interface si le GPU a de la marge ; désactivez-le si la latence souffre.
Mémoire GPU saturée
Si plusieurs modèles cohabitent (Tabby + Cline via Ollama), quantifiez le KV cache et surveillez la VRAM avec nvidia-smi.
Diagnostics rapides
# Le conteneur tourne-t-il ?
docker ps | grep tabby
# Logs en direct
docker logs -f tabby
# Le GPU est-il bien vu ?
docker exec tabby nvidia-smi

#Questions fréquentes

FAQ
Tabby remplace-t-il Cline ou Copilot ?+
Tabby remplace UNIQUEMENT l'autocomplétion inline « texte grisé » de Copilot — c'est précisément ce que Cline ne fait pas. Pour le chat et le mode agent multi-fichiers, gardez Cline. Les deux cohabitent dans le même éditeur, branchés sur le même GPU : Tabby complète pendant la frappe, Cline discute et refactore.
Faut-il un GPU pour Tabby ?+
Fortement recommandé. Tabby tourne en CPU, mais l'autocomplétion inline exige une latence de quelques centaines de millisecondes : sans GPU, la suggestion arrive après que vous avez déjà tapé la ligne. Une carte NVIDIA avec ~6 Go de VRAM et le NVIDIA Container Toolkit suffit pour un modèle de complétion compact.
Mon code est-il envoyé quelque part ?+
Non. Tabby est auto-hébergé : le serveur tourne sur votre machine ou votre serveur d'équipe, et le contenu du code n'est jamais transmis à un tiers. Tabby remonte par défaut des statistiques d'usage anonymes (jamais le code) ; la variable TABBY_DISABLE_USAGE_COLLECTION=1 les désactive complètement.
Puis-je réutiliser mon Ollama existant ?+
Oui. Tabby sait consommer un backend Ollama via son protocole compatible. Vous déclarez le moteur de complétion HTTP dans config.toml en pointant vers l'API Ollama, avec le bon prompt_template FIM. Vous mutualisez ainsi un seul serveur de modèles pour la complétion (Tabby) et le chat (Cline).
Combien de développeurs un seul serveur Tabby peut-il servir ?+
Plusieurs, sur un seul GPU. La complétion étant brève et intermittente, un modèle 1.5B–3B sur une carte 12–16 Go absorbe une petite équipe sans saturer. Créez un token par dev pour la traçabilité, exposez le port 8080 sur le LAN (ou derrière un reverse proxy TLS pour l'accès distant).

#Conclusion

Vous avez désormais un serveur d'autocomplétion de code 100 % auto-hébergé : Tabby en Docker sur votre GPU, un modèle StarCoder ou Qwen-Coder en Fill-In-the-Middle, un token d'accès, et la suggestion grisée façon Copilot dans VS Code comme dans JetBrains — avec, en bonus, la possibilité de servir toute une équipe depuis un seul GPU. Associé à Cline pour le chat et l'agent, le tableau est complet et votre code ne quitte jamais votre infrastructure. Si vous voulez éviter les heures de réglages (templates FIM, configs Ollama, modèles par rôle), le guide payant « Copilote de code local » fournit un pack clé en main Ollama + Cline + Aider, prêt à compléter avec Tabby pour l'autocomplétion inline.

Ce guide vous a aidé ?

Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.