إعداد Kimi Code CLI

اربط QCode.cc بـ Kimi Code CLI في ~/.kimi-code/config.toml: استخدم type anthropic مع Claude، وtype openai مع GPT والنماذج الصينية

آخر تحديث 2026-11-13

تحتاج مفتاح API؟ أنشئ حسابًا ←نقاط النهاية وعناوين Base URL ←

في هذه الصفحة

آخر تحقق: 2026-11-10 · 📄 وفقًا للوثائق الرسمية (Kimi Code CLI 2.5.2، سجل التغييرات بتاريخ 2026-11-06؛ Kimi Code Desktop 1.3.2، سجل التغييرات بتاريخ 2026-11-06) · ✅ تم اختبار الوصول إلى QCode باستخدام Kimi Code CLI 2.5.2 (2026-11-10)

نظرة سريعة

العنصر التفاصيل
النماذج التي يمكنك استخدامها Claude ✅ (type = "anthropic") · GPT ✅ (type = "openai" أو type = "openai_responses") · النماذج الصينية ✅ (type = "openai") · Gemini ❌ — لا يقدّم QCode عائلة Gemini، لذا استخدم Claude أو GPT أو نموذجًا صينيًا
البروتوكول وBase URL Anthropic Messages: https://api.qcode.cc/api · OpenAI Chat Completions: https://api.qcode.cc/openai/v1 · OpenAI Responses: https://api.qcode.cc/openai/v1 · اختُبرت الثلاثة جميعًا ✅ باستخدام Kimi Code CLI 2.5.2 (2026-11-10)
مكان الإعداد ~/.kimi-code/config.toml — جدول [providers.<name>] واحد لكل بروتوكول، وإدخال [models.<alias>] واحد لكل نموذج
تسجيل الدخول إلى حساب Kimi غير مطلوب: أُجري الاختبار مع كتابة ~/.kimi-code/config.toml فقط، ودون kimi login
الوثائق الرسمية المزوّدون والنماذج · متغيرات البيئة · تجاوزات الإعداد · GitHub

Kimi Code CLI هو وكيل البرمجة من Moonshot AI الذي يعمل في الطرفية. تصف وثائقه الخاصة ثلاث طرق لتوفير نموذج: خدمة Kimi Code المُدارة بتسجيل دخول بنقرة واحدة، و«ربط Claude بمفتاح API من Anthropic، أو ربط خدمات استدلال تابعة لجهات خارجية عبر البروتوكول المتوافق مع OpenAI». هاتان الطريقتان الأخيرتان هما بالضبط نقطتا النهاية اللتان يتيحهما QCode، لذا يغطي مفتاح QCode واحد Claude وGPT والعائلات الصينية داخل الأداة نفسها. اختُبر في 2026-11-10 باستخدام Kimi Code CLI 2.5.2: دون تسجيل الدخول إلى حساب Kimi، استجاب كل من type = "anthropic" مع https://api.qcode.cc/api، وtype = "openai" مع https://api.qcode.cc/openai/v1، وtype = "openai_responses" مع https://api.qcode.cc/openai/v1. وفي التاريخ نفسه، يُدرج كل من سجل تغييرات CLI وحزمة npm @moonshot-ai/kimi-code الإصدار 2.5.2 (2026-11-06) بوصفه أحدث إصدار، ويُدرج سجل تغييرات Desktop الإصدار 1.3.2 (2026-11-06). تغطي هذه الصفحة CLI؛ أما كيفية مشاركة Kimi Code Desktop إعداده، فتُوصف في Desktop وCLI قرب النهاية.

أي بروتوكول

يحدّد الحقل type في جدول [providers.<name>] تنفيذ البروتوكول. يسرد المرجع الرسمي ست قيم — kimi، anthropic، openai، openai_responses، google-genai، vertexai — وتستخدم بروتوكولات QCode الثلاثة ثلاثة منها. اختُبر كل صف في 2026-11-10 باستخدام Kimi Code CLI 2.5.2، مع claude-haiku-5-5 وdeepseek-v4-flash وgpt-6.1-terra على الترتيب:

