Vai al contenuto
Strumenti CLI per la programmazione

Strumenti CLI per la programmazione

Nuovo

Usa Shannon come modello dietro Claude Code, Codex CLI e altre CLI per agenti.

Uno strumento di programmazione ha bisogno di tre impostazioni per funzionare con Shannon: l'URL di base dell'API, la tua chiave API e un id di modello Shannon. Questa pagina fornisce le impostazioni esatte per Claude Code e Codex CLI, spiega come viene conteggiato il modello per la programmazione shannon-coder-1 ed elenca gli errori in cui incorrono questi strumenti.

Quale endpoint usa ogni strumento

Strumento Endpoint URL di base da impostare Nota
Claude Code POST /v1/messages
POST /v1/messages/count_tokens
https://api.shannon-ai.com Lo strumento aggiunge da solo /v1/messages all'URL di base.
Codex CLI POST /v1/responses https://api.shannon-ai.com/v1 Lo strumento aggiunge /responses all'URL di base.
Altri strumenti per agenti che parlano il formato chat di OpenAI POST /v1/chat/completions https://api.shannon-ai.com/v1 Imposta l'URL di base, la chiave e un id di modello Shannon nelle impostazioni dello strumento.

Tutti e tre gli endpoint accettano la stessa chiave API, come Authorization: Bearer o come x-api-key. Gli header anthropic-version, anthropic-beta e openai-beta che questi strumenti inviano sono accettati.

Seleziona un modello Shannon

Ogni richiesta deve indicare un id di modello pubblicato da Shannon. Uno strumento di programmazione invia il nome del proprio modello predefinito a meno che tu non gli dica altrimenti, e un nome che Shannon non pubblica riceve come risposta 400 e il messaggio unknown model: <name>. Nessun altro nome viene associato a un modello Shannon, quindi imposta il modello nello strumento prima della prima richiesta.

GET /v1/models elenca ogni id con la sua finestra di contesto. Non richiede una chiave. Modelli e prezzi

Modello Conteggiato come Cosa offre
shannon-coder-1 Una chiamata per richiesta su /v1/messages e /v1/chat/completions. Token su /v1/responses. Il modello per la programmazione. Input di testo, chiamate a tool, finestra di contesto di 131,072 token.
shannon-1.6-lite
shannon-1.6-pro
Token dal tuo saldo. Modelli generali con chiamate a tool. shannon-1.6-lite è adatto alle brevi richieste in background che uno strumento effettua.
Modelli open-weight ospitati Token dal tuo saldo, con l'input cached al 25% del prezzo dell'input. Chiamate a tool, prompt caching per le sessioni lunghe e conteggi esatti da /v1/messages/count_tokens.

Gli strumenti di programmazione guidano il modello con un system prompt lungo. Il system prompt è applicato da shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro e dai modelli open-weight ospitati, quindi scegline uno per uno strumento di programmazione.

Claude Code

Claude Code legge la sua connessione dalle variabili d'ambiente. Impostale nella shell che lo avvia, oppure nel blocco env di ~/.claude/settings.json per mantenerle in ogni sessione.

