CLI-Coding-Tools
NeiBenotzt Shannon als Modell hannert Claude Code, Codex CLI an aneren Agent-CLIs.
En Coding-Tool brauch dräi Astellungen, fir mat Shannon ze schaffen: d'Basis-URL vun der API, Ären API-Schlëssel an eng Shannon-Modell-ID. Dës Säit weist déi exakt Astellunge fir Claude Code a Codex CLI, erkläert, wéi de Coding-Modell shannon-coder-1 gezielt gëtt, a lëscht d'Feeler op, déi dës Tools begéinen.
Wéi en Endpoint jiddereng Tool benotzt
| Tool | Endpoint | Basis-URL fir anzestellen | Notiz |
|---|---|---|---|
| Claude Code | POST /v1/messagesPOST /v1/messages/count_tokens | https://api.shannon-ai.com | D'Tool hänkt /v1/messages selwer un d'Basis-URL un. |
| Codex CLI | POST /v1/responses | https://api.shannon-ai.com/v1 | D'Tool hänkt /responses un d'Basis-URL un. |
| Aner Agent-Tools, déi dat OpenAI-Chat-Format schwätzen | POST /v1/chat/completions | https://api.shannon-ai.com/v1 | Stellt d'Basis-URL, de Schlëssel an eng Shannon-Modell-ID an de Astellunge vun der Tool selwer an. |
All dräi Endpoints huelen deeselwechte API-Schlëssel un, als Authorization: Bearer oder als x-api-key. D'Headers anthropic-version, anthropic-beta an openai-beta, déi dës Tools schécken, ginn akzeptéiert.
Ee Shannon-Modell auswielen
All Ufro muss eng Modell-ID nennen, déi Shannon publizéiert. E Coding-Tool schéckt den Numm vu sengem eegene Standardmodell, wann Dir him näischt anescht soot, an e Numm, deen Shannon net publizéiert, gëtt mat 400 a mat der Message unknown model: <name> beäntwert. Kee ale Numm gëtt op e Shannon-Modell ofgebilt, setzt de Modell dofir am Tool, ier déi éischt Ufro geschéckt gëtt.
GET /v1/models lëscht all ID mat hirem Kontextfënster op. Et brauch kee Schlëssel. Modeller a Präisser
| Modell | Gezielt als | Wat et bréngt |
|---|---|---|
shannon-coder-1 | Ee Ruff pro Ufro op /v1/messages an /v1/chat/completions. Tokens op /v1/responses. | De Coding-Modell. Text-Input, Tool-Ruffer, Kontextfënster vun 131,072 Tokens. |
shannon-1.6-liteshannon-1.6-pro | Tokens aus Ärem Solde. | Allgemeng Modeller mat Tool-Ruffer. shannon-1.6-lite passt fir déi kuerz Hannergrondufroen, déi e Tool mécht. |
| Hosted Open-Weight-Modeller | Tokens aus Ärem Solde, mat gecachtem Input zu 25% vum Input-Präis. | Tool-Ruffer, Prompt Caching fir laang Sessiounen an exakt Zuelen aus /v1/messages/count_tokens. |
Coding-Tools steieren de Modell mat engem laange System-Prompt. De System-Prompt gëtt vu shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro an de Hosted Open-Weight-Modeller ugewannt, wielt dofir eng vun dësen aus fir e Coding-Tool.
Claude Code
Claude Code liest seng Verbindung aus Ëmgebungsvariabelen. Setzt se an der Shell, déi et start, oder am env-Block vun ~/.claude/settings.json, fir se fir all Sessioun ze behalen.
# 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 | Beschreiwung |
|---|---|
ANTHROPIC_BASE_URL | Wouhin Claude Code seng Ufroen schéckt. Benotzt d'Adress ouni /v1. |
ANTHROPIC_AUTH_TOKEN | Äre Shannon-API-Schlëssel, geschéckt als Authorization: Bearer. ANTHROPIC_API_KEY funktionéiert och: et schéckt de Schlëssel als x-api-key, a Claude Code freet eemol no Är Zoustëmmung. |
ANTHROPIC_MODEL | De Modell vun der Sessioun. claude --model <id> an /model <id> stellen dat selwecht an. |
ANTHROPIC_DEFAULT_HAIKU_MODEL | De Modell fir Hannergrondufroen wéi Sessiounstitelen, a fir alles, wat no haiku freet. |
ANTHROPIC_DEFAULT_SONNET_MODEL | De Modell, deen benotzt gëtt, wann e Subagent oder e Kommando no sonnet freet. |
ANTHROPIC_DEFAULT_OPUS_MODEL | De Modell, deen benotzt gëtt, wann e Subagent oder e Kommando no opus freet. |
CLAUDE_CODE_MAX_CONTEXT_TOKENS | D'Kontextfënster, vun där Claude Code fir de Modell ausgeet. Benotzt de context_window, deen GET /v1/models fir déi gewielt ID mellt. |
- Setzt all dräi
ANTHROPIC_DEFAULT_…_MODEL-Variabelen. Subagenten an e puer Kommandoen froen no engem Modell mat sengem agebaute Numm, an all Numm muss op eng Shannon-ID opgeléist ginn. - Am Beispill ginn Hannergrondufroen op
shannon-1.6-litegeriicht, dat a Tokens gezielt gëtt. Sessiounstitelen an ähnlech Ufroen benotzen dann keng Coder-Ufruffer. - Claude Code freet
POST /v1/messages/count_tokensno der Gréisst vum Kontext. Den Endpoint zielt fir d'Hosted Open-Weight-Modeller. Bei enger Shannon-ID äntwert hien mat400; Claude Code behandelt d'Token-Zielung als optional a schätzt d'Gréisst selwer. Tokenzielung
Fir d'Adress, de Schlëssel an eng Modell-ID ze préifen, éier Dir d'Tool start, schéckt eng Ufro vun 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 schwätzt mat der Responses-API. Beschreift Shannon als Modell-Provider an ~/.codex/config.toml, wielt do eng Shannon-Modell-ID aus, a setzt Ären API-Schlëssel an déi Ëmgebungsvariabel, déi de Provider nennt.
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 | Schlëssel | Beschreiwung |
|---|---|
model | D'Shannon-Modell-ID. codex --model <id> setzt se fir een Duerchlaf. |
model_provider | Den Numm vum Provider-Block, deen benotzt gëtt, hei shannon. |
base_url | D'API-Adress mat /v1. |
env_key | Den Numm vun der Ëmgebungsvariabel, déi Äre Shannon-API-Schlëssel enthält. |
wire_api | responses: Codex schwätzt mat POST /v1/responses. |
model_context_window | D'Kontextfënster vum Modell, sou datt Codex eng laang Sessioun an der Zäit kompaktéiert. Benotzt de context_window, deen GET /v1/models mellt. |
/v1/responsesbehält kee Gespréich um Server: all Ufro dréit d'Gespréich aninput.previous_response_idgëtt fir Kompatibilitéit akzeptéiert.- Funktiouns-Tools (
type: "function") ginn dem Modell op/v1/responsesugebueden. - Op
/v1/responsesgëttshannon-coder-1a Tokens vun Ärem Solde gezielt, net a Coder-Ufruffer.
Déiselwecht Kontroll fir den 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."
}' Dat Coding-Modell a wéi et gezielt gëtt
shannon-coder-1 ass dat Shannon-Modell fir Coding-Agenten. GET /v1/models mellt et mat enger Kontextfënster vun 131,072 Tokens, Tool-Ufruffer, Reasoning an Text-Input. Et gëtt op eng vun zwou Manéieren gezielt, jee no Endpoint, deen eng Tool benotzt.
| Endpoint | Eng Ufro kascht | Geholl aus |
|---|---|---|
/v1/messages | 1 Opruff pro Ufro | D'Coder-Ufruff-Zuelung vun Ärem Plan. Et ginn keng Tokens vun Ärem Solde ofgezunn. |
/v1/chat/completions | 1 Opruff pro Ufro | D'Coder-Ufruff-Zuelung vun Ärem Plan. Et ginn keng Tokens vun Ärem Solde ofgezunn. |
/v1/responses | Tokens, zu $8.00 pro 1M | Ären Solde, wéi bei all anere Modell. D'Ufruff-Zuelung gëtt net benotzt. |
Ee Opruff ass eng Ufro, egal wéi grouss. Hie gëtt gezielt, wann d'Ufro ugeholl gëtt, éier de Modell äntwert. Eng Agent-Sessioun schéckt eng Ufro fir all Schrëtt, deen si mécht, dofir verbraucht eng laang Aufgab vill Ufruffer. D'Zuelung hänkt vun Ärem Plan of a fänkt all 4 Stonnen nei un, um 00:00, 04:00, 08:00, 12:00, 16:00 an 20:00 UTC.
| Plan | Ufruffer pro 4-Stonne-Fënster |
|---|---|
| Free | 3 |
| Plus | 20 |
| Standard | 40 |
| Pro | 60 |
D'Plan-Säit weist déi aktuell Zuelen. Pläng
Wann d'Ufruffer vun engem Fënster opgebraucht sinn, gëtt d'Ufro mat 429 beäntwert. Op /v1/messages kënnt dee selwechte Feeler an der Anthropic-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-Iwwerlaf
Wann eng Konversatioun méi grouss ass wéi d'Kontextfënster vum Modell, äntwerte /v1/chat/completions an /v1/messages mat 400, dem Typ invalid_request_error, dem Code context_length_exceeded an enger Message, déi mat prompt is too long ufänkt. Coding-Tools liesen dëse Feeler, fir d'Sessioun ze kompaktéieren an d'Ufro nach eng Kéier ze schécken. Hie gëtt vu shannon-coder-1, shannon-1.6-lite a shannon-1.6-pro produzéiert.
{
"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
}
} D'Message ass prompt is too long: <sent> tokens > <limit> maximum. Wann déi zwou Zuelen net bekannt sinn, ass et prompt is too long. Please compact the conversation and try again.
Bei engem Stream ass de Status schonn 200, dofir kënnt de Feeler als Event an de Stream gëtt dono normal zougemaach:
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"} Wuerop sech eng Agent-Loop kann verloossen
| Thema | Verhalen |
|---|---|
| Tool-Schemaen | Tool-Definitioune ginn esou iwwerholl, wéi d'Tool se schéckt. Bei shannon-coder-1 an shannon-1.6-* ginn JSON-Schema-Schlësselwierder, déi de Modell net benotzt, wéi $schema, $ref, additionalProperties, default an title, aus deem erausgelooss, wat de Modell liest, an oneOf gëtt als anyOf gelies. Doduerch gëtt keng Ufro refuséiert. |
| Argumenter vun Tool-Ufruffer | An engem Stream kommen d'Argumenter vun engem Tool-Opruff komplett an engem Delta un: tool_calls[].function.arguments, input_json_delta.partial_json oder response.function_call_arguments.delta. |
| Enn vun enger Tool-Tour | finish_reason: "tool_calls" bei Chat Completions, stop_reason: "tool_use" bei Messages. |
| Keep-alive | Während de Modell schafft, schéckt /v1/messages all 15 Sekonnen event: ping an /v1/chat/completions eng : ping-Kommentarzeil. |
| Eng Ufro ofbriechen | D'Verbindung zouzemaachen hält de Stream un. D'Tour selwer leeft bis zum Enn a gëtt gezielt. |
Problemléisung
| Symptom | Ursaach | Léisung |
|---|---|---|
400 mat unknown model: claude-… oder unknown model: gpt-… | D'Tool huet säin eegene Standardmodell-Numm geschéckt. Nëmme publizéiert Shannon-IDen ginn bedéngt, a kee anere Numm gëtt op eng ofgebilt. | Wielt eng Shannon-ID: ANTHROPIC_MODEL an déi dräi ANTHROPIC_DEFAULT_…_MODEL-Variabelen a Claude Code, model an der Codex-Konfiguratioun. |
400 mat unknown model: an ouni Numm, vu Codex CLI | D'Ufro huet kee Modell genannt. /v1/responses brauch een. | Setzt model an ~/.codex/config.toml oder gitt --model mat. |
401 mat Missing authentication oder Invalid API key | De Schlëssel ass net bei der API ukomm, oder et ass kee aktuelle Schlëssel. E Shannon-Schlëssel fänkt mat sk- un. | Kontrolléiert, ob d'Variabel an der Shell gesat ass, déi d'Tool start. Kopéiert de Schlëssel nach eng Kéier aus Schlësselen & Notzung. |
404 bei all Ufro | D'Basis-URL huet een /v1 ze vill oder ze wéineg fir d'Tool. | Claude Code: d'Adress ouni /v1. Codex CLI: d'Adress mat /v1. |
429 mat Shannon Coder call quota reached | D'Coder-Ruffer vum aktuelle 4-Stonne-Fënster sinn opgebraucht. | Waart op dat nächst Fënster, wiesselt op e Plan mat méi Ruffer, oder wielt e Modell, dee mat Tokens gezielt gëtt. |
429 mat Quota exceeded | Äre Solde deckt d'Ufro net of. | Fügt Crédit derbäi, oder waart op d'deeglech Plan-Zuelung vun Ärem Plan um 00:00 UTC. |
400 mat prompt is too long | D'Konversatioun ass méi grouss wéi d'Kontextfënster vum Modell. | Kompaktéiert d'Sessioun (/compact an deenen zwee Tools). Sot dem Tool d'Kontextfënster vum Modell, fir datt et méi fréi kompaktéiert. |
| Claude Code weist ongeféier Kontext-Zuelen | /v1/messages/count_tokens zielt fir d'Hosted Open-Weight-Modeller. Mat enger Shannon-ID äntwert et mat 400, an Claude Code schätzt d'Gréisst selwer. | Näischt ze fixéieren. Wielt en Hosted Open-Weight-Modell, wann Dir exakt Zuelen wëllt. |
| En agefügte Screenshot gëtt net berécksiichtegt | shannon-coder-1 hëlt Text-Input. | Wielt fir dës Sessioun e Modell, deen Biller hëlt. |
Äre Schlëssel an Äre Solde stinn op der Säit Schlësselen & Notzung. Schlësselen & Notzung