Перейти до вмісту
CLI-інструменти для кодування

CLI-інструменти для кодування

Нове

Використовуйте Shannon як модель для Claude Code, Codex CLI та інших агентних CLI.

Інструменту для кодування потрібні три налаштування для роботи з Shannon: базовий URL API, ваш API-ключ та id моделі Shannon. Ця сторінка дає точні налаштування для Claude Code і Codex CLI, пояснює, як рахується модель для кодування shannon-coder-1, і перелічує помилки, з якими ці інструменти стикаються.

Який ендпоінт використовує кожен інструмент

Інструмент Ендпоінт Базовий URL для встановлення Примітка
Claude Code POST /v1/messages
POST /v1/messages/count_tokens
https://api.shannon-ai.com Інструмент сам додає /v1/messages до базового URL.
Codex CLI POST /v1/responses https://api.shannon-ai.com/v1 Інструмент додає /responses до базового URL.
Інші агентні інструменти, що працюють у форматі чату OpenAI POST /v1/chat/completions https://api.shannon-ai.com/v1 Задайте базовий URL, ключ та id моделі Shannon у власних налаштуваннях інструмента.

Усі три ендпоінти приймають той самий API-ключ, як Authorization: Bearer або як x-api-key. Заголовки anthropic-version, anthropic-beta і openai-beta, які надсилають ці інструменти, приймаються.

Вибір моделі Shannon

Кожен запит має називати id моделі, який публікує Shannon. Інструмент для кодування надсилає назву власної моделі за замовчуванням, якщо ви не скажете інакше, а на назву, якої Shannon не публікує, відповідають 400 і повідомленням unknown model: <name>. Жодна інша назва не зіставляється з моделлю Shannon, тож задайте модель в інструменті до першого запиту.

GET /v1/models перелічує кожен id з його вікном контексту. Ключ не потрібен. Моделі та ціни

Модель Рахується як Що дає
shannon-coder-1 Один виклик на запит на /v1/messages і /v1/chat/completions. Токени на /v1/responses. Модель для кодування. Текстовий вхід, виклики інструментів, вікно контексту 131,072 токенів.
shannon-1.6-lite
shannon-1.6-pro
Токени з вашого балансу. Універсальні моделі з викликами інструментів. shannon-1.6-lite підходить для коротких фонових запитів, які робить інструмент.
Хостовані open-weight моделі Токени з вашого балансу, кешований вхід — за 25% від ціни входу. Виклики інструментів, кешування запитів для довгих сесій і точний підрахунок через /v1/messages/count_tokens.

Інструменти для кодування керують моделлю довгим системним промптом. Системний промпт застосовують shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro і хостовані open-weight моделі, тож для інструмента кодування вибирайте одну з них.

Claude Code

Claude Code читає своє підключення зі змінних середовища. Задайте їх в оболонці, що його запускає, або в блоці env файлу ~/.claude/settings.json, щоб зберегти для кожної сесії.

# 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
Змінна Опис
ANTHROPIC_BASE_URL Куди Claude Code надсилає свої запити. Використовуйте адресу без /v1.
ANTHROPIC_AUTH_TOKEN Ваш API-ключ Shannon, що надсилається як Authorization: Bearer. ANTHROPIC_API_KEY теж працює: він надсилає ключ як x-api-key, і Claude Code один раз просить це підтвердити.
ANTHROPIC_MODEL Модель сесії. claude --model <id> і /model <id> задають те саме.
ANTHROPIC_DEFAULT_HAIKU_MODEL Модель для фонових запитів, як-от заголовки сесій, і для всього, що просить haiku.
ANTHROPIC_DEFAULT_SONNET_MODEL Модель, що використовується, коли субагент чи команда просить sonnet.
ANTHROPIC_DEFAULT_OPUS_MODEL Модель, що використовується, коли субагент чи команда просить opus.
CLAUDE_CODE_MAX_CONTEXT_TOKENS Вікно контексту, яке Claude Code припускає для моделі. Використовуйте context_window, який GET /v1/models повідомляє для вибраного id.
  • Задайте всі три змінні ANTHROPIC_DEFAULT_…_MODEL. Субагенти та деякі команди просять модель за її вбудованою назвою, і кожна назва має зіставлятися з id Shannon.
  • У прикладі фонові запити спрямовано на shannon-1.6-lite, що рахується в токенах. Заголовки сесій та подібні запити тоді не витрачають виклики Coder.
  • Claude Code запитує в POST /v1/messages/count_tokens розмір контексту. Ендпоінт рахує для хостованих open-weight моделей. З id Shannon він відповідає 400; Claude Code вважає підрахунок токенів необов'язковим і оцінює розмір сам. Підрахунок токенів

Щоб перевірити адресу, ключ і id моделі перед запуском інструмента, надішліть один запит вручну:

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 звертається до Responses API. Опишіть Shannon як провайдера моделей у ~/.codex/config.toml, виберіть там id моделі Shannon і помістіть свій API-ключ у змінну середовища, яку називає провайдер.

~/.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
Ключ Опис
model Id моделі Shannon. codex --model <id> задає його для одного запуску.
model_provider Назва блоку провайдера, який використовувати, тут shannon.
base_url Адреса API з /v1.
env_key Назва змінної середовища, що містить ваш API-ключ Shannon.
wire_api responses: Codex звертається до POST /v1/responses.
model_context_window Вікно контексту моделі, щоб Codex вчасно стискав довгу сесію. Використовуйте context_window, який повідомляє GET /v1/models.
  • /v1/responses не зберігає розмову на сервері: кожен запит несе розмову в input. previous_response_id приймається для сумісності.
  • Інструменти-функції (type: "function") пропонуються моделі на /v1/responses.
  • На /v1/responses shannon-coder-1 рахується в токенах з вашого балансу, а не у викликах Coder.