# 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
Variabile Descrizione
ANTHROPIC_BASE_URL Dove Claude Code invia le sue richieste. Usa l'indirizzo senza /v1.
ANTHROPIC_AUTH_TOKEN La tua chiave API di Shannon, inviata come Authorization: Bearer. Funziona anche ANTHROPIC_API_KEY: invia la chiave come x-api-key, e Claude Code chiede una volta di approvarla.
ANTHROPIC_MODEL Il modello della sessione. claude --model <id> e /model <id> impostano la stessa cosa.
ANTHROPIC_DEFAULT_HAIKU_MODEL Il modello per le richieste in background, come i titoli delle sessioni, e per tutto ciò che chiede haiku.
ANTHROPIC_DEFAULT_SONNET_MODEL Il modello usato quando un subagent o un comando chiede sonnet.
ANTHROPIC_DEFAULT_OPUS_MODEL Il modello usato quando un subagent o un comando chiede opus.
CLAUDE_CODE_MAX_CONTEXT_TOKENS La finestra di contesto che Claude Code presume per il modello. Usa il context_window che GET /v1/models riporta per l'id selezionato.
  • Imposta tutte e tre le variabili ANTHROPIC_DEFAULT_…_MODEL. I subagent e alcuni comandi chiedono un modello con il suo nome integrato, e ogni nome deve risolversi in un id Shannon.
  • L'esempio indirizza le richieste in background a shannon-1.6-lite, che è conteggiato in token. I titoli delle sessioni e richieste simili non usano allora le chiamate Coder.
  • Claude Code chiede a POST /v1/messages/count_tokens la dimensione del contesto. L'endpoint conta per i modelli open-weight ospitati. Con un id Shannon risponde 400; Claude Code considera facoltativo il conteggio dei token e stima da sé la dimensione. Conteggio dei token

Per verificare l'indirizzo, la chiave e un id di modello prima di avviare lo strumento, invia una richiesta a mano:

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 parla con la Responses API. Descrivi Shannon come model provider in ~/.codex/config.toml, seleziona lì un id di modello Shannon e inserisci la tua chiave API nella variabile d'ambiente indicata dal provider.

~/.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
Chiave Descrizione
model L'id del modello Shannon. codex --model <id> lo imposta per una sola esecuzione.
model_provider Il nome del blocco provider da usare, qui shannon.
base_url L'indirizzo dell'API con /v1.
env_key Il nome della variabile d'ambiente che contiene la tua chiave API di Shannon.
wire_api responses: Codex parla con POST /v1/responses.
model_context_window La finestra di contesto del modello, così Codex compatta in tempo una sessione lunga. Usa il context_window che GET /v1/models riporta.
  • /v1/responses non conserva alcuna conversazione sul server: ogni richiesta porta la conversazione in input. previous_response_id è accettato per compatibilità.
  • I function tool (type: "function") vengono offerti al modello su /v1/responses.
  • Su /v1/responses, shannon-coder-1 è conteggiato in token dal tuo saldo, non in chiamate Coder.

La stessa verifica per l'endpoint 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."
  }'

Il modello per la programmazione e come viene conteggiato

shannon-coder-1 è il modello Shannon per gli agenti di programmazione. GET /v1/models lo riporta con una finestra di contesto di 131,072 token, chiamate a tool, ragionamento e input di testo. Viene conteggiato in uno di due modi, a seconda dell'endpoint che usa uno strumento.

Endpoint Una richiesta costa Prelevato da
/v1/messages 1 chiamata per richiesta La quota di chiamate Coder del tuo piano. Dal tuo saldo non viene prelevato alcun token.
/v1/chat/completions 1 chiamata per richiesta La quota di chiamate Coder del tuo piano. Dal tuo saldo non viene prelevato alcun token.
/v1/responses Token, a $8.00 per 1M Il tuo saldo, come per qualsiasi altro modello. La quota di chiamate non viene usata.

Una chiamata è una richiesta, qualunque sia la sua dimensione. Viene conteggiata quando la richiesta è accettata, prima che il modello risponda. Una sessione di agente invia una richiesta per ogni passo che compie, quindi un compito lungo usa molte chiamate. La quota dipende dal tuo piano e ricomincia ogni 4 ore, alle 00:00, 04:00, 08:00, 12:00, 16:00 e 20:00 UTC.

Piano Chiamate per finestra di 4 ore
Free 3
Plus 20
Standard 40
Pro 60

La pagina dei piani mostra i numeri attuali. Piani

Quando le chiamate di una finestra sono esaurite, la richiesta riceve come risposta 429. Su /v1/messages lo stesso errore arriva nella forma 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"
  }
}

Superamento del contesto

