توصيل Crush بـ CheapTokens: مزوّد crushrc، النموذج، المفتاح
أضف CheapTokens إلى Crush بأمرين في crushrc: مزوّد completions ونموذج بحدود حقيقية؛ المفتاح يأتي من متغير بيئة.

في هذه الصفحة
لتوصيل Crush بـ CheapTokens، ضع أمرين في crushrc: provider add مع عنوان URL الأساسي https:/ و-، وmodel add مع معرّف النموذج الكامل. ثم افتح Crush، واضغط Ctrl+l، واختر النموذج وأعطه مهمة. يبقى المفتاح في متغير بيئة، لا في الملف.
إذا اتبعت دليلاً أقدم، فمن المحتمل أنه يعدّل crush.json. لا يزال Crush يقرأ ذلك الملف، لكن README الخاص به يصفه بأنه مهجور: الإعداد الحالي هو crushrc، ومنذ v0.99.0 (29 أكتوبر 2026) يصف المزوّد --type صيغة API، لا المورّد. المصادر هي README الخاص بـ Crush وملاحظات الإصدار، تم التحقق منها في 10 نوفمبر 2026؛ وأحدث إصدار مستقر في ذلك التاريخ هو v0.100.0.
تثبيت Crush#
اختر أي مدير حزم لديك بالفعل. Crush ملف تنفيذي واحد، لذا لا يهم أي طريق تسلك.
تثبيت Crush
Homebrew
brew install charmbracelet/tap/crushnpm
npm install -g @charmland/crushwinget
winget install charmbracelet.crushGo
go install github.com/charmbracelet/crush@latestيسرد README أيضاً مستودعات apt وyum وScoop وNix وArch وFreeBSD. شغّل crush مرة واحدة للتأكد من أنه يبدأ، ثم اخرج.
وضع CheapTokens في crushrc#
يصف README ملف crushrc بأنه "مجرد Bash مع بعض الأوامر المدمجة الخاصة بـ Crush". هذه هي الحيلة كلها: تكتب shell، وprovider add وmodel add أوامر يفهمها Crush. يبحث Crush عن الملف بهذا الترتيب: ./.crushrc، ثم ./crushrc، ثم ~/.
إذن أنت تختار مكان وجوده. ملف .crushrc المحلي للمشروع ينطبق على مستودع واحد؛ والملف في ~/.config/crush/ ينطبق في كل مكان. للتجربة الأولى، الملف العام أسهل.
أولاً ضع المفتاح في shell الخاص بك. أنشئه في لوحة تحكم CheapTokens وصدّره (القيمة أدناه عنصر نائب):
export CHEAPTOKENS_API_KEY="your-key-here"ثم افتح ~/ واكتب:
provider add cheaptokens --type completions \
--base-url "https://api.cheaptokens.dev/v1" \
--api-key "$CHEAPTOKENS_API_KEY"
model add cheaptokens/deepseek-ai/DeepSeek-V4-Flash-0731 \
--name "DeepSeek-V4-Flash" \
--context-window 380000 \
--default-max-tokens 32768بعض التفاصيل تستحق نظرة ثانية:
-هو اسم Crush للمزوّدين المتوافقين مع OpenAI الذين ليسوا OpenAI نفسها.- type completions responsesمخصص لوكالة OpenAI، وmessagesللمتوافقين مع Anthropic. لا يزالopenai-compatالقديم يعمل ويتم ترحيله.- ينتهي عنوان URL الأساسي بـ
/v1. هذا هو عنوان CheapTokens لـ Chat Completions بأسلوب OpenAI؛ القائمة الكاملة لنقاط النهاية في وثائق CheapTokens. - يتم توسيع
$CHEAPTOKENS_بواسطة shell، لذا لا يحتوي الملف على أي سر، ويمكن وضعAPI_ KEY .crushrcالخاص بالمشروع في git بأمان. - معرّف النموذج هو الكامل،
deepseek-. يتم رفض معرّف قصير مثلai/ DeepSeek- V4- Flash- 0731 deepseek-بواسطة API. بعد اسم المزوّد تأتي شرطة مائلة ثانية، لأن المعرّف نفسه يحتوي على واحدة.v4- flash -هو 380K المقرّب لـ DeepSeek-V4-Flash، و- context- window 380000 -هو حدّه لكل إجابة. هذه هي الحدود الحقيقية للنموذج في CheapTokens: سياق 380K وحتى 32,768 رمزاً لكل إجابة. ضعها في- default- max- tokens 32768 model addبدلاً من ترك قيم المثال من README (64000 و5000).

