رفتن به محتوا
ابزارهای CLI برای کدنویسی

ابزارهای CLI برای کدنویسی

جدید

از Shannon به‌عنوان مدل پشت Claude Code، Codex CLI و دیگر CLIهای عامل (agent) استفاده کنید.

یک ابزار کدنویسی برای کار با Shannon به سه تنظیم نیاز دارد: base URL مربوط به API، کلید API شما و یک شناسه مدل Shannon. این صفحه تنظیمات دقیق Claude Code و Codex CLI را می‌دهد، توضیح می‌دهد مدل کدنویسی shannon-coder-1 چگونه شمرده می‌شود و خطاهایی را که این ابزارها با آن‌ها روبه‌رو می‌شوند فهرست می‌کند.

هر ابزار از کدام endpoint استفاده می‌کند

ابزار Endpoint Base URL برای تنظیم یادداشت
Claude Code POST /v1/messages
POST /v1/messages/count_tokens
https://api.shannon-ai.com ابزار خودش /v1/messages را به base URL اضافه می‌کند.
Codex CLI POST /v1/responses https://api.shannon-ai.com/v1 ابزار /responses را به base URL اضافه می‌کند.
ابزارهای عامل دیگر که با فرمت چت OpenAI کار می‌کنند POST /v1/chat/completions https://api.shannon-ai.com/v1 base URL، کلید و شناسه مدل Shannon را در تنظیمات خود ابزار وارد کنید.

هر سه endpoint همان کلید API را می‌پذیرند، به‌صورت Authorization: Bearer یا x-api-key. هدرهای anthropic-version، anthropic-beta و openai-beta که این ابزارها می‌فرستند پذیرفته می‌شوند.

انتخاب یک مدل Shannon

هر درخواست باید شناسه مدلی را که Shannon منتشر کرده نام ببرد. ابزار کدنویسی اگر به آن نگویید، نام مدل پیش‌فرض خودش را می‌فرستد و نامی که Shannon منتشر نکرده با 400 و پیام unknown model: <name> پاسخ داده می‌شود. هیچ نام دیگری به مدل Shannon نگاشت نمی‌شود، پس مدل را پیش از اولین درخواست در ابزار تنظیم کنید.

GET /v1/models هر شناسه را با پنجره زمینه‌اش فهرست می‌کند. کلید نمی‌خواهد. مدل‌ها و قیمت‌ها

مدل شمرده‌شده به‌عنوان چه چیزی فراهم می‌کند
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.

ابزارهای کدنویسی مدل را با یک system prompt طولانی هدایت می‌کنند. system prompt را 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 مدلی که وقتی یک subagent یا دستور sonnet بخواهد استفاده می‌شود.
ANTHROPIC_DEFAULT_OPUS_MODEL مدلی که وقتی یک subagent یا دستور opus بخواهد استفاده می‌شود.
CLAUDE_CODE_MAX_CONTEXT_TOKENS پنجره زمینه‌ای که Claude Code برای مدل فرض می‌کند. از context_windowای استفاده کنید که GET /v1/models برای شناسه انتخاب‌شده شما گزارش می‌کند.
  • هر سه متغیر ANTHROPIC_DEFAULT_…_MODEL را تنظیم کنید. subagentها و برخی دستورها مدل را با نام داخلی‌اش می‌خواهند و هر نام باید به یک شناسه Shannon تبدیل شود.
  • نمونه، درخواست‌های پس‌زمینه را به shannon-1.6-lite می‌فرستد که بر حسب توکن شمرده می‌شود. عنوان نشست‌ها و درخواست‌های مشابه آن‌گاه از فراخوانی‌های Coder مصرف نمی‌کنند.
  • Claude Code اندازه زمینه را از POST /v1/messages/count_tokens می‌پرسد. این endpoint برای مدل‌های open-weight میزبانی‌شده می‌شمارد. با شناسه Shannon 400 پاسخ می‌دهد؛ Claude Code شمارش توکن را اختیاری می‌داند و اندازه را خودش تخمین می‌زند. شمارش توکن

برای بررسی آدرس، کلید و شناسه مدل پیش از شروع ابزار، یک درخواست را دستی بفرستید:

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 به‌عنوان یک provider مدل تعریف کنید، در آنجا یک شناسه مدل Shannon انتخاب کنید و کلید API خود را در متغیر محیطی‌ای که 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
کلید توضیحات
model شناسه مدل Shannon. codex --model <id> آن را برای یک اجرا تنظیم می‌کند.
model_provider نام بلوک 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.

همین بررسی برای 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."
  }'

مدل کدنویسی و نحوه شمارش آن

shannon-coder-1 مدل Shannon برای عامل‌های کدنویسی است. GET /v1/models آن را با پنجره زمینه 131,072 توکن، فراخوانی ابزار، استدلال و ورودی متن گزارش می‌کند. بسته به endpointی که ابزار استفاده می‌کند، به یکی از دو روش شمرده می‌شود.

Endpoint هزینه یک درخواست برداشت از
/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. است.

روی stream وضعیت از قبل 200 است، پس خطا به‌صورت رویداد می‌رسد و stream سپس به روش عادی بسته می‌شود:

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

آنچه یک حلقه عامل می‌تواند به آن تکیه کند

موضوع رفتار
schemaهای ابزار تعریف ابزارها همان‌طور که ابزار می‌فرستد گرفته می‌شود. روی shannon-coder-1 و shannon-1.6-*، کلیدواژه‌های JSON Schema که مدل از آن‌ها استفاده نمی‌کند، مانند $schema، $ref، additionalProperties، default و title، از آنچه مدل می‌خواند کنار گذاشته می‌شوند و oneOf مانند anyOf خوانده می‌شود. هیچ درخواستی به‌خاطر آن‌ها رد نمی‌شود.
آرگومان‌های فراخوانی ابزار در یک stream، آرگومان‌های فراخوانی ابزار کامل در یک delta می‌رسند: tool_calls[].function.arguments، input_json_delta.partial_json یا response.function_call_arguments.delta.
پایان یک نوبت ابزار نوبت ابزار با این مقادیر پایان می‌یابد: finish_reason: "tool_calls" در Chat Completions و stop_reason: "tool_use" در Messages.
Keep-alive تا وقتی مدل کار می‌کند، /v1/messages هر 15 ثانیه event: ping و /v1/chat/completions یک خط توضیح : ping می‌فرستد.
متوقف کردن یک درخواست بستن اتصال stream را متوقف می‌کند. خود نوبت تا پایان اجرا می‌شود و شمرده می‌شود.

عیب‌یابی

نشانه علت راه‌حل
400 با unknown model: claude-… یا unknown model: gpt-… ابزار نام مدل پیش‌فرض خودش را فرستاده است. فقط شناسه‌های منتشرشده Shannon پاسخ داده می‌شوند و هیچ نام دیگری به یکی از آن‌ها نگاشت نمی‌شود. یک شناسه 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 روی هر درخواست base 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 میزبانی‌شده می‌شمارد. با شناسه Shannon 400 پاسخ می‌دهد و Claude Code اندازه را خودش تخمین می‌زند. چیزی برای رفع کردن نیست. اگر شمارش دقیق می‌خواهید، یک مدل open-weight میزبانی‌شده انتخاب کنید.
اسکرین‌شاتِ جای‌گذاری‌شده در نظر گرفته نمی‌شود shannon-coder-1 ورودی متن می‌پذیرد. برای آن نشست مدلی را انتخاب کنید که تصویر می‌پذیرد.

کلید و موجودی شما در صفحه «کلیدها و مصرف» است. کلیدها و مصرف