Така сама перевірка для ендпоінта 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."
  }'

Модель для кодування та як її рахують

shannon-coder-1 — це модель Shannon для агентів кодування. GET /v1/models повідомляє її з вікном контексту 131,072 токенів, викликами інструментів, міркуваннями та текстовим входом. Вона рахується одним із двох способів, залежно від ендпоінта, який використовує інструмент.

Ендпоінт Запит коштує Списується з
/v1/messages 1 виклик на запит Ліміт викликів Coder за вашим планом. Токени з вашого балансу не списуються.
/v1/chat/completions 1 виклик на запит Ліміт викликів Coder за вашим планом. Токени з вашого балансу не списуються.
/v1/responses Токени, за $8.00 за 1M Ваш баланс, як і для будь-якої іншої моделі. Ліміт викликів не використовується.

Виклик — це один запит, незалежно від розміру. Він рахується, коли запит прийнято, до відповіді моделі. Сесія агента надсилає один запит на кожен свій крок, тож довге завдання використовує багато викликів. Ліміт залежить від вашого плану й оновлюється кожні 4 години, о 00:00, 04:00, 08:00, 12:00, 16:00 і 20:00 UTC.

План Викликів на 4-годинне вікно
Free 3
Plus 20
Standard 40
Pro 60

Сторінка планів показує поточні значення. Плани

Коли виклики вікна вичерпано, на запит відповідають 429. На /v1/messages та сама помилка приходить у форматі 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"
  }
}

Переповнення контексту

Коли розмова більша за вікно контексту моделі, /v1/chat/completions і /v1/messages відповідають 400, типом invalid_request_error, кодом context_length_exceeded і повідомленням, що починається з prompt is too long. Інструменти для кодування читають цю помилку, щоб стиснути сесію та надіслати запит знову. Її видають shannon-coder-1, shannon-1.6-lite і 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
  }
}

Повідомлення має вигляд prompt is too long: <sent> tokens > <limit> maximum. Коли обидва числа невідомі, воно таке: prompt is too long. Please compact the conversation and try again.

У стрімі статус уже 200, тож помилка надходить як подія, після чого стрім закривається звичайним способом:

/v1/chat/completions, стрім
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, стрім
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"}

На що може покладатися цикл агента

Тема Поведінка
Схеми інструментів Визначення інструментів беруться так, як їх надсилає інструмент. На shannon-coder-1 і shannon-1.6-* ключові слова JSON Schema, яких модель не використовує, як-от $schema, $ref, additionalProperties, default і title, не потрапляють у те, що читає модель, а oneOf читається як anyOf. Жоден запит через них не відхиляється.
Аргументи виклику інструмента У стрімі аргументи виклику інструмента надходять повністю в одній дельті: tool_calls[].function.arguments, input_json_delta.partial_json або response.function_call_arguments.delta.
Кінець ходу з інструментом Хід з інструментом завершується так: у Chat Completions це finish_reason: "tool_calls", у Messages це stop_reason: "tool_use".
Keep-alive Поки модель працює, /v1/messages надсилає event: ping, а /v1/chat/completions — рядок-коментар : ping кожні 15 секунд.
Зупинка запиту Закриття з'єднання зупиняє стрім. Сам хід виконується до кінця та враховується.

Усунення несправностей

Симптом Причина Виправлення
400 з unknown model: claude-… або unknown model: gpt-… Інструмент надіслав назву власної моделі за замовчуванням. Обслуговуються лише опубліковані id Shannon, і жодна інша назва до них не зіставляється. Виберіть id Shannon: ANTHROPIC_MODEL і три змінні ANTHROPIC_DEFAULT_…_MODEL у Claude Code, model у конфігурації Codex.
400 з unknown model: без назви, від Codex CLI Запит не назвав жодної моделі. /v1/responses потребує її. Задайте model у ~/.codex/config.toml або передайте --model.
401 з Missing authentication або Invalid API key Ключ не дійшов до API, або це не поточний ключ. Ключ Shannon починається з sk-. Перевірте, що змінну задано в оболонці, яка запускає інструмент. Скопіюйте ключ ще раз зі сторінки «Ключі та використання».
404 на кожен запит У базовому URL на один /v1 більше або менше, ніж потрібно інструменту. Claude Code: адреса без /v1. Codex CLI: адреса з /v1.
429 з Shannon Coder call quota reached Виклики Coder поточного 4-годинного вікна вичерпано. Зачекайте наступного вікна, перейдіть на план із більшою кількістю викликів або виберіть модель, що рахується в токенах.
429 з Quota exceeded Ваш баланс не покриває запит. Додайте кредит або зачекайте на щоденний ліміт вашого плану о 00:00 UTC.
400 з prompt is too long Розмова більша за вікно контексту моделі. Стисніть сесію (/compact в обох інструментах). Вкажіть інструменту вікно контексту моделі, щоб він стискав раніше.
Claude Code показує приблизні числа контексту /v1/messages/count_tokens рахує для хостованих open-weight моделей. З id Shannon він відповідає 400, і Claude Code оцінює розмір сам. Виправляти нічого. Виберіть хостовану open-weight модель, якщо потрібен точний підрахунок.
Вставлений знімок екрана не враховується shannon-coder-1 приймає текстовий вхід. Виберіть для цієї сесії модель, що приймає зображення.

Ваш ключ і ваш баланс є на сторінці «Ключі та використання». Ключі та використання