Quando una conversazione è più grande della finestra di contesto del modello, /v1/chat/completions e /v1/messages rispondono con 400, il tipo invalid_request_error, il codice context_length_exceeded e un messaggio che inizia con prompt is too long. Gli strumenti di programmazione leggono questo errore per compattare la sessione e inviare di nuovo la richiesta. È prodotto da shannon-coder-1, shannon-1.6-lite e 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
  }
}

Il messaggio è prompt is too long: <sent> tokens > <limit> maximum. Quando i due numeri non sono noti è prompt is too long. Please compact the conversation and try again.

Su uno stream lo stato è già 200, quindi l'errore arriva come evento e lo stream si chiude poi normalmente:

/v1/chat/completions, stream
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, stream
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"}

Su cosa può contare un ciclo di agente

Argomento Comportamento
Schemi dei tool Le definizioni dei tool vengono prese come le invia lo strumento. Su shannon-coder-1 e shannon-1.6-*, le parole chiave di JSON Schema che il modello non usa, come $schema, $ref, additionalProperties, default e title, vengono escluse da ciò che il modello legge, e oneOf viene letto come anyOf. Nessuna richiesta viene rifiutata per questo.
Argomenti delle chiamate a tool In uno stream, gli argomenti di una chiamata a un tool arrivano completi in un solo delta: tool_calls[].function.arguments, input_json_delta.partial_json o response.function_call_arguments.delta.
Fine di un turno di tool finish_reason: "tool_calls" su Chat Completions, stop_reason: "tool_use" su Messages.
Keep-alive Mentre il modello lavora, /v1/messages invia event: ping e /v1/chat/completions invia una riga di commento : ping ogni 15 secondi.
Interrompere una richiesta Chiudere la connessione ferma lo stream. Il turno stesso prosegue fino alla fine e viene conteggiato.

Risoluzione dei problemi

Sintomo Causa Soluzione
400 con unknown model: claude-… o unknown model: gpt-… Lo strumento ha inviato il nome del proprio modello predefinito. Vengono serviti solo gli id Shannon pubblicati, e nessun altro nome viene associato a uno di essi. Scegli un id Shannon: ANTHROPIC_MODEL e le tre variabili ANTHROPIC_DEFAULT_…_MODEL in Claude Code, model nella configurazione di Codex.
400 con unknown model: e nessun nome, da Codex CLI La richiesta non indicava alcun modello. /v1/responses ne richiede uno. Imposta model in ~/.codex/config.toml oppure passa --model.
401 con Missing authentication o Invalid API key La chiave non è arrivata all'API, oppure non è una chiave attuale. Una chiave Shannon inizia con sk-. Verifica che la variabile sia impostata nella shell che avvia lo strumento. Copia di nuovo la chiave da Chiavi e utilizzo.
404 a ogni richiesta L'URL di base ha un /v1 di troppo o di meno per lo strumento. Claude Code: l'indirizzo senza /v1. Codex CLI: l'indirizzo con /v1.
429 con Shannon Coder call quota reached Le chiamate Coder della finestra di 4 ore in corso sono esaurite. Attendi la finestra successiva, passa a un piano con più chiamate, oppure scegli un modello conteggiato in token.
429 con Quota exceeded Il tuo saldo non copre la richiesta. Aggiungi credito, oppure attendi la quota giornaliera del tuo piano alle 00:00 UTC.
400 con prompt is too long La conversazione è più grande della finestra di contesto del modello. Compatta la sessione (/compact in entrambi gli strumenti). Indica allo strumento la finestra di contesto del modello, così compatta prima.
Claude Code mostra numeri di contesto approssimativi /v1/messages/count_tokens conta per i modelli open-weight ospitati. Con un id Shannon risponde 400, e Claude Code stima da sé la dimensione. Nulla da correggere. Scegli un modello open-weight ospitato se vuoi conteggi esatti.
Uno screenshot incollato non viene preso in considerazione shannon-coder-1 accetta input di testo. Scegli per quella sessione un modello che accetti immagini.

La tua chiave e il tuo saldo si trovano nella pagina Chiavi e utilizzo. Chiavi e utilizzo