Aller au contenu
Outils CLI de programmation

Outils CLI de programmation

Nouveau

Utilisez Shannon comme modèle derrière Claude Code, Codex CLI et d'autres CLI d'agents.

Un outil de programmation a besoin de trois réglages pour fonctionner avec Shannon : l'URL de base de l'API, votre clé API et un id de modèle Shannon. Cette page donne les réglages exacts pour Claude Code et Codex CLI, explique comment le modèle de programmation shannon-coder-1 est compté et liste les erreurs que rencontrent ces outils.

Quel point de terminaison utilise chaque outil

Outil Point de terminaison URL de base à définir Remarque
Claude Code POST /v1/messages
POST /v1/messages/count_tokens
https://api.shannon-ai.com L'outil ajoute lui-même /v1/messages à l'URL de base.
Codex CLI POST /v1/responses https://api.shannon-ai.com/v1 L'outil ajoute /responses à l'URL de base.
Autres outils d'agent qui parlent le format de chat OpenAI POST /v1/chat/completions https://api.shannon-ai.com/v1 Définissez l'URL de base, la clé et un id de modèle Shannon dans les réglages propres à l'outil.

Les trois points de terminaison acceptent la même clé API, comme Authorization: Bearer ou comme x-api-key. Les en-têtes anthropic-version, anthropic-beta et openai-beta que ces outils envoient sont acceptés.

Choisir un modèle Shannon

Chaque requête doit nommer un id de modèle que Shannon publie. Un outil de programmation envoie le nom de son propre modèle par défaut si vous ne lui dites pas autre chose, et un nom que Shannon ne publie pas reçoit 400 et le message unknown model: <name>. Aucun autre nom n'est associé à un modèle Shannon : définissez donc le modèle dans l'outil avant la première requête.

GET /v1/models liste chaque id avec sa fenêtre de contexte. Il n'exige aucune clé. Modèles et tarifs

Modèle Compté comme Ce que cela apporte
shannon-coder-1 Un appel par requête sur /v1/messages et /v1/chat/completions. Des tokens sur /v1/responses. Le modèle de programmation. Entrée texte, appels d'outil, fenêtre de contexte de 131,072 tokens.
shannon-1.6-lite
shannon-1.6-pro
Des tokens prélevés sur votre solde. Modèles généralistes avec appels d'outil. shannon-1.6-lite convient aux courtes requêtes d'arrière-plan qu'un outil fait.
Modèles open-weight hébergés Des tokens prélevés sur votre solde, avec l'entrée en cache à 25% du prix d'entrée. Appels d'outil, mise en cache du prompt pour les longues sessions et comptages exacts via /v1/messages/count_tokens.

Les outils de programmation pilotent le modèle avec un long prompt système. Le prompt système est appliqué par shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro et les modèles open-weight hébergés : choisissez donc l'un d'eux pour un outil de programmation.

Claude Code

Claude Code lit sa connexion dans des variables d'environnement. Définissez-les dans le shell qui le lance, ou dans le bloc env de ~/.claude/settings.json pour les conserver à chaque session.

# Install Claude Code
npm install -g @anthropic-ai/claude-code

# Where to send requests, and your Shannon API key
export ANTHROPIC_BASE_URL=https://api.shannon-ai.com
export ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY

# Shannon model ids: the session model, and the model behind each built-in name
export ANTHROPIC_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_OPUS_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_SONNET_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_HAIKU_MODEL=shannon-1.6-lite

# The context window of the session model
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=131072

claude
Variable Description
ANTHROPIC_BASE_URL L'endroit où Claude Code envoie ses requêtes. Utilisez l'adresse sans /v1.
ANTHROPIC_AUTH_TOKEN Votre clé API Shannon, envoyée comme Authorization: Bearer. ANTHROPIC_API_KEY fonctionne aussi : elle envoie la clé comme x-api-key, et Claude Code demande une fois de l'approuver.
ANTHROPIC_MODEL Le modèle de la session. claude --model <id> et /model <id> règlent la même chose.
ANTHROPIC_DEFAULT_HAIKU_MODEL Le modèle pour les requêtes d'arrière-plan comme les titres de session, et pour tout ce qui demande haiku.
ANTHROPIC_DEFAULT_SONNET_MODEL Le modèle utilisé quand un sous-agent ou une commande demande sonnet.
ANTHROPIC_DEFAULT_OPUS_MODEL Le modèle utilisé quand un sous-agent ou une commande demande opus.
CLAUDE_CODE_MAX_CONTEXT_TOKENS La fenêtre de contexte que Claude Code suppose pour le modèle. Utilisez le context_window que GET /v1/models indique pour l'id que vous avez choisi.
  • Définissez les trois variables ANTHROPIC_DEFAULT_…_MODEL. Les sous-agents et certaines commandes demandent un modèle par son nom intégré, et chaque nom doit correspondre à un id Shannon.
  • L'exemple dirige les requêtes d'arrière-plan vers shannon-1.6-lite, qui est compté en tokens. Les titres de session et requêtes similaires n'utilisent alors pas d'appels Coder.
  • Claude Code interroge POST /v1/messages/count_tokens pour connaître la taille du contexte. Le point de terminaison compte pour les modèles open-weight hébergés. Avec un id Shannon, il répond 400 ; Claude Code considère le comptage de tokens comme facultatif et estime lui-même la taille. Décompte de tokens