النماذج التي تريدها type base_url
claude-sonnet-5، claude-opus-5، claude-haiku-5-5 anthropic https://api.qcode.cc/api
gpt-6.1-sol، gpt-6-sol، والعائلات الصينية openai https://api.qcode.cc/openai/v1
gpt-6.1-terra، gpt-6.1-sol عبر بروتوكول Responses openai_responses https://api.qcode.cc/openai/v1

🔴 لا توجّه أبدًا نموذج Claude إلى نقطة النهاية المتوافقة مع OpenAI. تتيح QCode عائلة Claude فقط عبر نقطة نهاية رسائل Anthropic؛ ويُرفَض أي معرّف claude-* يُرسَل إلى https://api.qcode.cc/openai/v1. نقطتا النهاية غير قابلتين للتبادل — راجع نقاط النهاية ومسارات API.

اكتب Base URL تمامًا كما هو أعلاه: توقّف عند /api أو /openai/v1، ولا تُلحِق /v1/messages أو /chat/completions، ولا تترك شرطة مائلة في النهاية.

التثبيت

توفّر الوثائق مسارين: سكربت التثبيت الرسمي، الموصى به لأنه لا يحتاج إلى Node.js مثبّت مسبقًا، والتثبيت العام عبر npm.

# macOS / Linux
curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash

# Windows (PowerShell)
irm https://code.kimi.com/kimi-code/install.ps1 | iex

# npm — check your runtime first with: node --version
npm install -g @moonshot-ai/kimi-code

يتطلب مسار npm Node.js 22.19.0 أو أحدث. ينزّل السكربت أحدث إصدار، ويتحقق من المجموع التحققي، ويضع الملف التنفيذي kimi على PATH. تحقق من الملف الثنائي، ثم انتقل إلى دليل مشروعك وشغّل kimi لفتح واجهة المستخدم التفاعلية:

kimi --version
cd your-project
kimi

الحد الأدنى لـ config.toml (مُختبَر)

هذا هو الملف المستخدم في اختبار 2026-11-10 مع Kimi Code CLI 2.5.2: مزوّد واحد لكل بروتوكول واسم مستعار واحد للنموذج على كل منها. يجعل api_key_env واجهة CLI تقرأ المفتاح من QCODE_API_KEY عند كل طلب، لذا لا يحتوي الملف نفسه على أي مفتاح؛ واسم المتغيّر متروك لك.

# ~/.kimi-code/config.toml
default_model = "qcode-haiku"

[providers.qcode-anthropic]
type = "anthropic"
base_url = "https://api.qcode.cc/api"
api_key_env = "QCODE_API_KEY"

[providers.qcode-openai]
type = "openai"
base_url = "https://api.qcode.cc/openai/v1"
api_key_env = "QCODE_API_KEY"

[providers.qcode-responses]
type = "openai_responses"
base_url = "https://api.qcode.cc/openai/v1"
api_key_env = "QCODE_API_KEY"

[models.qcode-haiku]
provider = "qcode-anthropic"
model = "claude-haiku-5-5"
max_context_size = 200000

[models.qcode-dsflash]
provider = "qcode-openai"
model = "deepseek-v4-flash"
max_context_size = 128000

[models.qcode-terra]
provider = "qcode-responses"
model = "gpt-6.1-terra"
max_context_size = 128000

عيّن المفتاح وأرسل prompt واحدًا لكل اسم مستعار دون فتح TUI:

export QCODE_API_KEY=cr_your_qcode_key
kimi -p "Reply with exactly: OK"
kimi -p "Reply with exactly: OK" -m qcode-dsflash
kimi -p "Reply with exactly: OK" -m qcode-terra

يشغّل kimi -p prompt واحدًا بصورة غير تفاعلية ويطبع الإجابة؛ ويختار -m اسمًا مستعارًا للنموذج، وبدونه يُستخدم default_model. في الاختبار، طبعت الأسطر الثلاثة جميعها • OK (تسبق CLI نص المساعد بـ •). تشرح الأقسام أدناه الحقول وكيفية إضافة النماذج؛ وتعيد مقتطفاتها استخدام أسماء المزوّدين qcode-anthropic وqcode-openai وqcode-responses، لذا فهي توسّع هذا الملف بدل استبداله.

