Ir para o conteúdo
Ferramentas de código em CLI

Ferramentas de código em CLI

Novo

Use a Shannon como o modelo por trás do Claude Code, do Codex CLI e de outras CLIs de agentes.

Uma ferramenta de código precisa de três configurações para funcionar com a Shannon: a base URL da API, sua chave de API e um id de modelo Shannon. Esta página traz as configurações exatas para o Claude Code e o Codex CLI, explica como o modelo de código shannon-coder-1 é contado e lista os erros que essas ferramentas encontram.

Qual endpoint cada ferramenta usa

Ferramenta Endpoint Base URL a definir Nota
Claude Code POST /v1/messages
POST /v1/messages/count_tokens
https://api.shannon-ai.com A ferramenta acrescenta /v1/messages à base URL por conta própria.
Codex CLI POST /v1/responses https://api.shannon-ai.com/v1 A ferramenta acrescenta /responses à base URL.
Outras ferramentas de agente que falam o formato de chat da OpenAI POST /v1/chat/completions https://api.shannon-ai.com/v1 Defina a base URL, a chave e um id de modelo Shannon nas configurações da própria ferramenta.

Os três endpoints aceitam a mesma chave de API, como Authorization: Bearer ou como x-api-key. Os headers anthropic-version, anthropic-beta e openai-beta que essas ferramentas enviam são aceitos.

Selecione um modelo Shannon

Toda requisição deve indicar um id de modelo que a Shannon publica. Uma ferramenta de código envia o nome do seu próprio modelo padrão, a menos que você diga o contrário, e um nome que a Shannon não publica é respondido com 400 e a mensagem unknown model: <name>. Nenhum outro nome é mapeado para um modelo Shannon, então defina o modelo na ferramenta antes da primeira requisição.

GET /v1/models lista todos os ids com a sua janela de contexto. Não exige chave. Modelos e preços

Modelo Contado como O que oferece
shannon-coder-1 Uma chamada por requisição em /v1/messages e /v1/chat/completions. Tokens em /v1/responses. O modelo de código. Entrada de texto, chamadas de ferramenta, janela de contexto de 131,072 tokens.
shannon-1.6-lite
shannon-1.6-pro
Tokens do seu saldo. Modelos gerais com chamadas de ferramenta. shannon-1.6-lite serve para as requisições curtas em segundo plano que uma ferramenta faz.
Modelos open-weight hospedados Tokens do seu saldo, com a entrada em cache a 25% do preço de entrada. Chamadas de ferramenta, cache de prompt para sessões longas e contagens exatas de /v1/messages/count_tokens.

As ferramentas de código conduzem o modelo com um prompt de sistema longo. O prompt de sistema é aplicado por shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro e pelos modelos open-weight hospedados, então selecione um deles para uma ferramenta de código.

Claude Code

O Claude Code lê sua conexão de variáveis de ambiente. Defina-as no shell que o inicia, ou no bloco env de ~/.claude/settings.json para mantê-las em todas as sessões.

# 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
Variável Descrição
ANTHROPIC_BASE_URL Para onde o Claude Code envia suas requisições. Use o endereço sem /v1.
ANTHROPIC_AUTH_TOKEN Sua chave de API da Shannon, enviada como Authorization: Bearer. ANTHROPIC_API_KEY também funciona: ela envia a chave como x-api-key, e o Claude Code pede uma vez para você aprová-la.
ANTHROPIC_MODEL O modelo da sessão. claude --model <id> e /model <id> definem a mesma coisa.
ANTHROPIC_DEFAULT_HAIKU_MODEL O modelo para requisições em segundo plano, como títulos de sessão, e para qualquer coisa que peça haiku.
ANTHROPIC_DEFAULT_SONNET_MODEL O modelo usado quando um subagente ou um comando pede sonnet.
ANTHROPIC_DEFAULT_OPUS_MODEL O modelo usado quando um subagente ou um comando pede opus.
CLAUDE_CODE_MAX_CONTEXT_TOKENS A janela de contexto que o Claude Code assume para o modelo. Use o context_window que GET /v1/models informa para o id que você selecionou.
  • Defina as três variáveis ANTHROPIC_DEFAULT_…_MODEL. Subagentes e alguns comandos pedem um modelo pelo nome embutido, e cada nome precisa resolver para um id Shannon.
  • O exemplo aponta as requisições em segundo plano para shannon-1.6-lite, que é contado em tokens. Assim, títulos de sessão e requisições semelhantes não usam chamadas Coder.
  • O Claude Code consulta POST /v1/messages/count_tokens para saber o tamanho do contexto. O endpoint conta para os modelos open-weight hospedados. Com um id Shannon, ele responde 400; o Claude Code trata a contagem de tokens como opcional e estima o tamanho por conta própria. Contagem de tokens

Para verificar o endereço, a chave e um id de modelo antes de iniciar a ferramenta, envie uma requisição manualmente:

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

O Codex CLI fala com a API Responses. Descreva a Shannon como um provedor de modelos em ~/.codex/config.toml, selecione ali um id de modelo Shannon e coloque sua chave de API na variável de ambiente que o provedor indica.

~/.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
Chave Descrição
model O id do modelo Shannon. codex --model <id> o define para uma única execução.
model_provider O nome do bloco de provedor a usar, aqui shannon.
base_url O endereço da API com /v1.
env_key O nome da variável de ambiente que contém sua chave de API da Shannon.
wire_api responses: o Codex fala com POST /v1/responses.
model_context_window A janela de contexto do modelo, para que o Codex compacte uma sessão longa a tempo. Use o context_window que GET /v1/models informa.
  • /v1/responses não guarda nenhuma conversa no servidor: cada requisição leva a conversa em input. previous_response_id é aceito por compatibilidade.
  • Ferramentas de função (type: "function") são oferecidas ao modelo em /v1/responses.
  • Em /v1/responses, shannon-coder-1 é contado em tokens do seu saldo, não em chamadas Coder.

