Saltar al contenido
Herramientas CLI de programación

Herramientas CLI de programación

Nuevo

Usa Shannon como el modelo detrás de Claude Code, Codex CLI y otras CLI de agentes.

Una herramienta de programación necesita tres ajustes para funcionar con Shannon: la URL base de la API, tu clave API y un id de modelo de Shannon. Esta página da los ajustes exactos para Claude Code y Codex CLI, explica cómo se cuenta el modelo de programación shannon-coder-1 y lista los errores con los que se encuentran estas herramientas.

Qué endpoint usa cada herramienta

Herramienta Endpoint URL base que configurar Nota
Claude Code POST /v1/messages
POST /v1/messages/count_tokens
https://api.shannon-ai.com La herramienta añade /v1/messages a la URL base por sí misma.
Codex CLI POST /v1/responses https://api.shannon-ai.com/v1 La herramienta añade /responses a la URL base.
Otras herramientas de agentes que hablan el formato de chat de OpenAI POST /v1/chat/completions https://api.shannon-ai.com/v1 Configura la URL base, la clave y un id de modelo de Shannon en los ajustes propios de la herramienta.

Los tres endpoints aceptan la misma clave API, como Authorization: Bearer o como x-api-key. Se aceptan los headers anthropic-version, anthropic-beta y openai-beta que envían estas herramientas.

Seleccionar un modelo de Shannon

Cada solicitud debe indicar un id de modelo que Shannon publique. Una herramienta de programación envía el nombre de su propio modelo predeterminado salvo que le indiques otra cosa, y un nombre que Shannon no publica se responde con 400 y el mensaje unknown model: <name>. Ningún otro nombre se asigna a un modelo de Shannon, así que configura el modelo en la herramienta antes de la primera solicitud.

GET /v1/models lista cada id con su ventana de contexto. No necesita clave. Modelos y precios

Modelo Se cuenta como Qué aporta
shannon-coder-1 Una llamada por solicitud en /v1/messages y /v1/chat/completions. Tokens en /v1/responses. El modelo de programación. Entrada de texto, llamadas a herramientas, ventana de contexto de 131,072 tokens.
shannon-1.6-lite
shannon-1.6-pro
Tokens de tu saldo. Modelos generales con llamadas a herramientas. shannon-1.6-lite es adecuado para las solicitudes cortas en segundo plano que hace una herramienta.
Modelos de pesos abiertos alojados Tokens de tu saldo, con la entrada en caché al 25% del precio de entrada. Llamadas a herramientas, prompt caching para sesiones largas y conteos exactos de /v1/messages/count_tokens.

Las herramientas de programación guían al modelo con un system prompt largo. El system prompt lo aplican shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro y los modelos de pesos abiertos alojados, así que selecciona uno de ellos para una herramienta de programación.

Claude Code

Claude Code lee su conexión de variables de entorno. Establécelas en el shell que lo inicia, o en el bloque env de ~/.claude/settings.json para conservarlas en cada sesión.

# 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
Variable Descripción
ANTHROPIC_BASE_URL A dónde envía Claude Code sus solicitudes. Usa la dirección sin /v1.
ANTHROPIC_AUTH_TOKEN Tu clave API de Shannon, enviada como Authorization: Bearer. ANTHROPIC_API_KEY también funciona: envía la clave como x-api-key, y Claude Code pide una vez que la apruebes.
ANTHROPIC_MODEL El modelo de la sesión. claude --model <id> y /model <id> establecen lo mismo.
ANTHROPIC_DEFAULT_HAIKU_MODEL El modelo para solicitudes en segundo plano, como los títulos de sesión, y para cualquier cosa que pida haiku.
ANTHROPIC_DEFAULT_SONNET_MODEL El modelo que se usa cuando un subagente o un comando pide sonnet.
ANTHROPIC_DEFAULT_OPUS_MODEL El modelo que se usa cuando un subagente o un comando pide opus.
CLAUDE_CODE_MAX_CONTEXT_TOKENS La ventana de contexto que Claude Code asume para el modelo. Usa el context_window que GET /v1/models informa para el id que seleccionaste.
  • Establece las tres variables ANTHROPIC_DEFAULT_…_MODEL. Los subagentes y algunos comandos piden un modelo por su nombre integrado, y cada nombre debe resolverse a un id de Shannon.
  • El ejemplo apunta las solicitudes en segundo plano a shannon-1.6-lite, que se cuenta en tokens. Así los títulos de sesión y solicitudes similares no consumen llamadas de Coder.
  • Claude Code pide a POST /v1/messages/count_tokens el tamaño del contexto. El endpoint cuenta para los modelos de pesos abiertos alojados. Con un id de Shannon responde 400; Claude Code trata el conteo de tokens como opcional y estima el tamaño por sí mismo. Conteo de tokens

Para comprobar la dirección, la clave y un id de modelo antes de iniciar la herramienta, envía una solicitud 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 se comunica con la API Responses. Describe Shannon como proveedor de modelos en ~/.codex/config.toml, selecciona allí un id de modelo de Shannon y pon tu clave API en la variable de entorno que nombra el proveedor.

~/.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
Clave Descripción
model El id de modelo de Shannon. codex --model <id> lo establece para una ejecución.
model_provider El nombre del bloque de proveedor que se debe usar, aquí shannon.
base_url La dirección de la API con /v1.
env_key El nombre de la variable de entorno que contiene tu clave API de Shannon.
wire_api responses: Codex se comunica con POST /v1/responses.
model_context_window La ventana de contexto del modelo, para que Codex compacte a tiempo una sesión larga. Usa el context_window que informa GET /v1/models.
  • /v1/responses no guarda ninguna conversación en el servidor: cada solicitud lleva la conversación en input. previous_response_id se acepta por compatibilidad.
  • Las herramientas de función (type: "function") se ofrecen al modelo en /v1/responses.
  • En /v1/responses, shannon-coder-1 se cuenta en tokens de tu saldo, no en llamadas de Coder.