تهيئة Claude (type = "anthropic")

توجد بيانات الاعتماد في ملف الإعدادات فقط. توضّح الوثائق صراحةً أن CLI «لا يلجأ تلقائيًا إلى متغيرات بيئة الصدفة: تشغيل export KIMI_API_KEY في الطرفية لا يمنح أي مزوّد مفتاحه» — إما أن يُكتب المفتاح في الملف، أو يسمّي api_key_env متغيرًا يقرأه CLI عند كل طلب.

في الملف الأدنى، يكون جزء Claude هو [providers.qcode-anthropic] إضافةً إلى الاسم المستعار qcode-haiku. لإضافة نموذج Claude آخر، أضف اسمًا مستعارًا آخر يشير إلى المزوّد نفسه، واضبط default_model عليه إذا كان ينبغي أن يكون الافتراضي:

[models."claude-sonnet-5"]
provider = "qcode-anthropic"
model = "claude-sonnet-5"
max_context_size = 262144

لتجربة نموذج دون المساس بالملف، استخدم عائلة KIMI_MODEL_*: عند ضبط KIMI_MODEL_NAME، ينشئ CLI مزوّدًا مؤقتًا في الذاكرة ولا يُعاد كتابة أي شيء إلى config.toml. إن KIMI_MODEL_NAME وKIMI_MODEL_API_KEY مطلوبان؛ أما KIMI_MODEL_PROVIDER_TYPE (kimi أو anthropic أو openai، والافتراضي kimi) وKIMI_MODEL_BASE_URL وKIMI_MODEL_MAX_CONTEXT_SIZE فاختيارية. ولا يزال خيار -m <alias> عند بدء التشغيل ذا الأولوية العليا.

export KIMI_MODEL_NAME=claude-sonnet-5
export KIMI_MODEL_API_KEY=cr_your_qcode_key
export KIMI_MODEL_PROVIDER_TYPE=anthropic
export KIMI_MODEL_BASE_URL=https://api.qcode.cc/api
export KIMI_MODEL_MAX_CONTEXT_SIZE=262144
kimi

qcode-anthropic مجرد اسم مزوّد تخترعه له — كل إدخال [models.<alias>] يشير إليه عبر حقل provider المطلوب فيه. وإذا كنت تفضّل عدم الاحتفاظ بأي متغير بيئة، فاستبدل api_key_env بـ api_key = "cr_your_qcode_key"؛ تشير الوثائق إلى أن القيمة تُخزَّن كنص عادي في ملف الإعدادات، وأن الحقلين بديلان حصريان — اضبط واحدًا فقط.

الحقل الجدول ما يُوضع فيه
type providers anthropic، المزوّد الموثّق «للاتصال بـ Claude API»
base_url providers https://api.qcode.cc/api؛ عند تركه، يتبع النوع الافتراضي في Anthropic SDK
api_key / api_key_env providers المفتاح نفسه، أو اسم المتغير الذي يحمله
custom_headers providers جدول اختياري من ترويسات HTTP إضافية تُرفَق بكل طلب
provider models مطلوب — اسم المزوّد المعرّف أعلاه
model models مطلوب — المعرّف المُرسَل إلى الخادم، مثل claude-sonnet-5
max_context_size models مطلوب، token واحد على الأقل — قيمة 262144 في المثال أعلاه عنصر نائب؛ استخدم طول السياق الذي يوثّقه نموذجك فعليًا
max_output_size models حد أقصى اختياري للإخراج يُقابِل max_tokens؛ حاليًا لا يقرأه سوى المزوّد anthropic

البر الرئيسي للصين: تستجيب نقطة نهاية Anthropic أيضًا على https://asia.qcode.cc/api وhttps://us.qcode.cc/api، بالمفتاح نفسه — استبدل المضيف في base_url ولا شيء غير ذلك. الإمكانات: تحصل أسماء نماذج Claude القياسية على الرؤية واستخدام الأدوات وThinking من تلقاء نفسها؛ أما الاسم الذي لا يغطيه CLI فيحتاج إلى إعلان capabilities صراحةً على [models.<alias>] (thinking، image_in، tool_use، …)، وهذه الوسوم تُضاف فقط، ولا تُزال أبدًا.