يعرض README model add فقط مع معرّف بسيط (deepseek/). معرّفك يحتوي على شرطة مائلة إضافية، لذا فإن منتقي النموذج في الخطوة التالية هو الفحص الحقيقي: إذا ظهر النموذج تحت cheaptokens، فقد تمت قراءة السطر كما هو مقصود.
تريد نموذجاً آخر على نفس الرصيد؟ أضف سطر model add آخر بمعرّفه وحدوده الخاصة. GLM-5.3-Flash هو zai- (سياق 390K، وحتى 8,192 رمزاً لكل إجابة)، وMiniMax-M2.7 هو MiniMaxAI/ (سياق 180K، وحتى 8,192 رمزاً لكل إجابة). أبقِ - عند حد الإجابة للنموذج الذي تضيفه أو أقل منه.
افتح Crush وشغّل مهمة أولى#
ابدأ crush في مجلد مشروع. اضغط Ctrl+l لفتح منتقي النموذج واختر DeepSeek-V4-Flash من مجموعة cheaptokens. لا يصف README أمر crushrc للنموذج الافتراضي، لذا فإن المنتقي هو الطريقة.

الآن أعطه شيئاً صغيراً وقابلاً للتحقق، مثلاً: Read this repo and tell me which file starts the app, in two lines. إجابة تذكر ملفاً حقيقياً تعني أن السلسلة كلها تعمل: المفتاح، وعنوان URL الأساسي، ومعرّف النموذج.
جرّب بنفسكجرّبه: تضغط Ctrl+l والنموذج ليس في القائمة. ما أول شيء تتحقق منه؟إظهار الإجابة
موقع الملف والمتغير. يبحث Crush عن الإعداد حسب الأولوية: ./.crushrc، ./crushrc، ~/. تحقق من أن المشروع لا يحتوي على .crushrc أو crushrc آخر بمحتوى مختلف، وأن المزوّد أُضيف في الملف الذي عدّلته. ويجب أن يطبع echo $CHEAPTOKENS_ المفتاح في نفس shell الذي تبدأ فيه crush.
مطالبات الأذونات موجودة عن قصد. permissions allow <tools> في crushrc يتيح لأدوات محددة بالاسم العمل دون سؤال؛ و--yolo يتخطى كل المطالبات، ويقول README نفسه أن تكون حذراً جداً معه.
كم تكلف جلسة برمجة#
خطوة وكيل في طرفية كثيفة الإدخال: يرسل Crush السجل ومحتويات الملفات ومخرجات الأدوات في كل مرة، ويحصل على إجابة متواضعة. لنفترض أن خطوة متوسطة ترسل 30,000 رمزاً وتستقبل 2,000. على DeepSeek-V4-Flash تكلف تلك الخطوة $0.00065، والسعر نفسه في أي ساعة، دون أوقات ذروة. محسوبة مع الإدخال والإخراج معاً، فهي أرخص من سعر OpenRouter المرجعي.
استبدل بأرقامك الخاصة: جلسة من 40 خطوة كهذه على بعد شريط تمرير واحد.
حاسبة التكلفة
يوم واحد من وكيل برمجة في Crush
رموز الإدخال لكل طلب: 30,000 · رموز الإخراج لكل طلب: 2,000 · الطلبات يوميًا: 40
| النموذج | يوميًا | شهريًا |
|---|---|---|
| GLM-5.3-Flash$0.02$0.04 | $0.0272 | $0.816 |
| DeepSeek-V4-Flash$0.015$0.10 | $0.026 | $0.78 |
| MiniMax-M2.7$0.05$0.15 | $0.072 | $2.16 |
ينمو الإدخال لكل خطوة مع تقدم الجلسة، لذا تحقق من جلسة طويلة مقابل نافذة 380K بدلاً من المتوسط. الأسعار الحالية لكل رمز لكل نموذج على صفحة الأسعار.
إذا لم يعمل#
يكتب Crush سجلاً في مشروعك، .. اقرأه قبل التخمين:
crush logs --tail 500
crush logs --follow
crush --debugيمكنك أيضاً وضع option debug true في crushrc لإبقاء مخرجات التصحيح مفعّلة. ثم طابق ما تراه مع حالة HTTP التي أعادتها API:
- 401: أُرسل المفتاح لكن لم يتم التعرف عليه: خطأ مطبعي أو مفتاح مستبدل. أنشئه أو انسخه مرة أخرى.
- 402: الرصيد أو حد المفتاح مستنفد. الطلب بدون مفتاح على الإطلاق يبدو نفسه، لذا شغّل
echo $CHEAPTOKENS_في shell الذي تبدأ فيهAPI_ KEY crush. إذا كان المفتاح موجوداً، فاشحن الرصيد. - 429: طلبات كثيرة جداً في وقت قصير. انتظر قيمة
Retry-Afterوحاول مرة أخرى. - 400 أو "model not found": انظر إلى معرّف النموذج. يجب أن يكون الكامل من الوثائق، مع بادئة المورّد.
إذا انتقلت من crush.json، لاحظ أن ~/ هو حالة Crush، لا إعداد؛ لا تعدّله يدوياً.
للإعداد نفسه في أدوات أخرى، راجع توصيل Aider بـ CheapTokens وتوصيل Kilo Code بـ CheapTokens. صفحة نموذج DeepSeek الرخيص تحتوي على حدود النموذج المستخدم هنا.