Pour vérifier l'adresse, la clé et un id de modèle avant de lancer l'outil, envoyez une requête à la main :

cURL
curl https://api.shannon-ai.com/v1/messages \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "shannon-1.6-lite",
    "max_tokens": 16,
    "messages": [{"role": "user", "content": "Say OK."}]
  }'

Codex CLI

Codex CLI parle à l'API Responses. Décrivez Shannon comme fournisseur de modèle dans ~/.codex/config.toml, choisissez-y un id de modèle Shannon et mettez votre clé API dans la variable d'environnement que nomme le fournisseur.

~/.codex/config.toml
model = "shannon-coder-1"
model_provider = "shannon"
model_context_window = 131072

[model_providers.shannon]
name = "Shannon"
base_url = "https://api.shannon-ai.com/v1"
env_key = "SHANNON_API_KEY"
wire_api = "responses"
Shell
# Install Codex CLI
npm install -g @openai/codex

# Your Shannon API key, under the name given as env_key
export SHANNON_API_KEY=YOUR_API_KEY

# Start it; --model selects another Shannon id for one run
codex
codex --model shannon-1.6-pro
Clé Description
model L'id du modèle Shannon. codex --model <id> le définit pour une exécution.
model_provider Le nom du bloc de fournisseur à utiliser, ici shannon.
base_url L'adresse de l'API avec /v1.
env_key Le nom de la variable d'environnement qui contient votre clé API Shannon.
wire_api responses : Codex parle à POST /v1/responses.
model_context_window La fenêtre de contexte du modèle, pour que Codex compacte à temps une longue session. Utilisez le context_window que GET /v1/models indique.
  • /v1/responses ne conserve aucune conversation sur le serveur : chaque requête porte la conversation dans input. previous_response_id est accepté pour la compatibilité.
  • Les outils de fonction (type: "function") sont proposés au modèle sur /v1/responses.
  • Sur /v1/responses, shannon-coder-1 est compté en tokens sur votre solde, et non en appels Coder.

La même vérification pour le point de terminaison Responses :

cURL
curl https://api.shannon-ai.com/v1/responses \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "shannon-1.6-lite",
    "input": "Say OK."
  }'

Le modèle de programmation et son comptage

shannon-coder-1 est le modèle Shannon pour les agents de programmation. GET /v1/models l'indique avec une fenêtre de contexte de 131,072 tokens, des appels d'outil, du raisonnement et une entrée texte. Il est compté de l'une de deux façons, selon le point de terminaison qu'utilise un outil.

Point de terminaison Une requête coûte Prélevé sur
/v1/messages 1 appel par requête Le quota d'appels Coder de votre forfait. Aucun token n'est prélevé sur votre solde.
/v1/chat/completions 1 appel par requête Le quota d'appels Coder de votre forfait. Aucun token n'est prélevé sur votre solde.
/v1/responses Tokens, à $8.00 par 1M Votre solde, comme tout autre modèle. Le quota d'appels n'est pas utilisé.

Un appel est une requête, quelle que soit sa taille. Il est compté quand la requête est acceptée, avant que le modèle réponde. Une session d'agent envoie une requête à chaque étape, donc une longue tâche consomme beaucoup d'appels. Le quota dépend de votre forfait et repart toutes les 4 heures, à 00:00, 04:00, 08:00, 12:00, 16:00 et 20:00 UTC.

Forfait Appels par fenêtre de 4 heures
Free 3
Plus 20
Standard 40
Pro 60

La page des forfaits montre les chiffres actuels. Forfaits

Quand les appels d'une fenêtre sont épuisés, la requête reçoit 429. Sur /v1/messages, la même erreur arrive sous la forme Anthropic.

429 /v1/chat/completions
{
  "error": {
    "type": "rate_limit_error",
    "message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
  }
}
429 /v1/messages
{
  "type": "error",
  "error": {
    "type": "rate_limit_error",
    "message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
  }
}

Dépassement de contexte

Quand une conversation dépasse la fenêtre de contexte du modèle, /v1/chat/completions et /v1/messages répondent avec 400, le type invalid_request_error, le code context_length_exceeded et un message qui commence par prompt is too long. Les outils de programmation lisent cette erreur pour compacter la session et renvoyer la requête. Elle est produite par shannon-coder-1, shannon-1.6-lite et shannon-1.6-pro.