إعداد نماذج GPT والنماذج الصينية (type = "openai")

الملف نفسه، ونقطة النهاية الأخرى. نوع openai موثّق لبروتوكول OpenAI Chat Completions «وكذلك أي خدمة طرف ثالث متوافقة مع ذلك البروتوكول (تجاوز base_url حسب الحاجة)» — وتجاوزه هو ما يجعل هذا اتصال QCode بدلًا من اتصال OpenAI، لأن الافتراضي المضمّن هو https://api.openai.com/v1.

يعرّف الملف الأدنى بالفعل [providers.qcode-openai] مع الاسم المستعار qcode-dsflash. وكل نموذج GPT أو صيني إضافي هو اسم مستعار آخر على ذلك المزوّد:

[models."gpt-6.1-sol"]
provider = "qcode-openai"
model = "gpt-6.1-sol"
max_context_size = 262144

[models."deepseek-v4.1-flash"]
provider = "qcode-openai"
model = "deepseek-v4.1-flash"
max_context_size = 262144

[models."qwen3.8-max"]
provider = "qcode-openai"
model = "qwen3.8-max"
max_context_size = 262144
  • ضع الأسماء المستعارة التي تحتوي على نقطة بين علامتي اقتباس. يجب كتابة gpt-6.1-sol وqwen3.8-max على صورة [models."qwen3.8-max"]؛ وإذا لم تُقتبس، فإن TOML يقرأ النقطة كفاصل جدول متداخل. أسماء الحقول نفسها مكتوبة بنمط snake_case في كل المواضع (default_model، max_context_size).

  • الأرقام أعلاه قيم نائبة لحقل مطلوب — استخدم طول السياق الذي يوثّقه النموذج نفسه. تُحتسب الفوترة لكل token؛ وتُدرج أسعار كل نموذج على qcode.cc/models.

  • يمكن أن يتواجد المزوّدون الثلاثة جميعًا في إعداد واحد. اختر النموذج لكل جلسة باستخدام -m <alias>، وتصنّفه الوثائق في مرتبة أعلى من ملف الإعداد، لكنه صالح لذلك التشغيل فقط، أو بدّل داخل TUI باستخدام /model. يجب أن يكون default_model واحدًا من الأسماء المستعارة التي عرّفتها.

  • إخراج الاستدلال: تتولى CLI بنفسها التعامل مع حقل reasoning_content وحقن reasoning_effort لنماذج الاستدلال التابعة لجهات خارجية؛ وإذا أعادت بوابة ذلك المحتوى تحت اسم حقل غير قياسي، فاضبط reasoning_key على الاسم المستعار للنموذج.

  • بروتوكول Responses. نوع openai_responses موثّق بوصفه واجهة Responses الأحدث من OpenAI، وهو دائم البث، مع «الإعداد مطابق لإعداد openai». لذلك يأخذ [providers.qcode-responses] في الملف الأدنى نفس base_url = "https://api.qcode.cc/openai/v1"، وقد اختُبر في 2026-11-10 باستخدام gpt-6.1-terra؛ وكل معرّف GPT إضافي هو اسم مستعار آخر على ذلك المزوّد. لا تُقدَّم العائلات الصينية على Responses، لذا أبقِها على qcode-openai.

  • توجد معرّفات إضافية لنقطة النهاية هذه في النماذج الصينية. معرّفات claude-* لا تعمل هنا.

التحقق

تحقق من الملفات دون تشغيل TUI:

kimi doctor
kimi doctor config

kimi doctor يتحقق من config.toml وtui.toml دون بدء TUI أو تعديل أي من الملفين، ويخرج بالقيمة 0 عندما يكون كل ملف مفحوص صالحًا أو تم تخطيه، وبالقيمة 1 عندما يكون أحدها مفقودًا أو غير صالح. النطاق الموثّق هو التحقق من هذين الملفين؛ ولا تصفه الوثائق بأنه اختبار لما إذا كانت نقطة النهاية تستجيب.

تحقق مما سجّله CLI فعليًا:

kimi provider list

