Pointez Aider vers une base API compatible OpenAI.

Updated 2026-07-29

Aider se connecte à des endpoints compatibles OpenAI avec deux variables d'environnement et un préfixe de modèle. Définissez OPENAI_API_BASE sur https://api.apisrouter.com/v1, lancez aider --model openai/<model-id>, et vos sessions de pair programming passent par une seule clé, avec chaque modèle du catalogue accessible.

Réponse rapide : deux variables d'environnement et un préfixe de modèle.

Le chemin compatible OpenAI documenté d'Aider est exactement celui-ci : exportez OPENAI_API_BASE avec votre endpoint, exportez OPENAI_API_KEY avec la clé correspondante, et préfixez le nom du modèle par openai/ pour qu'Aider parle le protocole chat-completions à cette base. La chaîne après le préfixe est transmise telle quelle à l'endpoint, donc n'importe quel id servi par la passerelle est jouable, id Claude et DeepSeek inclus. C'est toute la connexion. Sur Mac et Linux, utilisez export ; sur Windows, utilisez setx et ouvrez un nouveau shell, car setx n'affecte pas la session en cours. Les mêmes valeurs peuvent vivre dans le fichier de configuration d'Aider ou dans un fichier .env si vous préférez une configuration par projet plutôt qu'un état de shell.

export OPENAI_API_BASE=https://api.apisrouter.com/v1
export OPENAI_API_KEY=sk-APIsRouter-...

aider --model openai/claude-sonnet-4-6

Comment Aider résout les modèles et les fournisseurs.

Aider (Aider-AI sur GitHub, environ 47 000 étoiles) est le pair programmer terminal original : il cartographie votre dépôt git, prend des demandes de changement en chat, édite les fichiers directement, et commit le résultat. Sous le capot, il route les appels de modèle via litellm, ce qui explique pourquoi le préfixe openai/ compte : litellm lit le préfixe pour choisir un protocole de fournisseur, et openai/ signifie « chat-completions contre ce que dit OPENAI_API_BASE ». Un nom de modèle sans préfixe voit son fournisseur déduit de son orthographe à la place, ce qui route un id Claude vers l'API native d'Anthropic et votre ANTHROPIC_API_KEY plutôt que vers votre passerelle. Il y a un comportement spécifique à Aider qu'il vaut la peine de connaître avant votre première session : il tient son propre registre des capacités de modèles, et un modèle qu'il ne reconnaît pas déclenche l'avertissement « Unknown context window size and costs, using sane defaults », après quoi Aider suppose une fenêtre de contexte illimitée et un coût nul. La session fonctionne quand même, mais deux sous-systèmes utiles se dégradent : le budget de tokens ne peut plus vous avertir avant que vous ne dépassiez la limite de contexte réelle, et l'affichage du coût en session lit zéro. Le correctif est un petit fichier de métadonnées, couvert plus bas, et il vaut les deux minutes qu'il demande. Aider fait aussi tourner plus d'un modèle par session. Le modèle main fait le codage ; un modèle weak gère les messages de commit et le résumé du chat ; et en mode architect, un modèle editor séparé applique le plan. Chacun accepte le même préfixe openai/, donc les trois peuvent router par la passerelle sur une seule clé.

Configuration complète : connexion plus métadonnées de modèle.

La connexion, ce sont les deux variables ci-dessus. La finition consiste à enregistrer des métadonnées pour qu'Aider traite les modèles de la passerelle comme des quantités connues. Créez .aider.model.metadata.json dans votre répertoire personnel, la racine du dépôt git, ou le répertoire de travail (ou passez --model-metadata-file), avec pour clé le nom pleinement qualifié incluant le préfixe openai/ ; le champ litellm_provider doit correspondre à ce préfixe. Une fois max_input_tokens enregistré, le budget de contexte d'Aider fonctionne contre la vraie fenêtre du modèle au lieu de supposer qu'elle est infinie. Un second fichier optionnel, .aider.model.settings.yml, ajuste le comportement par modèle : edit_format contrôle la façon dont Aider demande les changements de code (variantes de diff pour les modèles qui les gèrent, fichier entier pour ceux qui ne les gèrent pas), et use_repo_map contrôle l'inclusion du contexte du dépôt. Aider ne peut pas déduire le meilleur format d'édition pour un modèle qu'il ne reconnaît pas, donc le déclarer fait toute la différence entre un modèle qui a l'air médiocre et un modèle qui performe à son niveau.

