CLI-verktyg för kodning
NyAnvänd Shannon som modellen bakom Claude Code, Codex CLI och andra agent-CLI:er.
Ett kodningsverktyg behöver tre inställningar för att fungera med Shannon: API:ets bas-URL, din API-nyckel och ett Shannon-modell-id. Den här sidan ger de exakta inställningarna för Claude Code och Codex CLI, förklarar hur kodningsmodellen shannon-coder-1 räknas och listar de fel som verktygen möter.
Vilken endpoint varje verktyg använder
| Verktyg | Endpoint | Bas-URL att ange | Anmärkning |
|---|---|---|---|
| Claude Code | POST /v1/messagesPOST /v1/messages/count_tokens | https://api.shannon-ai.com | Verktyget lägger själv till /v1/messages på bas-URL:en. |
| Codex CLI | POST /v1/responses | https://api.shannon-ai.com/v1 | Verktyget lägger till /responses på bas-URL:en. |
| Andra agentverktyg som talar OpenAI-chattformatet | POST /v1/chat/completions | https://api.shannon-ai.com/v1 | Ange bas-URL, nyckel och ett Shannon-modell-id i verktygets egna inställningar. |
Alla tre endpoints tar samma API-nyckel, som Authorization: Bearer eller som x-api-key. Headrarna anthropic-version, anthropic-beta och openai-beta som de här verktygen skickar accepteras.
Välj en Shannon-modell
Varje begäran måste ange ett modell-id som Shannon publicerar. Ett kodningsverktyg skickar namnet på sin egen standardmodell om du inte säger något annat, och ett namn som Shannon inte publicerar besvaras med 400 och meddelandet unknown model: <name>. Inget annat namn mappas till en Shannon-modell, så ange modellen i verktyget före den första begäran.
GET /v1/models listar varje id med dess kontextfönster. Den kräver ingen nyckel. Modeller och priser
| Modell | Räknas som | Vad den ger |
|---|---|---|
shannon-coder-1 | Ett anrop per begäran på /v1/messages och /v1/chat/completions. Tokens på /v1/responses. | Kodningsmodellen. Textinput, verktygsanrop, kontextfönster på 131,072 tokens. |
shannon-1.6-liteshannon-1.6-pro | Tokens från din balans. | Generella modeller med verktygsanrop. shannon-1.6-lite passar de korta bakgrundsbegäranden som ett verktyg gör. |
| Hostade open-weight-modeller | Tokens från din balans, med cachad input till 25% av inputpriset. | Verktygsanrop, prompt-caching för långa sessioner och exakta räkningar från /v1/messages/count_tokens. |
Kodningsverktyg styr modellen med en lång systemprompt. Systemprompten tillämpas av shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro och de hostade open-weight-modellerna, så välj en av dessa för ett kodningsverktyg.
Claude Code
Claude Code läser sin anslutning från miljövariabler. Ange dem i det skal som startar det, eller i env-blocket i ~/.claude/settings.json för att behålla dem i varje 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 {
"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"
}
} | Variabel | Beskrivning |
|---|---|
ANTHROPIC_BASE_URL | Dit Claude Code skickar sina begäranden. Använd adressen utan /v1. |
ANTHROPIC_AUTH_TOKEN | Din Shannon API-nyckel, skickad som Authorization: Bearer. ANTHROPIC_API_KEY fungerar också: den skickar nyckeln som x-api-key, och Claude Code ber en gång om godkännande. |
ANTHROPIC_MODEL | Sessionens modell. claude --model <id> och /model <id> anger samma sak. |
ANTHROPIC_DEFAULT_HAIKU_MODEL | Modellen för bakgrundsbegäranden som sessionstitlar, och för allt som ber om haiku. |
ANTHROPIC_DEFAULT_SONNET_MODEL | Modellen som används när en subagent eller ett kommando ber om sonnet. |
ANTHROPIC_DEFAULT_OPUS_MODEL | Modellen som används när en subagent eller ett kommando ber om opus. |
CLAUDE_CODE_MAX_CONTEXT_TOKENS | Det kontextfönster som Claude Code antar för modellen. Använd det context_window som GET /v1/models anger för det id du valt. |
- Ange alla tre variablerna
ANTHROPIC_DEFAULT_…_MODEL. Subagenter och vissa kommandon ber om en modell med dess inbyggda namn, och varje namn måste peka på ett Shannon-id. - Exemplet pekar bakgrundsbegäranden mot
shannon-1.6-lite, som räknas i tokens. Sessionstitlar och liknande begäranden använder då inga Coder-anrop. - Claude Code frågar
POST /v1/messages/count_tokensom kontextens storlek. Endpointen räknar för de hostade open-weight-modellerna. Med ett Shannon-id svarar den400; Claude Code behandlar tokenräkning som valfri och uppskattar storleken själv. Tokenräkning
För att kontrollera adressen, nyckeln och ett modell-id innan du startar verktyget, skicka en begäran för hand:
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 pratar med Responses API. Beskriv Shannon som modellleverantör i ~/.codex/config.toml, välj ett Shannon-modell-id där och lägg din API-nyckel i den miljövariabel som leverantören anger.
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 | Nyckel | Beskrivning |
|---|---|
model | Shannon-modellens id. codex --model <id> anger det för en körning. |
model_provider | Namnet på det leverantörsblock som ska användas, här shannon. |
base_url | API-adressen med /v1. |
env_key | Namnet på den miljövariabel som innehåller din Shannon API-nyckel. |
wire_api | responses: Codex pratar med POST /v1/responses. |
model_context_window | Modellens kontextfönster, så att Codex komprimerar en lång session i tid. Använd det context_window som GET /v1/models anger. |
/v1/responsessparar ingen konversation på servern: varje begäran bär konversationen iinput.previous_response_idaccepteras för kompatibilitet.- Funktionsverktyg (
type: "function") erbjuds modellen på/v1/responses. - På
/v1/responsesräknasshannon-coder-1i tokens från din balans, inte i Coder-anrop.
Samma kontroll för Responses-endpointen:
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."
}' Kodningsmodellen och hur den räknas
shannon-coder-1 är Shannon-modellen för kodningsagenter. GET /v1/models anger den med ett kontextfönster på 131,072 tokens, verktygsanrop, resonemang och textinput. Den räknas på ett av två sätt, beroende på vilken endpoint ett verktyg använder.
| Endpoint | En begäran kostar | Tas från |
|---|---|---|
/v1/messages | 1 anrop per begäran | Din plans kvot av Coder-anrop. Inga tokens tas från din balans. |
/v1/chat/completions | 1 anrop per begäran | Din plans kvot av Coder-anrop. Inga tokens tas från din balans. |
/v1/responses | Tokens, till $8.00 per 1M | Din balans, som vilken annan modell som helst. Anropskvoten används inte. |
Ett anrop är en begäran, oavsett storlek. Det räknas när begäran accepteras, innan modellen svarar. En agentsession skickar en begäran för varje steg den tar, så en lång uppgift förbrukar många anrop. Kvoten beror på din plan och börjar om var 4:e timme, kl. 00:00, 04:00, 08:00, 12:00, 16:00 och 20:00 UTC.
| Plan | Anrop per 4-timmarsfönster |
|---|---|
| Free | 3 |
| Plus | 20 |
| Standard | 40 |
| Pro | 60 |
Plansidan visar de aktuella talen. Planer
När ett fönsters anrop är förbrukade besvaras begäran med 429. På /v1/messages kommer samma fel i Anthropics form.
{
"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"
}
} Kontextöverskridande
När en konversation är större än modellens kontextfönster svarar /v1/chat/completions och /v1/messages med 400, typen invalid_request_error, koden context_length_exceeded och ett meddelande som börjar med prompt is too long. Kodningsverktyg läser det här felet för att komprimera sessionen och skicka begäran igen. Det skapas av shannon-coder-1, shannon-1.6-lite och 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
}
} Meddelandet är prompt is too long: <sent> tokens > <limit> maximum. När de två talen inte är kända är det prompt is too long. Please compact the conversation and try again.
På en ström är statusen redan 200, så felet kommer som en händelse och strömmen stängs sedan på normalt sätt:
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"} Vad en agentloop kan lita på
| Ämne | Beteende |
|---|---|
| Verktygsscheman | Verktygsdefinitioner tas som verktyget skickar dem. På shannon-coder-1 och shannon-1.6-* utelämnas JSON Schema-nyckelord som modellen inte använder, till exempel $schema, $ref, additionalProperties, default och title, från det modellen läser, och oneOf läses som anyOf. Ingen begäran avvisas på grund av dem. |
| Argument i verktygsanrop | I en ström kommer argumenten till ett verktygsanrop kompletta i ett enda delta: tool_calls[].function.arguments, input_json_delta.partial_json eller response.function_call_arguments.delta. |
| Slutet på en verktygsomgång | finish_reason: "tool_calls" på Chat Completions, stop_reason: "tool_use" på Messages. |
| Keep-alive | Medan modellen arbetar skickar /v1/messages event: ping och /v1/chat/completions en kommentarsrad : ping var 15:e sekund. |
| Att stoppa en begäran | Att stänga anslutningen stoppar strömmen. Själva omgången körs till slut och räknas. |
Felsökning
| Symptom | Orsak | Åtgärd |
|---|---|---|
400 med unknown model: claude-… eller unknown model: gpt-… | Verktyget skickade sitt eget standardmodellnamn. Endast publicerade Shannon-id:n betjänas, och inget annat namn mappas till ett. | Välj ett Shannon-id: ANTHROPIC_MODEL och de tre variablerna ANTHROPIC_DEFAULT_…_MODEL i Claude Code, model i Codex-konfigurationen. |
400 med unknown model: och inget namn, från Codex CLI | Begäran angav ingen modell. /v1/responses kräver en. | Ange model i ~/.codex/config.toml eller skicka --model. |
401 med Missing authentication eller Invalid API key | Nyckeln nådde inte API:et, eller så är den inte en aktuell nyckel. En Shannon-nyckel börjar med sk-. | Kontrollera att variabeln är satt i det skal som startar verktyget. Kopiera nyckeln igen från Nycklar och användning. |
404 på varje begäran | Bas-URL:en har en /v1 för mycket eller för lite för verktyget. | Claude Code: adressen utan /v1. Codex CLI: adressen med /v1. |
429 med Shannon Coder call quota reached | Coder-anropen för det aktuella 4-timmarsfönstret är förbrukade. | Vänta på nästa fönster, byt till en plan med fler anrop, eller välj en modell som räknas i tokens. |
429 med Quota exceeded | Din balans täcker inte begäran. | Fyll på kredit, eller vänta på din plans dagliga kvot kl. 00:00 UTC. |
400 med prompt is too long | Konversationen är större än modellens kontextfönster. | Komprimera sessionen (/compact i båda verktygen). Tala om för verktyget modellens kontextfönster så att det komprimerar tidigare. |
| Claude Code visar ungefärliga kontexttal | /v1/messages/count_tokens räknar för de hostade open-weight-modellerna. Med ett Shannon-id svarar den 400, och Claude Code uppskattar storleken själv. | Inget att åtgärda. Välj en hostad open-weight-modell om du vill ha exakta räkningar. |
| En inklistrad skärmbild beaktas inte | shannon-coder-1 tar textinput. | Välj en modell som tar bilder för den sessionen. |
Din nyckel och din balans finns på sidan Nycklar och användning. Nycklar och användning