La misma comprobación para el 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."
  }'

El modelo de programación y cómo se cuenta

shannon-coder-1 es el modelo de Shannon para agentes de programación. GET /v1/models lo informa con una ventana de contexto de 131,072 tokens, llamadas a herramientas, razonamiento y entrada de texto. Se cuenta de una de dos maneras, según el endpoint que use una herramienta.

Endpoint Una solicitud cuesta Se toma de
/v1/messages 1 llamada por solicitud La cuota de llamadas de Coder de tu plan. No se toman tokens de tu saldo.
/v1/chat/completions 1 llamada por solicitud La cuota de llamadas de Coder de tu plan. No se toman tokens de tu saldo.
/v1/responses Tokens, a $8.00 por 1M Tu saldo, como cualquier otro modelo. No se usa la cuota de llamadas.

Una llamada es una solicitud, sea cual sea su tamaño. Se cuenta cuando se acepta la solicitud, antes de que el modelo responda. Una sesión de agente envía una solicitud por cada paso que da, así que una tarea larga consume muchas llamadas. La cuota depende de tu plan y se reinicia cada 4 horas, a las 00:00, 04:00, 08:00, 12:00, 16:00 y 20:00 UTC.

Plan Llamadas por ventana de 4 horas
Free 3
Plus 20
Standard 40
Pro 60

La página de planes muestra las cifras actuales. Planes

Cuando se agotan las llamadas de una ventana, la solicitud se responde con 429. En /v1/messages el mismo error llega con la forma de 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"
  }
}

Desbordamiento de contexto

Cuando una conversación es mayor que la ventana de contexto del modelo, /v1/chat/completions y /v1/messages responden con 400, el tipo invalid_request_error, el código context_length_exceeded y un mensaje que empieza por prompt is too long. Las herramientas de programación leen este error para compactar la sesión y enviar la solicitud de nuevo. Lo producen shannon-coder-1, shannon-1.6-lite y 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
  }
}

El mensaje es prompt is too long: <sent> tokens > <limit> maximum. Cuando no se conocen los dos números es prompt is too long. Please compact the conversation and try again.

En un stream el estado ya es 200, así que el error llega como un evento y después el stream se cierra de forma normal:

/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"}

En qué puede confiar un bucle de agente

Tema Comportamiento
Esquemas de herramientas Las definiciones de herramientas se toman tal como las envía la herramienta. En shannon-coder-1 y shannon-1.6-*, las palabras clave de JSON Schema que el modelo no usa, como $schema, $ref, additionalProperties, default y title, se omiten de lo que lee el modelo, y oneOf se lee como anyOf. Ninguna solicitud se rechaza por ellas.
Argumentos de la llamada a herramienta En un stream, los argumentos de una llamada a herramienta llegan completos en un solo delta: tool_calls[].function.arguments, input_json_delta.partial_json o response.function_call_arguments.delta.
Fin de un turno de herramienta finish_reason: "tool_calls" en Chat Completions, stop_reason: "tool_use" en Messages.
Keep-alive Mientras el modelo trabaja, /v1/messages envía event: ping y /v1/chat/completions envía una línea de comentario : ping cada 15 segundos.
Detener una solicitud Cerrar la conexión detiene el stream. El turno en sí se ejecuta hasta el final y se cuenta.

Solución de problemas

Síntoma Causa Solución
400 con unknown model: claude-… o unknown model: gpt-… La herramienta envió el nombre de su propio modelo predeterminado. Solo se atienden los ids publicados de Shannon, y ningún otro nombre se asigna a uno. Selecciona un id de Shannon: ANTHROPIC_MODEL y las tres variables ANTHROPIC_DEFAULT_…_MODEL en Claude Code, model en la configuración de Codex.
400 con unknown model: y sin nombre, desde Codex CLI La solicitud no indicó ningún modelo. /v1/responses necesita uno. Define model en ~/.codex/config.toml o pasa --model.
401 con Missing authentication o Invalid API key La clave no llegó a la API, o no es una clave vigente. Una clave de Shannon empieza por sk-. Comprueba que la variable esté definida en el shell que inicia la herramienta. Vuelve a copiar la clave desde Claves y uso.
404 en cada solicitud La URL base tiene un /v1 de más o de menos para la herramienta. Claude Code: la dirección sin /v1. Codex CLI: la dirección con /v1.
429 con Shannon Coder call quota reached Se agotaron las llamadas de Coder de la ventana actual de 4 horas. Espera a la siguiente ventana, pasa a un plan con más llamadas o selecciona un modelo que se cuente en tokens.
429 con Quota exceeded Tu saldo no cubre la solicitud. Añade crédito, o espera a la cuota diaria de tu plan a las 00:00 UTC.
400 con prompt is too long La conversación es mayor que la ventana de contexto del modelo. Compacta la sesión (/compact en ambas herramientas). Indica a la herramienta la ventana de contexto del modelo para que compacte antes.
Claude Code muestra cifras de contexto aproximadas /v1/messages/count_tokens cuenta para los modelos de pesos abiertos alojados. Con un id de Shannon responde 400, y Claude Code estima el tamaño por sí mismo. No hay nada que corregir. Selecciona un modelo de pesos abiertos alojado si quieres conteos exactos.
Una captura de pantalla pegada no se tiene en cuenta shannon-coder-1 acepta entrada de texto. Selecciona para esa sesión un modelo que acepte imágenes.

Tu clave y tu saldo están en la página Claves y uso. Claves y uso