400 /v1/chat/completions
{
  "error": {
    "type": "invalid_request_error",
    "code": "context_length_exceeded",
    "message": "prompt is too long: 140211 tokens > 131072 maximum",
    "param": null
  }
}
400 /v1/messages
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "code": "context_length_exceeded",
    "message": "prompt is too long: 140211 tokens > 131072 maximum",
    "param": null
  }
}

Le message est prompt is too long: <sent> tokens > <limit> maximum. Quand les deux nombres ne sont pas connus, c'est prompt is too long. Please compact the conversation and try again.

Sur un flux, le statut est déjà 200 : l'erreur arrive donc comme un événement, puis le flux se ferme normalement :

/v1/chat/completions, flux
data: {"error":{"message":"prompt is too long: 140211 tokens > 131072 maximum","type":"invalid_request_error","code":"context_length_exceeded","param":null}}

data: {"id":"chatcmpl-…","object":"chat.completion.chunk","created":…,"model":"shannon-coder-1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{…}}

data: [DONE]
/v1/messages, flux
event: error
data: {"type":"error","error":{"type":"invalid_request_error","message":"prompt is too long: 140211 tokens > 131072 maximum"}}

event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{…}}

event: message_stop
data: {"type":"message_stop"}

Ce sur quoi une boucle d'agent peut compter

Sujet Comportement
Schémas d'outils Les définitions d'outils sont prises telles que l'outil les envoie. Sur shannon-coder-1 et shannon-1.6-*, les mots-clés JSON Schema que le modèle n'utilise pas, comme $schema, $ref, additionalProperties, default et title, sont retirés de ce que le modèle lit, et oneOf est lu comme anyOf. Aucune requête n'est refusée pour cela.
Arguments d'un appel d'outil Dans un flux, les arguments d'un appel d'outil arrivent complets en un seul delta : tool_calls[].function.arguments, input_json_delta.partial_json ou response.function_call_arguments.delta.
Fin d'un tour d'outil finish_reason: "tool_calls" sur Chat Completions, stop_reason: "tool_use" sur Messages.
Keep-alive Pendant que le modèle travaille, /v1/messages envoie event: ping et /v1/chat/completions envoie une ligne de commentaire : ping toutes les 15 secondes.
Arrêter une requête Fermer la connexion arrête le flux. Le tour lui-même va jusqu'au bout et est compté.

Dépannage

Symptôme Cause Solution
400 avec unknown model: claude-… ou unknown model: gpt-… L'outil a envoyé le nom de son propre modèle par défaut. Seuls les ids Shannon publiés sont servis, et aucun autre nom n'y est associé. Choisissez un id Shannon : ANTHROPIC_MODEL et les trois variables ANTHROPIC_DEFAULT_…_MODEL dans Claude Code, model dans la configuration de Codex.
400 avec unknown model: et sans nom, depuis Codex CLI La requête ne nommait aucun modèle. /v1/responses en exige un. Définissez model dans ~/.codex/config.toml ou passez --model.
401 avec Missing authentication ou Invalid API key La clé n'a pas atteint l'API, ou ce n'est pas une clé actuelle. Une clé Shannon commence par sk-. Vérifiez que la variable est définie dans le shell qui lance l'outil. Copiez de nouveau la clé depuis Clés et utilisation.
404 sur chaque requête L'URL de base a un /v1 de trop ou de moins pour l'outil. Claude Code : l'adresse sans /v1. Codex CLI : l'adresse avec /v1.
429 avec Shannon Coder call quota reached Les appels Coder de la fenêtre actuelle de 4 heures sont épuisés. Attendez la fenêtre suivante, passez à un forfait avec plus d'appels, ou choisissez un modèle compté en tokens.
429 avec Quota exceeded Votre solde ne couvre pas la requête. Ajoutez des crédits, ou attendez le forfait quotidien de votre plan à 00:00 UTC.
400 avec prompt is too long La conversation dépasse la fenêtre de contexte du modèle. Compactez la session (/compact dans les deux outils). Indiquez à l'outil la fenêtre de contexte du modèle pour qu'il compacte plus tôt.
Claude Code affiche des nombres de contexte approximatifs /v1/messages/count_tokens compte pour les modèles open-weight hébergés. Avec un id Shannon, il répond 400, et Claude Code estime lui-même la taille. Rien à corriger. Choisissez un modèle open-weight hébergé si vous voulez des comptages exacts.
Une capture d'écran collée n'est pas prise en compte shannon-coder-1 accepte une entrée texte. Choisissez pour cette session un modèle qui accepte les images.

Votre clé et votre solde se trouvent sur la page Clés et utilisation. Clés et utilisation