{
  "openai/claude-sonnet-4-6": {
    "max_input_tokens": 200000,
    "max_output_tokens": 64000,
    "litellm_provider": "openai",
    "mode": "chat"
  },
  "openai/deepseek-v4-pro": {
    "max_input_tokens": 128000,
    "max_output_tokens": 16000,
    "litellm_provider": "openai",
    "mode": "chat"
  }
}

Choisir les modèles main, weak et editor.

Les sessions Aider sont longues et itératives, ce qui rend la comparaison de modèles particulièrement honnête ici : lancez la même branche de fonctionnalité avec deux modèles main sur des jours différents, et la différence se voit dans la fréquence à laquelle vous tapez /undo. Un seul endpoint fait de chaque candidat un simple changement de flag, et l'usage par clé chiffre chaque expérience.

  • Le modèle main porte chaque édition. Il lit la carte du dépôt, raisonne sur vos fichiers, et produit des diffs, donc c'est là que claude-sonnet-4-6 ou gpt-5.5 ont leur place ; un modèle qui bâcle la syntaxe des diffs vous coûte du temps de relecture à chaque changement.
  • Le modèle weak (--weak-model) écrit les messages de commit et résume l'historique du chat. Il se déclenche constamment et ne touche jamais au code, donc routez-le vers un id rapide et bon marché via la même passerelle plutôt que de le laisser par défaut ailleurs.
  • Le mode architect sépare la planification de l'édition : le modèle main planifie, le modèle editor (--editor-model) applique. Un raisonneur puissant qui planifie associé à un id calibré pour le code comme kimi-k2.7-code qui applique est un appariement qu'une clé mono-fournisseur ne peut pas exprimer.
  • deepseek-v4-pro et gpt-5.4 valent la peine d'être testés comme modèles main du quotidien sur du travail à forte dose de refactorisation, où le volume de tokens par session fait s'accumuler la différence de prix.

Paiement à l'usage · en dessous du tarif officiel

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

ModèlePrix officielNotre prix
Claude Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
GPT-5.5$5.00 / $30.00 per M$4.00 / $24.00 per M
GPT-5.4$2.50 / $15.00 per M$2.00 / $12.00 per M
DeepSeek V4 Pro$0.43 / $0.87 per M$0.40 / $0.90 per M
Kimi K2.7 Code$0.95 / $4.00 per M$1.00 / $4.00 per M

Les modes d'échec spécifiques à Aider.

Faire confiance aux « sane defaults ». Le repli pour modèle inconnu suppose un contexte illimité et un coût nul. En pratique, cela signifie qu'Aider laissera volontiers une longue session dépasser la vraie fenêtre du modèle jusqu'à ce que la passerelle rejette la requête ou que le modèle perde silencieusement le contexte le plus ancien, et le traqueur de coût n'affiche rien pendant tout ce temps. Enregistrez les métadonnées ; les deux problèmes disparaissent. Omettre le préfixe openai/. Sans lui, litellm déduit le fournisseur du nom du modèle. Les id Claude routent vers l'API d'Anthropic et échouent faute d'ANTHROPIC_API_KEY, ce qui ressemble à un problème de clé alors que c'est un problème de préfixe. Des métadonnées qui ne correspondent pas. Les entrées de .aider.model.metadata.json ont pour clé le nom pleinement qualifié, préfixe inclus, et litellm_provider doit être en accord avec ce préfixe. Une clé sous forme d'id nu ou un champ provider incohérent échoue silencieusement à s'appliquer, et vous vous retrouvez sur les valeurs par défaut sans qu'aucune erreur ne le signale. L'état du shell sous Windows. setx n'écrit la variable que pour les futurs shells. Lancer aider dans le même terminal où vous venez d'exécuter setx utilise l'ancien environnement, et le 401 qui en résulte est un problème de cycle de vie du shell, pas un problème d'identifiants. Le mauvais format d'édition. Un modèle non enregistré reçoit un format d'édition par défaut qui n'est peut-être pas celui qu'il gère le mieux. Si un modèle puissant continue de produire des éditions qu'Aider rejette, définissez explicitement edit_format dans .aider.model.settings.yml avant de conclure que le modèle ne sait pas coder.

