Intermédiaire 10 minIDE

Utiliser Ollama dans Claude Code et Cursor (modèles locaux)

Claude Code et Cursor sont devenus des outils de référence pour coder avec un LLM, mais les deux envoient votre code chez Anthropic ou OpenAI et coûtent 20 $/mois minimum. Ollama expose un endpoint OpenAI-compatible sur localhost:11434/v1 qui permet de brancher ces deux IDE — et n'importe quel assistant qui parle l'API OpenAI — sur un modèle local. Ce guide montre la config exacte pour Cursor (natif) et Claude Code (via proxy), quels modèles de code privilégier en 2026, et où le local décroche par rapport au cloud.

Par Mohamed Meguedmi·Màj 2026-05-27·Testé sur Windows, macOS, Linux

#Pourquoi utiliser Ollama dans Claude Code ou Cursor ?

Trois raisons qui reviennent toujours. La confidentialité d'abord : un projet client sous NDA, du code propriétaire, des secrets en clair dans les fichiers — rien de tout ça ne devrait partir chez un tiers. Le coût ensuite : Cursor Pro c'est 20 $/mois, Claude Code consomme des tokens Anthropic qui finissent vite à 50-100 $/mois en usage soutenu. Avec Ollama, c'est zéro après l'achat du GPU. La résilience enfin : votre assistant ne s'arrête pas quand l'API d'Anthropic a un incident ou quand votre connexion ADSL coupe.

Le compromis est honnête : un Qwen3-Coder 30B en local n'égale pas Claude Sonnet 4.6 ou GPT-5 pour les tâches d'agent complexes sur plusieurs fichiers. Mais pour 80% des usages quotidiens — compléter, refactor, écrire un test, expliquer un bloc, générer un commit — un coder de 14 à 32B en Q4 fait largement le job. Et vous pouvez toujours garder le cloud en parallèle pour les gros morceaux.

i
Ce que ce guide couvre
Brancher Ollama (modèle local) à Cursor et à Claude Code via l'API OpenAI-compatible. Choix du modèle de code. Le guide ne traite pas de la complétion inline façon Copilot — pour ça, voir le guide Continue.dev / Tabby / CodeGeeX.

#L'endpoint OpenAI-compatible d'Ollama

Depuis la version 0.1.24, Ollama expose en plus de son API native un endpoint compatible avec l'API OpenAI ChatCompletions. C'est ce qui rend tout le reste possible : n'importe quel client OpenAI (SDK Python, SDK Node, Cursor, Cline, Aider, Continue, etc.) peut taper Ollama sans modification, juste en changeant le base URL.

Vérifier que ça répond
curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen2.5-coder:14b",
    "messages": [{"role": "user", "content": "Bonjour"}]
  }'

Le format de réponse est identique à celui d'OpenAI : choices[0].message.content, usage avec prompt_tokens et completion_tokens, support du streaming via stream: true. La clé d'API est ignorée — vous pouvez envoyer n'importe quoi dans le header Authorization, Ollama l'accepte. Beaucoup de clients refusent cependant un champ vide : mettez ollama ou anything pour leur faire plaisir.

