🌐 الموقع وجولة الميزات: weiesky.github.io/cc-viewer — متوفّر بـ 18 لغة.
أداة Vibe Coding مبنية على Claude Code، تم تقطيرها من تجربة التطوير الذاتية:
- رفع سقف القدرات — يمكنك تشغيل /ultraPlan و/ultraReview محليًا، مع تجنّب كشف كود مشروعك بالكامل لسحابة Claude؛
- التوافق مع أجهزة متعددة في وقت واحد — يمكن البرمجة من الأجهزة المحمولة (داخل الشبكة المحلية)، وتتكيف النسخة الويب مع مختلف السيناريوهات، ويسهل تضمينها في إضافات المتصفح أو شاشة منقسمة لنظام التشغيل، كما تتوفر حزمة تثبيت أصلية؛
- حفظ كامل للسجلات — توفر القدرة على اعتراض وتحليل payload كامل لـ claude code، ومناسبة لتسجيل السجلات وتحليل المشكلات والتعلم والاستفادة والهندسة العكسية؛
- مشاركة خبرات التعلم — تم تجميع الكثير من مواد التعلم وخبرات التطوير (راجع علامات "؟" في مختلف أنحاء النظام)؛
- الحفاظ على التجربة الأصلية — يقتصر على تعزيز قدرات claude code دون أي تعديلات جوهرية على النواة، مع الحفاظ على التجربة الأصلية؛
- التوافق مع نماذج الطرف الثالث — يدعم deepseek-v4-* وGLM 5.1 وKimi K2.6، مع قدرة cc-switch مدمجة، يمكنك التبديل الساخن بين أدوات الطرف الثالث في أي وقت؛
English | 简体中文 | 繁體中文 | 한국어 | 日本語 | Deutsch | Español | Français | Italiano | Dansk | Polski | Русский | العربية | Norsk | Português (Brasil) | ไทย | Türkçe | Українська
- تأكد من تثبيت nodejs 20.0.0+؛ التنزيل والتثبيت
- تأكد من تثبيت claude code؛ دليل التثبيت
npm install -g cc-viewer --registry=https://registry.npmjs.orgbrew tap weiesky/cc-viewer
brew install cc-viewer
brew upgrade cc-viewer # استخدم هذا للترقية؛ لا تستخدم npm install -g لترقية ccv المثبّت عبر brewccv هو بديل مباشر لـ claude، حيث يتم تمرير جميع المعاملات إلى claude مع تشغيل Web Viewer في الوقت نفسه.
ccv # == claude (الوضع التفاعلي)أكثر أمر يستخدمه المؤلف نفسه هو
ccv -c --d # == claude --continue --dangerously-skip-permissions
# يمرر ccv جميع معاملات تشغيل claude code، ويمكنك دمجها كما تشاء
بعد تشغيل وضع البرمجة، ستُفتح صفحة الويب تلقائيًا.
يوفر cc-viewer أيضًا إصدار العميل: رابط التنزيل
منذ الإصدار 1.7.0، تُخزَّن السجلات بتنسيق دليل لكل جلسة (wire-format v2) بدلاً من ملفات .jsonl المنفردة — بحجم أقل على القرص بنحو 90%. لا يتم أبدًا تعديل أو حذف ملفات .jsonl من الإصدار v1 الموجودة؛ يعرض مربع حوار السجلات جلسات v2 افتراضيًا، ويوجد إدخال صغير باسم ”عرض السجلات القديمة (v1)“ (يظهر ما دامت الملفات القديمة موجودة) يفتح عرض v1 حيث يمكن استعراضها أو ترحيلها أو حذفها. عند بدء التشغيل، يوفّر cc-viewer ترحيلاً بنقرة واحدة عند العثور على سجلات قديمة (يُنصح به بشدة عند متابعة محادثة قديمة باستخدام claude -c، حيث يوجد نصفها الأول في الملفات القديمة). يمكنك أيضًا الترحيل من الطرفية:
ccv convert <project> # ترحيل مشروع واحد
ccv convert --all # ترحيل كل المشاريع
ccv verify <v1-file> # التحقق من ملف v1 مقابل جلساته المحوّلةإذا لم تجتَز جلسة التحقق الذهبي (golden)، تُحتجَز في sessions-quarantine/ للفحص بدلاً من إفشال الترحيل بأكمله — وتُرحَّل بقية الجلسات كالمعتاد.
إذا كنت ما زلت معتادًا على استخدام أداة claude الأصلية أو إضافة VS code، فيرجى استخدام هذا الوضع.
في هذا الوضع، عند تشغيل claude
سيتم تلقائيًا تشغيل عملية تسجيل تقوم بتسجيل سجلات الطلبات في أدلة لكل جلسة ضمن ~/.claude/cc-viewer/yourproject/sessions/ (wire-format v2)
تشغيل وضع التسجيل:
ccv -loggerعندما لا يمكن لوحدة التحكم طباعة منفذ محدد، يكون المنفذ الافتراضي الأول للتشغيل هو 127.0.0.1:7008. في حالة وجود عدة نسخ تعمل في وقت واحد، تتسلسل المنافذ مثل 7009 و7010.
إلغاء تثبيت وضع التسجيل:
ccv --uninstallإذا واجهت مشاكل في عدم القدرة على التشغيل، فهناك حل نهائي لاستكشاف الأخطاء: الخطوة الأولى: افتح claude code في أي دليل؛ الخطوة الثانية: امنح claude code التعليمات التالية:
我已经安装了cc-viewer这个npm包,但是执行ccv以后仍然无法有效运行。查看cc-viewer的cli.js 和 findcc.js,根据具体的环境,适配本地的claude code的部署方式。适配的时候修改范围尽量约束在findcc.js中。
إن السماح لـ Claude Code بفحص الأخطاء بنفسه أكثر فعالية من استشارة أي شخص أو قراءة أي وثائق!
بعد إكمال التعليمات أعلاه، سيتم تحديث findcc.js. إذا كان مشروعك يحتاج إلى النشر المحلي بشكل متكرر، أو إذا كان الكود المُنسوخ (forked) يحتاج إلى حل مشاكل التثبيت بشكل متكرر، فاحتفظ بهذا الملف. في المرة القادمة يمكنك نسخه مباشرة. في المرحلة الحالية، تستخدم العديد من المشاريع والشركات claude code بنشر مستضاف على الخادم وليس على mac، لذلك فصل المؤلف ملف findcc.js لتسهيل تتبع تحديثات الكود المصدري لـ cc-viewer لاحقًا.
ملاحظة: يتعارض هذا التطبيق مع claude-code-switch وclaude-code-router، إذ توجد مشكلة تنافس على proxy، لذا عند الاستخدام يجب إغلاق claude-code-switch وclaude-code-router؛ يوفر cc-viewer داخليًا وظيفة تحديث ساخن للوكيل كبديل مكافئ.
للاطلاع:
ccv -hافتراضيًا، يعمل ccv في الوضع الصامت عند تغليف claude، مما يضمن بقاء مخرجات الطرفية الخاصة بك مرتبة ومتسقة مع التجربة الأصلية. يتم التقاط جميع السجلات في الخلفية ويمكن عرضها عبر http://localhost:7008.
بعد اكتمال الإعداد، استخدم أمر claude بشكل طبيعي. زر http://localhost:7008 لعرض واجهة المراقبة.
بعد التشغيل باستخدام ccv ستشاهد:
يمكنك مباشرة عرض diff الكود بعد إتمام التحرير:
على الرغم من أنه يمكنك فتح الملفات والبرمجة يدويًا، إلا أن البرمجة اليدوية غير مُوصى بها — تلك هي البرمجة بالطريقة القديمة!
يمكنك حتى مسح رمز QR لتحقيق البرمجة على الأجهزة المحمولة:
يلبي تصوراتك حول البرمجة على الأجهزة المحمولة، بالإضافة إلى ذلك توجد آلية للإضافات، وإذا كنت بحاجة إلى التخصيص وفقًا لعاداتك في البرمجة، يمكنك متابعة تحديثات hooks الإضافات لاحقًا.
نافذة تحرير موجه النظام (قائمة الهامبرغر ← تحرير موجه النظام) مقسّمة إلى تبويبات:
- تبويب افتراضي يحافظ على السلوك التقليدي: يكتب
CC_SYSTEM.md(استبدال) أوCC_APPEND_SYSTEM.md(إلحاق) في مساحة العمل الحالية، ويُحقن كـ--system-prompt-file/--append-system-prompt-fileعند التشغيل التالي لـ ccv. - تبويبات النماذج: انقر + إضافة نموذج، واكتب اسمًا مثل
opusأوGemini3، واختر النطاق — عام (~/.claude/cc-viewer/system_prompt/، يُطبَّق على كل مساحات العمل) أو مساحة العمل (<project>/system_prompt/). لكل تبويب مفتاح إلحاق/استبدال خاص به ومعاينة Markdown خاصة به. - تُخزَّن الإدخالات كملفات بأحرف كبيرة:
OPUS_SYSTEM.md(استبدال) أوOPUS_APPEND_SYSTEM.md(إلحاق). المطابقة تقريبية — سلسلة فرعية غير حساسة لحالة الأحرف من معرّف النموذج المستنتَج من الإعدادات الفعّالة حاليًا، وفق الأولوية التالية: تعيين النموذج في proxy profile الخارجي النشط، ثم متغيّرا البيئةANTHROPIC_MODEL/CLAUDE_MODELعند التشغيل، ثمmodelفيsettings.json؛ وبدون إشارة إعداد لا يُحقن أي إدخال، لذا فإنopusيطابقclaude-opus-4-8[1m]بغض النظر عن الإصدار. مطابقة مساحة العمل تتقدم على المطابقة العامة؛ وداخل النطاق الواحد يفوز الاسم الأطول؛ والإدخال المطابق يحل تمامًا محل ملفات التبويب الافتراضي لذلك التشغيل. قيود معروفة: تبديل proxy profile أثناء الجلسة لا يُعاد تقييمه إلا بعد إعادة تشغيل جلسة claude؛ ولا يُؤخذ خيار--modelالمُمرَّر عبر وسائط إضافية في الاعتبار. - حفظ تبويب فارغ يحذف الإدخال. تغييرات النموذج التي تُجرى في منتصف الجلسة تسري عند إعادة التشغيل التالية. عيّن
CCV_DISABLE_AUTO_SYSTEM_PROMPT=1لتعطيل كل الحقن التلقائي. يمكنك إيداع<project>/system_prompt/عبر commit لمشاركة الموجهات مع فريقك، أو إضافته إلى.gitignoreلإبقائها خاصة.
- التقاط جميع طلبات API الصادرة من Claude Code في الوقت الفعلي، مع ضمان أنها هي النص الأصلي وليست سجلات تم اقتطاعها (هذا مهم جدًا!!!)
- التعرف التلقائي على طلبات Main Agent وSub Agent ووسمها (الأنواع الفرعية: Plan، Search، Bash)
- تدعم طلبات MainAgent ميزة Body Diff JSON، حيث تعرض الفرق عن طلب MainAgent السابق بشكل مطوي (تعرض فقط الحقول المتغيرة/الجديدة)
- يعرض كل طلب إحصائيات استخدام Token مدمجة (Token الإدخال/الإخراج، إنشاء/قراءة التخزين المؤقت، معدل الإصابة)
- متوافق مع Claude Code Router (CCR) وسيناريوهات الوكيل الأخرى — مع مطابقة أنماط مسار API كحل احتياطي
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=weiesky/cc-viewer&type=date&legend=top-left" />

MIT