ثم افتح TUI واكتب /provider. ذلك هو مدير المزوّدين التفاعلي: ↑/↓ يحرّك المؤشر، وd يحذف المزوّد الحالي بعد تأكيد [y/N]، والضغط على Enter في صف [ Add New Platform ] يضيف مزوّدًا جديدًا (من كتالوج models.dev، أو من URL سجل مخصص). ولا تظهر المزوّدات المتصلة عبر /login هناك. وهو المكان لعرض المزوّدات المهيّأة وإضافتها وإزالتها؛ وkimi provider هو المكافئ غير التفاعلي له للنصوص البرمجية وCI.

ثم أرسل prompt حقيقيًا عبر CLI، مرة واحدة لكل اسم مستعار: kimi -p "Reply with exactly: OK" -m <alias>. في اختبار 2026-11-10، أجاب كل اسم مستعار في ملف الإعداد الأدنى بـ • OK.

أخيرًا، اختبر نقطة النهاية مباشرةً (استبدل المفتاح بمفتاحك):

KEY="cr_your_qcode_key"
curl -X POST https://api.qcode.cc/api/v1/messages \
  -H "x-api-key: $KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":32,
       "messages":[{"role":"user","content":"ping"}]}'

يتحقق طلب curl هذا من المفتاح ونقطة نهاية Anthropic خارج الأداة: رد JSON يتضمن محتوى يعني أن كليهما على ما يرام، ويفصل جسم الخطأ بين مسار خاطئ أو مفتاح خاطئ وبين نموذج غير مُقدَّم على نقطة النهاية تلك.

هناك اختصار من طرف ثالث، kimi provider catalog add anthropic --api-key sk-ant-... --default-model claude-opus-4-7، حيث يوفّر الكتالوج البروتوكول وBase URL وقائمة النماذج، ويستبدل --base-url نقطة النهاية (يكتب --default-model قيمة default_model بالصيغة <providerId>/<modelId>). المعرّف في ذلك المثال يأتي من الكتالوج العام، وليس من QCode، ولم تتحقق هذه الصفحة مما إذا كان QCode مدرجًا هناك، لذا فإن مسار TOML أعلاه هو ما توصي به هذه الصفحة.

استكشاف الأخطاء وإصلاحها والقيود المعروفة

العرَض ما تقوله الوثائق ما ينبغي فعله
يفشل بدء التشغيل مشتكيًا من أن مزوّدًا لا يملك بيانات اعتماد الأولوية لـ api_key أو api_key_env (عيّن واحدًا فقط)، ثم مفتاح [providers.<name>.env]، وإذا غابت جميعها يفشل بدء التشغيل بخطأ الأسماء التقليدية لهذا النوع هي ANTHROPIC_API_KEY وANTHROPIC_BASE_URL، وتُكتب داخل [providers.qcode-anthropic.env] — فهي مفاتيح في ملف الإعداد، وليست عمليات بحث في الصدفة. أثناء تحديث /models، يُبلَّغ عن مزوّد له متغير غير معيّن على أنه فشل دون التأثير في الآخرين
يبدو أن export ANTHROPIC_API_KEY=… متجاهَل متغيرات الصدفة ليست بديلًا عامًا؛ والقناتان اللتان تقرآن الصدفة فعلًا هما api_key_env الخاص بالمزوّد وعائلة KIMI_MODEL_* استخدم api_key_env. يقبل KIMI_MODEL_PROVIDER_TYPE القيم kimi وanthropic وopenai، كما أن تعيين KIMI_MODEL_NAME يبني مزوّدًا مؤقتًا في الذاكرة يختفي عند إعادة التشغيل
يبدو أن تحرير الملف لا يفعل شيئًا خيارات بدء التشغيل تتفوق على الملف في الجلسة الحالية؛ ويُقرأ الملف عند بدء التشغيل أعد تشغيل kimi، أو شغّل /reload لتطبيق أحدث config.toml في الجلسة الجارية
خطأ في الإعداد أو تعذّر العثور على الاسم المستعار عندما يُترك اسم مستعار منقّط دون علامات اقتباس يجب تعريف default_model في models، والاسم المستعار المنقّط غير الموضوع بين علامات اقتباس يصبح جدولًا متداخلًا ضع الاسم المستعار بين علامات اقتباس: [models."qwen3.8-max"]
404 أو خطأ في المسار لا تقول الوثائق شيئًا عن كيفية تجميع بوابة طرف ثالث للمسار يجب أن يتوقف base_url عند /api (Claude) أو /openai/v1 (GPT، الصينية)، دون شرطة مائلة لاحقة ودون إلحاق مسار API
رفض Claude على مزوّد openai — لا يقدّم QCode عائلة Claude هناك؛ انقلها إلى type = "anthropic"
يحتاج أحد المشاريع إلى نقطة نهاية مختلفة لا توجد آلية لملف إعداد على مستوى المشروع — يقرأ Kimi Code ملفًا واحدًا على مستوى المستخدم، اسمه config.toml أينما كان موجودًا وجّه KIMI_CODE_HOME إلى دليل بيانات خاص بكل مشروع قبل التشغيل
يحذّر kimi doctor بالرسالة Unknown top-level key ignored by the v2 engine: auto_session_title. تسرد صفحة ملفات الإعداد auto_session_title كحقل من المستوى الأعلى مجرد تحذير: يتجاهل 2.5.2 ذلك المفتاح ولا يزال يعتبر الإعداد صالحًا؛ يمكنك حذف السطر