Trois endpoints, un seul daemon
Ollama écoute en parallèle sur /api/* (API native, recommandée pour les vrais clients Ollama) et sur /v1/* (compatibilité OpenAI). Aucune configuration n'est nécessaire pour activer /v1, c'est là dès l'installation. Le port reste 11434 dans les deux cas.

#Prérequis

Ollama 0.5+
ollama --version doit répondre. Sur Windows, l'icône système doit être active. Si vous partez de zéro, voir le guide d'installation Ollama pour votre OS.
GPU avec 12 Go de VRAM ou Mac M-series 16 Go+
Un coder 14B Q4 = ~9 Go, un 32B Q4 = ~19 Go. RTX 3060 12 Go = plancher utile ; RTX 4070/4080 ou Mac M3/M4 = confort réel.
Cursor 0.40+ ou Claude Code CLI
Cursor depuis cursor.com (mode OpenAI custom intégré). Claude Code via npm install -g @anthropic-ai/claude-code.
Familiarité minimale avec les variables d'environnement
Pour Claude Code, on jouera avec ANTHROPIC_BASE_URL et ANTHROPIC_AUTH_TOKEN.

#1. Brancher Cursor sur Ollama

Cursor a une option officielle pour pointer vers un endpoint OpenAI-compatible. Ce qui marche très bien pour le chat (Ctrl+L) et l'édition inline (Ctrl+K). Le Composer agent et le Tab autocomplete, eux, restent verrouillés sur les modèles Cursor cloud — c'est une limite produit assumée par Anthysphere.

  1. 01
    Télécharger un modèle de code
    Qwen2.5-Coder 14B est un excellent point de départ : francophone correct, support du tool calling, raisonnable en taille. Pour une RTX 4090 ou un Mac M3 Max, passez à 32B.
  2. 02
    Ouvrir les paramètres Cursor
    Ctrl+Shift+J (Cmd+, sur Mac) → onglet Models. Vous voyez la liste des modèles Cursor (claude-3.5-sonnet, gpt-5, etc.) avec des toggles.
  3. 03
    Ajouter un modèle custom
    Cliquez sur Add Model en bas. Mettez le nom exact du modèle Ollama : qwen2.5-coder:14b. Cochez la case pour l'activer.
  4. 04
    Configurer la base URL
    Dans la section OpenAI API Key, dépliez Override OpenAI Base URL. Mettez http://localhost:11434/v1 puis cliquez Save. Pour l'API Key, mettez n'importe quoi (ollama suffit), Cursor refuse un champ vide.
  5. 05
    Vérifier la connexion
    Cliquez sur Verify. Cursor envoie une requête de test à votre Ollama. Si ça répond 200, le bouton passe au vert et le modèle apparaît dans le sélecteur du chat.
Pull du modèle côté Ollama
ollama pull qwen2.5-coder:14b
!
Le mode Privacy ne suffit pas
Activer Privacy Mode dans Cursor empêche que votre code soit utilisé pour entraîner des modèles, mais ne change rien au fait que le code transite par les serveurs de Cursor pour appeler le modèle. Seule la bascule sur un endpoint local (cette config) garantit que rien ne quitte la machine — vérifiable avec un tcpdump ou un firewall sortant.

Une fois en place, le chat Cursor (Ctrl+L) et l'édition inline (Ctrl+K) fonctionnent avec votre modèle local. Le sélecteur de modèle en haut du panneau chat liste qwen2.5-coder:14b ; les modèles Cursor cloud restent accessibles si vous voulez basculer ponctuellement.

i
Ce qui ne marche pas avec un modèle custom
Le Composer agent (Ctrl+I en mode agent), le Tab autocomplete, et la Cursor Predicts feature restent sur les modèles cloud Cursor — ils utilisent des modèles fine-tunés en interne et ne peuvent pas être réorientés. Pour la complétion inline locale, utilisez Continue.dev en parallèle.

#2. Brancher Claude Code sur Ollama

Claude Code (le CLI d'Anthropic) parle nativement l'API Messages d'Anthropic, pas l'API Chat Completions d'OpenAI. Les deux protocoles diffèrent (rôles, format des tool calls, streaming). Pour faire dialoguer Claude Code avec Ollama il faut donc un petit traducteur — un proxy qui reçoit du Anthropic Messages d'un côté et émet du OpenAI Chat Completions de l'autre.

Le projet de référence pour ça s'appelle claude-code-router (musistudio/claude-code-router sur GitHub). Il s'installe en une commande, tourne en local sur un port, et accepte des règles de routage par modèle (ex : envoyer haiku vers Ollama, sonnet vers le vrai Claude).

  1. 01
    Installer Claude Code
    npm install -g @anthropic-ai/claude-code si ce n'est pas déjà fait. claude --version doit répondre.
  2. 02
    Installer claude-code-router
    npm install -g @musistudio/claude-code-router. Le binaire ccr est ajouté au PATH.
  3. 03
    Pull du modèle dans Ollama
    Préférez un modèle qui supporte les tool calls : qwen2.5-coder:14b, qwen3:14b, ou devstral. Sans support tool, Claude Code ne pourra pas appeler ses outils internes (Read, Edit, Bash, etc.) et perd 90% de son intérêt.
  4. 04
    Configurer le routeur
    Créez ~/.claude-code-router/config.json avec une entrée Providers pointant vers Ollama, et une règle Router qui mappe les modèles Claude vers votre modèle local.
  5. 05
    Lancer via ccr
    ccr code à la place de claude. Le wrapper démarre le proxy en arrière-plan, exporte ANTHROPIC_BASE_URL vers lui, puis lance Claude Code. À l'intérieur, /model permet de basculer entre routes.
Pull modèle adapté au tool calling
ollama pull qwen2.5-coder:14b
# ou pour les machines musclées
ollama pull qwen2.5-coder:32b
~/.claude-code-router/config.json
{
  "Providers": [
    {
      "name": "ollama",
      "api_base_url": "http://localhost:11434/v1/chat/completions",
      "api_key": "ollama",
      "models": ["qwen2.5-coder:14b", "qwen2.5-coder:32b"]
    }
  ],
  "Router": {
    "default": "ollama,qwen2.5-coder:14b",
    "background": "ollama,qwen2.5-coder:14b",
    "think": "ollama,qwen2.5-coder:32b",
    "longContext": "ollama,qwen2.5-coder:32b"
  }
}
Lancement
ccr code
# Claude Code démarre, mais les requêtes filent vers Ollama
# Vérifier : /model affiche qwen2.5-coder:14b
!
Les outils internes peuvent flotter
Claude Code utilise massivement les tool calls pour Read, Edit, Bash, Glob, Grep. Tous les modèles Ollama ne les gèrent pas avec la même fiabilité que Claude Sonnet — Qwen2.5-Coder s'en sort bien, certains modèles plus petits oublient des arguments ou hallucinent des fichiers. Si vous voyez Claude Code boucler ou demander la même chose plusieurs fois, c'est probablement le modèle qui rate ses tool calls.

Approche minimaliste sans router : vous pouvez aussi exporter directement ANTHROPIC_BASE_URL et ANTHROPIC_AUTH_TOKEN vers un proxy Anthropic-compatible (LiteLLM en mode --anthropic ou y-router en sont). Plus léger mais sans la souplesse de règles par tâche.

#3. Quel modèle de code choisir : Qwen3-Coder vs Devstral en local

Sur Ollama, trois familles dominent pour le code à mi-2026 : Qwen3-Coder (Alibaba), Devstral (Mistral AI), et DeepSeek-Coder-V2. Toutes sont open-weight et fonctionnent en Q4 sur du matériel grand public.

Qwen2.5-Coder 14B / Qwen3-Coder 30B-A3B
La référence polyvalente. Support tool calling solide, multilingue (français correct), bon en Python/JS/Go/Rust. Le 30B-A3B est un MoE qui rivalise avec un dense 14B en vitesse. Pull : qwen2.5-coder:14b ou qwen3-coder:30b.
Devstral Small 24B (Mistral AI, mai 2025)
Pensé spécifiquement pour les agents SWE (édition multi-fichiers, navigation de codebase). Excellent dans Aider, OpenHands, et — par extension — Claude Code. Licence Apache 2.0. 24B dense ≈ 14 Go en Q4. Pull : devstral:24b.
DeepSeek-Coder-V2 16B / 236B
Le 16B-Lite tient sur 12 Go de VRAM, le 236B est inatteignable sans Mac Studio Ultra. Très fort en algorithme et en complétion FIM, un peu plus pauvre en chat naturel français. Pull : deepseek-coder-v2:16b.
GLM-4.5 Air (Z.ai, 2025)
9B paramètres seulement, étonnamment compétent sur du refactoring simple. Bon repli pour les GPU 8 Go. Pull : glm-4.5-air.
Recommandation pratique
Si vous hésitez : qwen2.5-coder:14b sur 12 Go de VRAM, qwen2.5-coder:32b ou devstral:24b sur 24 Go. Devstral brille spécifiquement quand l'IDE fonctionne en mode agent (Claude Code, Aider) ; Qwen est plus à l'aise en chat conversationnel direct dans Cursor.

VRAM par taille en Q4_K_M (la quantization recommandée) : 7B ≈ 5 Go, 14B ≈ 9 Go, 24B ≈ 14 Go, 32B ≈ 19 Go, 70B ≈ 40 Go. Le contexte consomme en plus : comptez +2 à +4 Go pour 32k tokens de contexte selon le modèle.

#Limites vs le cloud : où le local décroche

Soyons honnêtes sur ce que le local ne fait pas aussi bien que Claude Sonnet 4.6 ou GPT-5 :

Fenêtre de contexte
Ollama par défaut limite num_ctx à 4096 tokens ; on monte à 32k voire 128k selon le modèle, mais au prix de la VRAM. Cursor avec Sonnet en cloud manipule 200k tokens sans broncher. Sur un gros monorepo, le cloud lit tout, le local doit choisir.
Raisonnement multi-étapes
Un Qwen 14B s'égare quand l'agent enchaîne 10 tool calls avec des dépendances entre eux. Sonnet tient le fil. Pour de l'orchestration agent vraiment complexe, le cloud reste devant — et de loin.
Connaissance des API récentes
Les modèles open-weight ont un cutoff (souvent 2024) et ratent les API sorties après. Cursor en cloud benéficie de la mise à jour continue et des outils de recherche web.
Latence first-token
Paradoxalement, le cloud peut être plus rapide à démarrer (pas de chargement modèle). En local, le modèle reste chaud entre deux appels — l'avantage rebascule après le premier prompt.
Coût électrique
Une RTX 4090 sous charge consomme 350 W. 8h/jour de codage soutenu = ~70 kWh/mois = ~15 € en France. Reste très inférieur à 20 $/mois Cursor + 50 $/mois Claude, mais ce n'est pas gratuit.
i
La stratégie hybride pragmatique
L'approche qui marche en pratique : Ollama en défaut pour le 80% quotidien (compléter, expliquer, refactor petit). Cloud (Claude Sonnet ou GPT-5) à la demande pour les 20% qui demandent du gros raisonnement ou du contexte long. Cursor le permet nativement via le sélecteur de modèle ; pour Claude Code, claude-code-router le permet via /model en cours de session.

#Astuces et dépannage

Cursor renvoie "OpenAI API key invalid"
Le champ API Key doit contenir une valeur non vide. Mettez ollama, sk-anything ou n'importe quoi de plausible. C'est cosmétique : Ollama ignore le header.
Cursor ne voit pas le modèle
Le nom du modèle dans Cursor (Add Model) doit être EXACTEMENT celui retourné par ollama list (tag inclus, ex qwen2.5-coder:14b). Pas qwen2.5-coder seul, pas Qwen 2.5 Coder.
Claude Code boucle ou redemande la même chose
Souvent le modèle local rate ses tool calls. Vérifiez que le modèle supporte le function calling (ollama show qwen2.5-coder:14b → cherchez la mention tools dans les capabilities). Passez à un modèle plus gros, ou simplifiez la tâche.
Réponses tronquées au bout de 2-3 phrases
num_ctx par défaut = 4096. Pour Claude Code et Cursor avec un contexte de codebase, montez à 16384 ou 32768. Avec Ollama : créez un Modelfile custom avec PARAMETER num_ctx 32768 et faites ollama create coder-32k -f Modelfile. Le coût mémoire est réel (+ 2-4 Go pour le KV cache).
VRAM saturée, OOM
Vérifiez ollama ps pendant l'utilisation. Si vous voyez >100% loaded en GPU/CPU split, le modèle déborde en RAM et devient très lent. Solutions : quantization plus agressive (Q3_K_M), modèle plus petit, ou réduire num_ctx.
Latence > 5 s par réponse
Soit le modèle déborde en CPU (voir point précédent), soit Ollama recharge le modèle à chaque requête. Vérifiez OLLAMA_KEEP_ALIVE (par défaut 5 min). Mettez OLLAMA_KEEP_ALIVE=2h pour garder le modèle chaud.
Coût zéro, mais pas latence zéro
Un coder local n'est pas magiquement plus rapide qu'un cloud — il est juste sur votre machine. Sur RTX 4090, qwen2.5-coder:14b génère ~50 tokens/s, soit ~3 secondes pour une réponse moyenne. C'est comparable à Claude Sonnet. Sur Mac M3 Max ou RTX 3060 12 Go, comptez plutôt 20-25 tokens/s, soit 6-8 s — perceptible mais utilisable.

#Pour aller plus loin

Vous avez Ollama qui sert un modèle de code à Cursor ou Claude Code. Les directions naturelles ensuite :

Compléter dans l'éditeur (FIM inline)
Le guide Copilot gratuit en local installe Continue.dev / Tabby / CodeGeeX pour la complétion inline façon Copilot — complément naturel du chat dans Cursor.
Choisir la bonne quantification
Q4_K_M, Q5_K_M, Q8_0 : le guide Choisir sa quantification compare la perte de qualité réelle sur les modèles de code, et explique quand un Q3 reste utilisable.
Personnaliser un modèle de code
Le guide Personnaliser un modèle avec Ollama Modelfile montre comment fixer le num_ctx, le system prompt et la température pour avoir un coder taillé pour votre stack.
Ce guide vous a aidé ?

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