CLI-codeertools
NieuwGebruik Shannon als het model achter Claude Code, Codex CLI en andere agent-CLI's.
Een codeertool heeft drie instellingen nodig om met Shannon te werken: de basis-URL van de API, je API-sleutel en een Shannon model-id. Deze pagina geeft de exacte instellingen voor Claude Code en Codex CLI, legt uit hoe het codeermodel shannon-coder-1 wordt geteld en toont de fouten die deze tools tegenkomen.
Welk endpoint elke tool gebruikt
| Tool | Endpoint | In te stellen basis-URL | Opmerking |
|---|---|---|---|
| Claude Code | POST /v1/messagesPOST /v1/messages/count_tokens | https://api.shannon-ai.com | De tool voegt zelf /v1/messages toe aan de basis-URL. |
| Codex CLI | POST /v1/responses | https://api.shannon-ai.com/v1 | De tool voegt /responses toe aan de basis-URL. |
| Andere agenttools die het OpenAI-chatformaat spreken | POST /v1/chat/completions | https://api.shannon-ai.com/v1 | Stel de basis-URL, de sleutel en een Shannon model-id in via de eigen instellingen van de tool. |
Alle drie de endpoints accepteren dezelfde API-sleutel, als Authorization: Bearer of als x-api-key. De headers anthropic-version, anthropic-beta en openai-beta die deze tools versturen, worden geaccepteerd.
Een Shannon-model kiezen
Elke aanvraag moet een model-id noemen dat Shannon publiceert. Een codeertool stuurt de naam van zijn eigen standaardmodel mee, tenzij je hem iets anders opgeeft, en een naam die Shannon niet publiceert, wordt beantwoord met 400 en het bericht unknown model: <name>. Geen enkele andere naam wordt aan een Shannon-model gekoppeld, dus stel het model in de tool in vóór de eerste aanvraag.
GET /v1/models toont elk id met zijn contextvenster. Er is geen sleutel voor nodig. Modellen en prijzen
| Model | Geteld als | Wat het oplevert |
|---|---|---|
shannon-coder-1 | Eén call per aanvraag op /v1/messages en /v1/chat/completions. Tokens op /v1/responses. | Het codeermodel. Tekst als input, toolcalls, contextvenster van 131,072 tokens. |
shannon-1.6-liteshannon-1.6-pro | Tokens van je saldo. | Algemene modellen met toolcalls. shannon-1.6-lite past bij de korte achtergrondaanvragen die een tool doet. |
| Gehoste open-weight modellen | Tokens van je saldo, met gecachte input tegen 25% van de inputprijs. | Toolcalls, prompt caching voor lange sessies en exacte tellingen via /v1/messages/count_tokens. |
Codeertools sturen het model aan met een lange systeemprompt. De systeemprompt wordt toegepast door shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro en de gehoste open-weight modellen, dus kies voor een codeertool een van deze.
Claude Code
Claude Code leest zijn verbinding uit omgevingsvariabelen. Stel ze in de shell in waarmee je het start, of in het env-blok van ~/.claude/settings.json om ze voor elke sessie te behouden.
# 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 {
"env": {
"ANTHROPIC_BASE_URL": "https://api.shannon-ai.com",
"ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY",
"ANTHROPIC_MODEL": "shannon-coder-1",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "shannon-coder-1",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "shannon-coder-1",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "shannon-1.6-lite",
"CLAUDE_CODE_MAX_CONTEXT_TOKENS": "131072"
}
} | Variabele | Beschrijving |
|---|---|
ANTHROPIC_BASE_URL | Waar Claude Code zijn aanvragen naartoe stuurt. Gebruik het adres zonder /v1. |
ANTHROPIC_AUTH_TOKEN | Je Shannon API-sleutel, verstuurd als Authorization: Bearer. ANTHROPIC_API_KEY werkt ook: die stuurt de sleutel als x-api-key, en Claude Code vraagt eenmalig om goedkeuring. |
ANTHROPIC_MODEL | Het model van de sessie. claude --model <id> en /model <id> stellen hetzelfde in. |
ANTHROPIC_DEFAULT_HAIKU_MODEL | Het model voor achtergrondaanvragen zoals sessietitels, en voor alles wat om haiku vraagt. |
ANTHROPIC_DEFAULT_SONNET_MODEL | Het model dat wordt gebruikt als een subagent of een commando om sonnet vraagt. |
ANTHROPIC_DEFAULT_OPUS_MODEL | Het model dat wordt gebruikt als een subagent of een commando om opus vraagt. |
CLAUDE_CODE_MAX_CONTEXT_TOKENS | Het contextvenster dat Claude Code voor het model aanneemt. Gebruik de context_window die GET /v1/models meldt voor het id dat je hebt gekozen. |
- Stel alle drie de
ANTHROPIC_DEFAULT_…_MODEL-variabelen in. Subagents en sommige commando's vragen om een model met zijn ingebouwde naam, en elke naam moet naar een Shannon-id verwijzen. - Het voorbeeld richt achtergrondaanvragen op
shannon-1.6-lite, dat in tokens wordt geteld. Sessietitels en vergelijkbare aanvragen gebruiken dan geen Coder-calls. - Claude Code vraagt via
POST /v1/messages/count_tokensnaar de grootte van de context. Het endpoint telt voor de gehoste open-weight modellen. Met een Shannon-id antwoordt het400; Claude Code behandelt tokentelling als optioneel en schat de grootte zelf. Tokens tellen
Om het adres, de sleutel en een model-id te controleren voordat je de tool start, stuur je met de hand één aanvraag:
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 praat met de Responses API. Beschrijf Shannon als modelprovider in ~/.codex/config.toml, kies daar een Shannon model-id en zet je API-sleutel in de omgevingsvariabele die de provider noemt.
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" # 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 | Sleutel | Beschrijving |
|---|---|
model | Het Shannon model-id. codex --model <id> stelt het in voor één run. |
model_provider | De naam van het providerblok dat moet worden gebruikt, hier shannon. |
base_url | Het API-adres met /v1. |
env_key | De naam van de omgevingsvariabele die je Shannon API-sleutel bevat. |
wire_api | responses: Codex praat met POST /v1/responses. |
model_context_window | Het contextvenster van het model, zodat Codex een lange sessie op tijd comprimeert. Gebruik de context_window die GET /v1/models meldt. |
/v1/responsesbewaart geen gesprek op de server: elke aanvraag bevat het gesprek ininput.previous_response_idwordt voor compatibiliteit geaccepteerd.- Functietools (
type: "function") worden op/v1/responsesaan het model aangeboden. - Op
/v1/responseswordtshannon-coder-1in tokens van je saldo geteld, niet in Coder-calls.
Dezelfde controle voor het Responses-endpoint:
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."
}' Het codeermodel en hoe het wordt geteld
shannon-coder-1 is het Shannon-model voor codeeragents. GET /v1/models meldt het met een contextvenster van 131,072 tokens, toolcalls, reasoning en tekst als input. Het wordt op een van twee manieren geteld, afhankelijk van het endpoint dat een tool gebruikt.
| Endpoint | Een aanvraag kost | Afgeschreven van |
|---|---|---|
/v1/messages | 1 call per aanvraag | De Coder-calllimiet van je plan. Er worden geen tokens van je saldo afgeschreven. |
/v1/chat/completions | 1 call per aanvraag | De Coder-calllimiet van je plan. Er worden geen tokens van je saldo afgeschreven. |
/v1/responses | Tokens, tegen $8.00 per 1M | Je saldo, zoals bij elk ander model. De calllimiet wordt niet gebruikt. |
Een call is één aanvraag, ongeacht de grootte. Ze wordt geteld op het moment dat de aanvraag wordt geaccepteerd, voordat het model antwoordt. Een agentsessie stuurt voor elke stap één aanvraag, dus een lange taak gebruikt veel calls. De limiet hangt af van je plan en begint elke 4 uur opnieuw, om 00:00, 04:00, 08:00, 12:00, 16:00 en 20:00 UTC.
| Plan | Calls per venster van 4 uur |
|---|---|
| Free | 3 |
| Plus | 20 |
| Standard | 40 |
| Pro | 60 |
De planpagina toont de huidige aantallen. Plannen
Als de calls van een venster op zijn, wordt de aanvraag beantwoord met 429. Op /v1/messages komt dezelfde fout in de Anthropic-vorm.
{
"error": {
"type": "rate_limit_error",
"message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
}
} {
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
}
} Contextoverloop
Als een gesprek groter is dan het contextvenster van het model, antwoorden /v1/chat/completions en /v1/messages met 400, het type invalid_request_error, de code context_length_exceeded en een bericht dat met prompt is too long begint. Codeertools lezen deze fout om de sessie te comprimeren en de aanvraag opnieuw te versturen. Ze wordt geleverd door shannon-coder-1, shannon-1.6-lite en shannon-1.6-pro.
{
"error": {
"type": "invalid_request_error",
"code": "context_length_exceeded",
"message": "prompt is too long: 140211 tokens > 131072 maximum",
"param": null
}
} {
"type": "error",
"error": {
"type": "invalid_request_error",
"code": "context_length_exceeded",
"message": "prompt is too long: 140211 tokens > 131072 maximum",
"param": null
}
} Het bericht is prompt is too long: <sent> tokens > <limit> maximum. Als de twee getallen niet bekend zijn, is het prompt is too long. Please compact the conversation and try again.
Bij een stream is de status al 200, dus de fout komt binnen als event en de stream sluit daarna op de normale manier:
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] 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"} Waar een agentloop op kan rekenen
| Onderwerp | Gedrag |
|---|---|
| Toolschema's | Tooldefinities worden overgenomen zoals de tool ze verstuurt. Op shannon-coder-1 en shannon-1.6-* worden JSON Schema-keywords die het model niet gebruikt, zoals $schema, $ref, additionalProperties, default en title, weggelaten uit wat het model leest, en wordt oneOf gelezen als anyOf. Er wordt geen aanvraag om geweigerd. |
| Argumenten van toolcalls | In een stream komen de argumenten van een toolcall compleet binnen in één delta: tool_calls[].function.arguments, input_json_delta.partial_json of response.function_call_arguments.delta. |
| Einde van een toolbeurt | finish_reason: "tool_calls" bij Chat Completions, stop_reason: "tool_use" bij Messages. |
| Keep-alive | Terwijl het model werkt, stuurt /v1/messages elke 15 seconden event: ping en /v1/chat/completions een commentaarregel : ping. |
| Een aanvraag stoppen | Het sluiten van de verbinding stopt de stream. De beurt zelf loopt door tot het einde en wordt meegeteld. |
Probleemoplossing
| Symptoom | Oorzaak | Oplossing |
|---|---|---|
400 met unknown model: claude-… of unknown model: gpt-… | De tool stuurde de naam van zijn eigen standaardmodel mee. Alleen gepubliceerde Shannon-id's worden bediend, en geen enkele andere naam wordt aan een id gekoppeld. | Kies een Shannon-id: ANTHROPIC_MODEL en de drie ANTHROPIC_DEFAULT_…_MODEL-variabelen in Claude Code, model in de Codex-config. |
400 met unknown model: en geen naam, van Codex CLI | De aanvraag noemde geen model. /v1/responses heeft er een nodig. | Stel model in ~/.codex/config.toml in of geef --model mee. |
401 met Missing authentication of Invalid API key | De sleutel heeft de API niet bereikt, of het is geen huidige sleutel. Een Shannon-sleutel begint met sk-. | Controleer of de variabele is ingesteld in de shell waarmee je de tool start. Kopieer de sleutel opnieuw uit Sleutels en gebruik. |
404 bij elke aanvraag | De basis-URL heeft voor deze tool één /v1 te veel of te weinig. | Claude Code: het adres zonder /v1. Codex CLI: het adres met /v1. |
429 met Shannon Coder call quota reached | De Coder-calls van het huidige venster van 4 uur zijn op. | Wacht op het volgende venster, stap over naar een plan met meer calls, of kies een model dat in tokens wordt geteld. |
429 met Quota exceeded | Je saldo dekt de aanvraag niet. | Voeg credit toe, of wacht op de dagelijkse planlimiet om 00:00 UTC. |
400 met prompt is too long | Het gesprek is groter dan het contextvenster van het model. | Comprimeer de sessie (/compact in beide tools). Geef de tool het contextvenster van het model op, zodat hij eerder comprimeert. |
| Claude Code toont ongeveer-getallen voor de context | /v1/messages/count_tokens telt voor de gehoste open-weight modellen. Met een Shannon-id antwoordt het 400, en Claude Code schat de grootte zelf. | Niets op te lossen. Kies een gehost open-weight model als je exacte tellingen wilt. |
| Een geplakte screenshot wordt niet meegenomen | shannon-coder-1 accepteert tekst als input. | Kies voor die sessie een model dat afbeeldingen accepteert. |
Je sleutel en je saldo staan op de pagina Sleutels en gebruik. Sleutels en gebruik