خارج الأداة نفسها:

  • تسجيل الدخول: يسجّل kimi login و/login الدخول إلى خدمة Kimi Code المُدارة؛ ولا يحتاج إعداد QCode في هذه الصفحة إلى أي منهما (اختُبر مع 2.5.2 في 2026-11-10).
  • Gemini: يمتلك Kimi Code نوعًا google-genai للوصول المباشر إلى Google Gemini، لكن QCode لا يقدّم عائلة Gemini. استخدم Claude أو GPT أو نموذجًا صينيًا.
  • luna: لا يقدّم QCode النموذجين gpt-6-luna أو gpt-5.6-luna؛ اختر معرّف GPT آخر مثل gpt-6.1-sol أو gpt-6-sol أو gpt-5.6-terra.
  • يُقرأ max_output_size بواسطة مزوّد anthropic فقط، لذا لا يكون لحد الإخراج المعيّن على اسم مستعار من نوع openai أي تأثير.
  • أي نموذج تختار لأي مهمة مشمول في اختيار النموذج؛ وإذا فشل الطلب لأسباب خارج هذه الأداة، فاتبع استكشاف الأخطاء وإصلاحها.

تطبيق سطح المكتب وCLI

يتشارك Kimi Code Desktop وCLI التكوين المحلي. تقول وثائق تطبيق سطح المكتب إنهما «يمكن تثبيتهما على الجهاز نفسه، وأن يشتركا في بعض التكوين المحلي، مثل إعدادات الحساب والنموذج والمزوّد والإضافات»، وتُدرج ~/.kimi-code/ بوصفه يحتوي على «التكوين وبيانات اعتماد الحساب والجلسات والسجلات (المشتركة مع CLI)». وتضيف الوثائق أن نطاق المشاركة الدقيق يتبع إعدادات كل منتج وملفات تكوينه. تغطي هذه الصفحة مسار config.toml فقط ولا تعطي خطوات إعدادات تطبيق سطح المكتب، لأن الصفحات الرسمية لا تصف إعداداً على مستوى الحقول لها.

أداة kimi-cli الأقدم

كانت الأداة الأقدم kimi-cli، المبنية على Python، تستخدم ~/.kimi/config.toml. تذكر صفحة «ما الجديد» الرسمية أن Kimi Code CLI يستخدم ~/.kimi-code/config.toml وأن التنسيق غير متوافق؛ ينقل kimi migrate تكوين kimi-cli الموجود والجلسات وتعريفات MCP في خطوة واحدة. لا تنطبق الأدلة المكتوبة للملف القديم على الجداول أعلاه.

مواضيع ذات صلة

ابدأ مع QCode

مفتاح API واحد لـ Claude Code وCodex وغيرها — تُحسب حسب التوكن، وأسعار كل نموذج على qcode.cc/models

المؤسسات ←