CLI-Coding-Tools
NeuVerwenden Sie Shannon als Modell hinter Claude Code, Codex CLI und anderen Agent-CLIs.
Ein Coding-Tool braucht drei Einstellungen, um mit Shannon zu arbeiten: die Base-URL der API, Ihren API-Key und eine Shannon-Modell-ID. Diese Seite nennt die genauen Einstellungen für Claude Code und Codex CLI, erklärt, wie das Coding-Modell shannon-coder-1 gezählt wird, und listet die Fehler auf, auf die diese Tools stoßen.
Welchen Endpunkt jedes Tool verwendet
| Tool | Endpunkt | Zu setzende Base-URL | Hinweis |
|---|---|---|---|
| Claude Code | POST /v1/messagesPOST /v1/messages/count_tokens | https://api.shannon-ai.com | Das Tool hängt /v1/messages selbst an die Base-URL an. |
| Codex CLI | POST /v1/responses | https://api.shannon-ai.com/v1 | Das Tool hängt /responses an die Base-URL an. |
| Andere Agent-Tools, die das OpenAI-Chat-Format sprechen | POST /v1/chat/completions | https://api.shannon-ai.com/v1 | Setzen Sie die Base-URL, den Key und eine Shannon-Modell-ID in den eigenen Einstellungen des Tools. |
Alle drei Endpunkte nehmen denselben API-Key an, als Authorization: Bearer oder als x-api-key. Die Header anthropic-version, anthropic-beta und openai-beta, die diese Tools senden, werden akzeptiert.
Ein Shannon-Modell auswählen
Jede Anfrage muss eine Modell-ID nennen, die Shannon veröffentlicht. Ein Coding-Tool sendet den Namen seines eigenen Standardmodells, wenn Sie nichts anderes festlegen, und ein Name, den Shannon nicht veröffentlicht, wird mit 400 und der Nachricht unknown model: <name> beantwortet. Kein anderer Name wird auf ein Shannon-Modell abgebildet, setzen Sie das Modell daher im Tool, bevor Sie die erste Anfrage senden.
GET /v1/models listet jede ID mit ihrem Kontextfenster auf. Es braucht keinen Key. Modelle & Preise
| Modell | Gezählt als | Was es bringt |
|---|---|---|
shannon-coder-1 | Ein Aufruf pro Anfrage bei /v1/messages und /v1/chat/completions. Tokens bei /v1/responses. | Das Coding-Modell. Text-Input, Tool-Aufrufe, Kontextfenster von 131,072 Tokens. |
shannon-1.6-liteshannon-1.6-pro | Tokens von Ihrem Guthaben. | Allgemeine Modelle mit Tool-Aufrufen. shannon-1.6-lite eignet sich für die kurzen Hintergrundanfragen, die ein Tool stellt. |
| Gehostete Open-Weight-Modelle | Tokens von Ihrem Guthaben, wobei Cached Input mit 25% des Input-Preises berechnet wird. | Tool-Aufrufe, Prompt-Caching für lange Sitzungen und exakte Zählungen über /v1/messages/count_tokens. |
Coding-Tools steuern das Modell mit einem langen System-Prompt. Der System-Prompt wird von shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro und den gehosteten Open-Weight-Modellen angewendet, wählen Sie daher für ein Coding-Tool eines davon.
Claude Code
Claude Code liest seine Verbindung aus Umgebungsvariablen. Setzen Sie sie in der Shell, die es startet, oder im Block env von ~/.claude/settings.json, um sie für jede Sitzung zu behalten.
# 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"
}
} | Variable | Beschreibung |
|---|---|
ANTHROPIC_BASE_URL | Wohin Claude Code seine Anfragen sendet. Verwenden Sie die Adresse ohne /v1. |
ANTHROPIC_AUTH_TOKEN | Ihr Shannon-API-Key, gesendet als Authorization: Bearer. ANTHROPIC_API_KEY funktioniert ebenfalls: Es sendet den Key als x-api-key, und Claude Code bittet einmal um Bestätigung. |
ANTHROPIC_MODEL | Das Modell der Sitzung. claude --model <id> und /model <id> setzen dasselbe. |
ANTHROPIC_DEFAULT_HAIKU_MODEL | Das Modell für Hintergrundanfragen wie Sitzungstitel und für alles, was haiku anfordert. |
ANTHROPIC_DEFAULT_SONNET_MODEL | Das Modell, das verwendet wird, wenn ein Subagent oder ein Befehl sonnet anfordert. |
ANTHROPIC_DEFAULT_OPUS_MODEL | Das Modell, das verwendet wird, wenn ein Subagent oder ein Befehl opus anfordert. |
CLAUDE_CODE_MAX_CONTEXT_TOKENS | Das Kontextfenster, das Claude Code für das Modell annimmt. Verwenden Sie das context_window, das GET /v1/models für die gewählte ID meldet. |
- Setzen Sie alle drei Variablen
ANTHROPIC_DEFAULT_…_MODEL. Subagenten und einige Befehle fordern ein Modell unter seinem eingebauten Namen an, und jeder Name muss auf eine Shannon-ID aufgelöst werden. - Das Beispiel richtet Hintergrundanfragen auf
shannon-1.6-lite, das in Tokens gezählt wird. Sitzungstitel und ähnliche Anfragen verbrauchen dann keine Coder-Aufrufe. - Claude Code fragt bei
POST /v1/messages/count_tokensnach der Größe des Kontexts. Der Endpunkt zählt für die gehosteten Open-Weight-Modelle. Bei einer Shannon-ID antwortet er mit400; Claude Code behandelt das Token-Zählen als optional und schätzt die Größe selbst. Token zählen
Um Adresse, Key und Modell-ID zu prüfen, bevor Sie das Tool starten, senden Sie eine Anfrage von 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 spricht mit der Responses API. Beschreiben Sie Shannon als Modell-Provider in ~/.codex/config.toml, wählen Sie dort eine Shannon-Modell-ID und tragen Sie Ihren API-Key in die Umgebungsvariable ein, die der 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 | Key | Beschreibung |
|---|---|
model | Die Shannon-Modell-ID. codex --model <id> setzt sie für einen Lauf. |
model_provider | Der Name des zu verwendenden Provider-Blocks, hier shannon. |
base_url | Die API-Adresse mit /v1. |
env_key | Der Name der Umgebungsvariable, die Ihren Shannon-API-Key enthält. |
wire_api | responses: Codex spricht mit POST /v1/responses. |
model_context_window | Das Kontextfenster des Modells, damit Codex eine lange Sitzung rechtzeitig kompaktiert. Verwenden Sie das context_window, das GET /v1/models meldet. |
/v1/responsesspeichert keine Konversation auf dem Server: Jede Anfrage trägt die Konversation ininput.previous_response_idwird aus Kompatibilitätsgründen akzeptiert.- Funktions-Tools (
type: "function") werden dem Modell bei/v1/responsesangeboten. - Bei
/v1/responseswirdshannon-coder-1in Tokens von Ihrem Guthaben gezählt, nicht in Coder-Aufrufen.
Dieselbe Prüfung für den Responses-Endpunkt:
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."
}' Das Coding-Modell und wie es gezählt wird
shannon-coder-1 ist das Shannon-Modell für Coding-Agenten. GET /v1/models meldet es mit einem Kontextfenster von 131,072 Tokens, Tool-Aufrufen, Reasoning und Text-Input. Es wird auf eine von zwei Arten gezählt, je nach Endpunkt, den ein Tool verwendet.
| Endpunkt | Eine Anfrage kostet | Abgezogen von |
|---|---|---|
/v1/messages | 1 Aufruf pro Anfrage | Das Coder-Aufruf-Kontingent Ihres Plans. Von Ihrem Guthaben werden keine Tokens abgezogen. |
/v1/chat/completions | 1 Aufruf pro Anfrage | Das Coder-Aufruf-Kontingent Ihres Plans. Von Ihrem Guthaben werden keine Tokens abgezogen. |
/v1/responses | Tokens, zu $8.00 pro 1M | Ihr Guthaben, wie bei jedem anderen Modell. Das Aufruf-Kontingent wird nicht verwendet. |
Ein Aufruf ist eine Anfrage, unabhängig von ihrer Größe. Er wird gezählt, wenn die Anfrage angenommen wird, bevor das Modell antwortet. Eine Agent-Sitzung sendet für jeden Schritt eine Anfrage, daher verbraucht eine lange Aufgabe viele Aufrufe. Das Kontingent hängt von Ihrem Plan ab und beginnt alle 4 Stunden neu, um 00:00, 04:00, 08:00, 12:00, 16:00 und 20:00 UTC.
| Plan | Aufrufe pro 4-Stunden-Fenster |
|---|---|
| Free | 3 |
| Plus | 20 |
| Standard | 40 |
| Pro | 60 |
Die Plan-Seite zeigt die aktuellen Zahlen. Pläne
Sind die Aufrufe eines Fensters aufgebraucht, wird die Anfrage mit 429 beantwortet. Bei /v1/messages kommt derselbe Fehler in 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überlauf
Ist eine Konversation größer als das Kontextfenster des Modells, antworten /v1/chat/completions und /v1/messages mit 400, dem Typ invalid_request_error, dem Code context_length_exceeded und einer Nachricht, die mit prompt is too long beginnt. Coding-Tools lesen diesen Fehler, um die Sitzung zu kompaktieren und die Anfrage erneut zu senden. Er wird von shannon-coder-1, shannon-1.6-lite und shannon-1.6-pro erzeugt.
{
"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
}
} Die Nachricht lautet prompt is too long: <sent> tokens > <limit> maximum. Sind die beiden Zahlen nicht bekannt, lautet sie prompt is too long. Please compact the conversation and try again.
Bei einem Stream ist der Status bereits 200, daher trifft der Fehler als Event ein, und der Stream wird danach normal geschlossen:
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"} Worauf sich eine Agent-Schleife verlassen kann
| Thema | Verhalten |
|---|---|
| Tool-Schemas | Tool-Definitionen werden so übernommen, wie das Tool sie sendet. Bei shannon-coder-1 und shannon-1.6-* werden JSON-Schema-Schlüsselwörter, die das Modell nicht verwendet, wie $schema, $ref, additionalProperties, default und title, aus dem weggelassen, was das Modell liest, und oneOf wird als anyOf gelesen. Deswegen wird keine Anfrage abgelehnt. |
| Argumente von Tool-Aufrufen | In einem Stream treffen die Argumente eines Tool-Aufrufs vollständig in einem Delta ein: tool_calls[].function.arguments, input_json_delta.partial_json oder response.function_call_arguments.delta. |
| Ende eines Tool-Turns | finish_reason: "tool_calls" bei Chat Completions, stop_reason: "tool_use" bei Messages. |
| Keep-alive | Solange das Modell arbeitet, sendet /v1/messages alle 15 Sekunden event: ping und /v1/chat/completions eine Kommentarzeile : ping. |
| Eine Anfrage stoppen | Das Schließen der Verbindung stoppt den Stream. Der Turn selbst läuft bis zum Ende und wird gezählt. |
Fehlerbehebung
| Symptom | Ursache | Lösung |
|---|---|---|
400 mit unknown model: claude-… oder unknown model: gpt-… | Das Tool hat den Namen seines eigenen Standardmodells gesendet. Es werden nur veröffentlichte Shannon-IDs bedient, und kein anderer Name wird auf eine abgebildet. | Wählen Sie eine Shannon-ID: ANTHROPIC_MODEL und die drei Variablen ANTHROPIC_DEFAULT_…_MODEL in Claude Code, model in der Codex-Konfiguration. |
400 mit unknown model: und ohne Namen, von Codex CLI | Die Anfrage nannte kein Modell. /v1/responses braucht eines. | Setzen Sie model in ~/.codex/config.toml oder übergeben Sie --model. |
401 mit Missing authentication oder Invalid API key | Der Key hat die API nicht erreicht, oder er ist kein aktueller Key. Ein Shannon-Key beginnt mit sk-. | Prüfen Sie, ob die Variable in der Shell gesetzt ist, die das Tool startet. Kopieren Sie den Key erneut aus Keys & Nutzung. |
404 bei jeder Anfrage | Die Base-URL hat für das Tool ein /v1 zu viel oder zu wenig. | Claude Code: die Adresse ohne /v1. Codex CLI: die Adresse mit /v1. |
429 mit Shannon Coder call quota reached | Die Coder-Aufrufe des aktuellen 4-Stunden-Fensters sind aufgebraucht. | Warten Sie auf das nächste Fenster, wechseln Sie zu einem Plan mit mehr Aufrufen oder wählen Sie ein Modell, das in Tokens gezählt wird. |
429 mit Quota exceeded | Ihr Guthaben deckt die Anfrage nicht. | Laden Sie Guthaben auf oder warten Sie um 00:00 UTC auf das Tageskontingent Ihres Plans. |
400 mit prompt is too long | Die Konversation ist größer als das Kontextfenster des Modells. | Kompaktieren Sie die Sitzung (/compact in beiden Tools). Teilen Sie dem Tool das Kontextfenster des Modells mit, damit es früher kompaktiert. |
| Claude Code zeigt ungefähre Kontextwerte an | /v1/messages/count_tokens zählt für die gehosteten Open-Weight-Modelle. Bei einer Shannon-ID antwortet es mit 400, und Claude Code schätzt die Größe selbst. | Nichts zu beheben. Wählen Sie ein gehostetes Open-Weight-Modell, wenn Sie exakte Zählungen wollen. |
| Ein eingefügter Screenshot wird nicht berücksichtigt | shannon-coder-1 nimmt Text-Input an. | Wählen Sie für diese Sitzung ein Modell, das Bilder annimmt. |
Ihren Key und Ihr Guthaben finden Sie auf der Seite Keys & Nutzung. Keys & Nutzung