Qui route Aider via une passerelle.

  • Les utilisateurs quotidiens d'Aider qui veulent pouvoir basculer entre Claude, GPT et DeepSeek par session avec --model, sans maintenir un compte fournisseur par famille de modèles.
  • Les développeurs qui associent un modèle main frontier à un modèle weak rapide pour les messages de commit, les deux facturés sur une seule clé avec une visibilité par session.
  • Les utilisateurs du mode architect qui mélangent un modèle de planification et un modèle d'édition de fournisseurs différents dans la même session.
  • Les équipes qui intègrent des ingénieurs avec un seul secret plutôt qu'une checklist de clés fournisseur, l'usage par clé servant de rapport de dépenses.
  • Les développeurs sans accès à la facturation d'un fournisseur donné. Un accès basé sur la recharge, sans exigence de carte, supprime la dépendance à une inscription par fournisseur.

Vérifiez l'endpoint et déboguez la première session.

Listez les modèles de la passerelle avant de commencer ; l'id après openai/ doit correspondre exactement à un id servi, suffixes de version inclus. Les échecs de première session se classent vite. Un 401 signifie qu'OPENAI_API_KEY n'est pas visible du shell qui a lancé aider (nouveaux shells uniquement sous Windows après setx ; vérifiez avec echo dans le même terminal). Une erreur de modèle introuvable venant de la passerelle est une faute de frappe dans l'id. Une erreur mentionnant la clé d'un autre fournisseur signifie qu'un nom de modèle sans préfixe a été routé nativement. Et l'avertissement de modèle inconnu au démarrage n'est pas une erreur, mais c'est votre signal pour ajouter le fichier de métadonnées avant une longue session, pas après qu'elle a atteint la vraie limite de contexte. En session, l'affichage de tokens et de coût propre à Aider devient exact une fois les métadonnées enregistrées, et la console APIsRouter montre les mêmes sessions côté endpoint : modèle par requête, nombre de tokens, et dépense. Pour un pair programmer utilisé toute la journée, cette vue par clé est la réponse honnête à ce que coûte réellement une semaine d'Aider.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY" | head -50

Questions fréquentes

Comment connecter Aider à un endpoint compatible OpenAI ?

Exportez OPENAI_API_BASE avec l'URL de l'endpoint et OPENAI_API_KEY avec sa clé, puis lancez aider --model openai/<model-id>. C'est le chemin openai-compat documenté d'Aider ; le préfixe openai/ indique à sa couche litellm de parler chat-completions à votre base URL.

Aider peut-il faire tourner des modèles Claude ou DeepSeek avec cette configuration ?

Oui. L'id après openai/ est transmis à l'endpoint comme une simple chaîne, donc tout modèle servi par la passerelle fonctionne : aider --model openai/claude-sonnet-4-6 ou openai/deepseek-v4-pro. Gardez le préfixe, sinon le fournisseur de l'id est déduit et la requête est routée loin de votre base.

Que signifie l'avertissement « Unknown context window size and costs » ?

Aider ne reconnaît pas le modèle, donc il suppose une fenêtre de contexte illimitée et un coût nul. Les sessions fonctionnent, mais le budget de contexte et l'affichage du coût sont faux. Enregistrez le modèle dans .aider.model.metadata.json, avec pour clé son nom openai/ pleinement qualifié, et l'avertissement ainsi que les deux problèmes disparaissent.

Le modèle weak et le modèle editor passent-ils aussi par la passerelle ?

Oui, si vous les y pointez : --weak-model openai/<fast-id> pour les messages de commit et le résumé, et --editor-model openai/<id> en mode architect. Les trois emplacements acceptent le préfixe, donc une seule clé peut couvrir un mix main/weak/editor multi-fournisseurs.

Pourquoi Aider demande-t-il encore une clé Anthropic ?

Un nom de modèle a été saisi sans le préfixe openai/. litellm a déduit le fournisseur à partir du nom et a tenté la route native d'Anthropic, qui veut ANTHROPIC_API_KEY. Ajoutez le préfixe et la requête ira à la place vers OPENAI_API_BASE avec votre clé de passerelle.

Dois-je définir edit_format pour les modèles de la passerelle ?

Pour les modèles qu'Aider ne reconnaît pas, oui. edit_format dans .aider.model.settings.yml contrôle la façon dont Aider demande les changements de code, et les modèles frontier donnent généralement le meilleur d'eux-mêmes avec un format diff. Laisser un modèle inconnu sur les valeurs par défaut peut faire paraître un modèle puissant moins bon qu'il ne l'est.