A mesma verificação para o 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."
  }'

O modelo de código e como ele é contado

shannon-coder-1 é o modelo Shannon para agentes de código. GET /v1/models o informa com uma janela de contexto de 131,072 tokens, chamadas de ferramenta, raciocínio e entrada de texto. Ele é contado de uma de duas formas, dependendo do endpoint que uma ferramenta usa.

Endpoint Uma requisição custa Retirado de
/v1/messages 1 chamada por requisição A cota de chamadas Coder do seu plano. Nenhum token é retirado do seu saldo.
/v1/chat/completions 1 chamada por requisição A cota de chamadas Coder do seu plano. Nenhum token é retirado do seu saldo.
/v1/responses Tokens, a $8.00 por 1M Seu saldo, como qualquer outro modelo. A cota de chamadas não é usada.

Uma chamada é uma requisição, seja qual for o seu tamanho. Ela é contada quando a requisição é aceita, antes de o modelo responder. Uma sessão de agente envia uma requisição para cada passo que dá, então uma tarefa longa usa muitas chamadas. A cota depende do seu plano e recomeça a cada 4 horas, às 00:00, 04:00, 08:00, 12:00, 16:00 e 20:00 UTC.

Plano Chamadas por janela de 4 horas
Free 3
Plus 20
Standard 40
Pro 60

A página de planos mostra os números atuais. Planos

Quando as chamadas de uma janela se esgotam, a requisição é respondida com 429. Em /v1/messages, o mesmo erro vem no formato da 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"
  }
}

Estouro de contexto

Quando uma conversa é maior que a janela de contexto do modelo, /v1/chat/completions e /v1/messages respondem com 400, o tipo invalid_request_error, o código context_length_exceeded e uma mensagem que começa com prompt is too long. As ferramentas de código leem esse erro para compactar a sessão e enviar a requisição de novo. Ele é produzido por 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
  }
}

A mensagem é prompt is too long: <sent> tokens > <limit> maximum. Quando os dois números não são conhecidos, é prompt is too long. Please compact the conversation and try again.

Em um stream, o status já é 200, então o erro chega como um evento e o stream então se fecha 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"}

No que um loop de agente pode confiar

Tópico Comportamento
Schemas de ferramenta As definições de ferramenta são tomadas como a ferramenta as envia. Em shannon-coder-1 e shannon-1.6-*, palavras-chave de JSON Schema que o modelo não usa, como $schema, $ref, additionalProperties, default e title, ficam fora do que o modelo lê, e oneOf é lido como anyOf. Nenhuma requisição é recusada por causa delas.
Argumentos da chamada de ferramenta Em um stream, os argumentos de uma chamada de ferramenta chegam completos em um único delta: tool_calls[].function.arguments, input_json_delta.partial_json ou response.function_call_arguments.delta.
Fim de um turno de ferramenta finish_reason: "tool_calls" em Chat Completions, stop_reason: "tool_use" em Messages.
Keep-alive Enquanto o modelo trabalha, /v1/messages envia event: ping e /v1/chat/completions envia uma linha de comentário : ping a cada 15 segundos.
Interromper uma requisição Fechar a conexão interrompe o stream. O turno em si é executado até o fim e é contabilizado.

Solução de problemas

Sintoma Causa Solução
400 com unknown model: claude-… ou unknown model: gpt-… A ferramenta enviou o nome do seu próprio modelo padrão. Apenas ids Shannon publicados são atendidos, e nenhum outro nome é mapeado para um deles. Selecione um id Shannon: ANTHROPIC_MODEL e as três variáveis ANTHROPIC_DEFAULT_…_MODEL no Claude Code, model na configuração do Codex.
400 com unknown model: e sem nome, vindo do Codex CLI A requisição não indicou nenhum modelo. /v1/responses exige um. Defina model em ~/.codex/config.toml ou passe --model.
401 com Missing authentication ou Invalid API key A chave não chegou à API, ou não é uma chave atual. Uma chave da Shannon começa com sk-. Verifique se a variável está definida no shell que inicia a ferramenta. Copie a chave novamente em Chaves e uso.
404 em todas as requisições A base URL tem um /v1 a mais ou a menos para a ferramenta. Claude Code: o endereço sem /v1. Codex CLI: o endereço com /v1.
429 com Shannon Coder call quota reached As chamadas Coder da janela atual de 4 horas foram esgotadas. Aguarde a próxima janela, mude para um plano com mais chamadas ou selecione um modelo contado em tokens.
429 com Quota exceeded Seu saldo não cobre a requisição. Adicione créditos ou aguarde a cota diária do seu plano às 00:00 UTC.
400 com prompt is too long A conversa é maior que a janela de contexto do modelo. Compacte a sessão (/compact nas duas ferramentas). Informe à ferramenta a janela de contexto do modelo para que ela compacte mais cedo.
O Claude Code mostra números de contexto aproximados /v1/messages/count_tokens conta para os modelos open-weight hospedados. Com um id Shannon, ele responde 400, e o Claude Code estima o tamanho por conta própria. Nada a corrigir. Selecione um modelo open-weight hospedado se quiser contagens exatas.
Uma captura de tela colada não é levada em conta shannon-coder-1 aceita entrada de texto. Selecione, para essa sessão, um modelo que aceite imagens.

Sua chave e seu saldo estão na página Chaves e uso. Chaves e uso