واجهة claude لسطر الأوامر: الأعلام التي تغيّر النتائج
يتعلّم معظم الناس ثلاثة أشياء عن سطر أوامر Claude Code — claude وclaude -c وclaude -p — ثم يتوقفون. وهذا توقف معقول إن كنت لا تستخدمه إلا وأنت جالس أمامه. لكن ما إن تضع Claude Code في سكربت أو مهمة CI أو طابور خلفي أو بين يدي زميل، حتى تتوقف الأعلام عن كونها وسائل راحة، وتصير الفارق بين تشغيل يكلّف دولارًا وتشغيل يعلق ساعة كاملة.
هذه الصفحة ليست نسخة ثانية من جدول المرجع. إنها الترتيب الذي تتعلّم به هذه الواجهة، والأعلام التي تغيّر ما يحدث فعلًا، والفخاخ الأربعة التي كلّفت الناس وقتًا حقيقيًا.
- أنواع الجلسات الستة التي يمكنك بدؤها، وأي علم يختار كل نوع
- عقد الأعلام الخمسة الذي يجعل التشغيل بلا إشراف محدودًا وقابلًا للإجابة وقابلًا للتحليل
- لماذا يبدو تعديل --append-system-prompt ثم إعادة تشغيل --continue بلا أثر — قاعدة الموجّه المسجَّل
- كيف تختلف --bare و--safe-mode و--restricted، ومتى تلجأ إلى كل منها
- التحكم بالجلسات الخلفية من الصدفة: agents وattach وlogs وrespawn وrm وdaemon
- أزواج الأعلام التي يخلط الناس بينها: --tools مقابل --allowedTools مقابل --disallowedTools
ابدأ بالسؤال: أي نوع من الجلسات هذه؟
كل قرار آخر ينبثق من هذا. يستطيع Claude Code بدء ستة أشياء مختلفة جوهريًا، والعلم الذي يختار أحدها غالبًا أول ما تكتبه.
| ما تريده | العلم | ما يمنحك إياه |
|---|---|---|
| محادثة تتابعها | (بلا علم) | جلسة تفاعلية في هذه الطرفية |
| إجابة واحدة ثم الخروج | -p / --print | تشغيل غير تفاعلي، والمخرجات إلى stdout |
| عمل يتجاوز عمر هذه الطرفية | --bg / --background | جلسة خلفية؛ تطبع معرّفها وكيفية إدارتها |
| فرع معزول للتجريب | -w / --worktree | شجرة عمل git تحت <repo>/.claude/worktrees/<name> |
| عمل على أجهزة Anthropic | --cloud | جلسة سحابية، أو متابعة تُضاف إلى طابور جلسة قائمة |
| التحكم بهذه الجلسة من هاتفك | --rc / --remote-control | جلسة تفاعلية يمكن التحكم بها أيضًا من claude.ai أو تطبيق Claude |
اثنان منها لا يمكن جمعهما: --bg و-p متنافيان، لأن أحدهما يعود فورًا والآخر ينتظر إجابة. وإن أردت أمر صدفة لا جلسة Claude في الخلفية، فاقرن --bg بـ--exec:
Run the test suite as a background job, not a Claude session
claude --bg --exec 'pytest -x'
كما يتحقق --bg من ثقة مساحة العمل للمجلد قبل أن يبدأ — فالجلسة الخلفية في مستودع غير موثوق تفشل من البداية لا في منتصف الطريق.
عقد الأعلام الخمسة للتشغيل بلا إشراف
هذا أعلى ما في الصفحة قيمةً. تشغيل claude -p بلا إشراف له ثلاث طرق للإخفاق لا تعرفها الجلسة التفاعلية أصلًا: قد يتوقف عند طلبات صلاحيات لا أحد موجود للإجابة عنها، وقد يدور في حلقة أطول بكثير مما توقعت، وقد يُخرج نثرًا بينما كان سكربتك يحتاج إلى بيانات. خمسة أعلام تسدّ الثلاثة.
- `claude -p "query"` يطبع الإجابة ثم يخرج. كل ما يلي خاص بوضع الطباعة فقط، فهذا العلم هو البوابة لبقية الأعلام.
- القيمة الافتراضية `host`، وهي ترسل الطلبات إلى مضيف Agent SDK أو إلى `--permission-prompt-tool`. مرّر `--permission-prompts none` حين لا يستطيع أحد الإجابة، كما في مهمة cron أو خطوة CI: يتوقف التشغيل عن استشارة المضيف أو انتظاره، ويُرفض كل ما كان سيطلب إذنًا ما لم يسمح به خطاف `PermissionRequest`، ويُخبَر Claude ألا يعيد المحاولة. أما تشغيل `-p` بلا أي مضيف فيرفض هذه الطلبات أصلًا؛ وهناك يمنع العلم إعادة المحاولات في الأساس. يتطلب الإصدار v2.1.259 أو أحدث. اقرنه بقواعد `--allowedTools` ضيقة لتصير حالات الرفض نادرة لا دائمة.
- لا يوجد حد افتراضي للأدوار. `--max-turns 3` يخرج بخطأ عند بلوغ الحد. استخدمه سلك إنذار ضد الحلقات الوكيلة الجامحة، لا ميزانية.
- `--max-budget-usd 5.00` يتوقف حين يبلغ تقدير التكلفة من جهة العميل السقف. ويُحتسب إنفاق الوكلاء الفرعيين؛ وبعد بلوغه يفشل إطلاق وكيل فرعي آخر برسالة `Budget limit reached` ويُوقَف الوكلاء الفرعيون الخلفيون العاملون. يتطلب فرض السقف الإصدار v2.1.217 أو أحدث.
- `--output-format json` يعطيك غلافًا منظَّمًا. و`--json-schema '<schema>'` يذهب أبعد: يتحقق Claude Code من الإجابة النهائية مقابل JSON Schema الخاص بك ويُخطئ مسبقًا إن كان المخطط غير صالح، فلا يحتاج سكربتك قط إلى تطبيق تعابير نمطية على نثر.
A CI step that cannot hang, cannot loop forever, and cannot overspend
claude -p "Review the staged diff and list bugs" \ --permission-prompts none \ --allowedTools "Read" "Bash(git diff *)" \ --max-turns 6 \ --max-budget-usd 2.00 \ --output-format json
- يقارن Claude Code السقف بتقدير التكلفة الخاص به من جهة العميل، وقد يختلف عما يُحاسَب عليه فعلًا.
- عندما تعود إلى محادثة بـ--continue أو --resume، لا تُحتسب المجاميع المستعادة من تشغيلات سابقة ضمن السقف — فثلاث تشغيلات مستأنفة تحت سقف 2 دولار قد تنفق معًا أكثر من 2 دولار.
- عامله كقاطع دائرة لتشغيل واحد. وللحصول على سقف حقيقي لحساب أو مشروع كامل، راجع Hard Spend Caps.
وللاطلاع على الموقف الكامل من السماح بمتابعة التشغيل دون إنسان — ما يُسمح به وما يُحجب وما يُسجَّل — راجع تحصين التشغيلات المستقلة والوضع بلا واجهة وAgent SDK. أما للسقوف على مستوى المزوّد فراجع Hard Spend Caps.
عائلة موجّه النظام، والفخ الكامن فيها
خمسة أعلام تشكّل موجّه النظام. أربعة منها تحدد نصه؛ والخامس يقرر هل تحتفظ المحادثة بالنص الذي بدأت به.
| العلم | ما يفعله |
|---|---|
--system-prompt | يستبدل الموجّه الافتراضي كاملًا بنصك |
--system-prompt-file | يستبدله بمحتوى ملف |
--append-system-prompt | يُلحق نصك بالموجّه الافتراضي |
--append-system-prompt-file | يُلحق محتوى ملف بالموجّه الافتراضي |
--system-prompt-snapshot | off يعيد بناء الموجّه عند كل طلب؛ on (الافتراضي) يعيد استخدام الموجّه المسجَّل |
الاختيار بين الإلحاق والاستبدال اختيار هوية. الإلحاق يُبقي إرشادات الأدوات الافتراضية في Claude Code وتعليمات السلامة وأعراف البرمجة، ويضع قواعدك فوقها — وهو مناسب لتعليمات كل تشغيل أو تنسيق المخرجات أو سياق المشروع. أما الاستبدال فيُسقط كل ذلك، بما فيه إرشادات الأدوات، ولذلك لا يصلح إلا حين لا تكون الواجهة مساعد برمجة حقًا: وكيل غير برمجي في خط معالجة لا يراقبه أحد. وإن استبدلت، فأنت المسؤول عن كل ما تظل المهمة تحتاجه.
يمكنك الجمع بينهما. تمرير علم إلحاق مع علم استبدال يستبدل الافتراضي ثم يُلحق نصك. ومنذ v2.1.283 يمكنك أيضًا تمرير علم مع صيغته الملفية — --append-system-prompt و--append-system-prompt-file — فيستخدم Claude Code كليهما، ويأتي محتوى الملف أولًا أيًّا كان الترتيب الذي كتبتهما به.
- يبني Claude Code موجّه النظام مرة واحدة، عند أول طلب في المحادثة، ويسجّله في الجلسة.
- وإلى أن تُضغط المحادثة، يستخدم كل طلب لاحق ذلك الموجّه المسجَّل — بما في ذلك بعد --resume أو --continue.
- فتعدّل نص --append-system-prompt وتعيد تشغيل claude --continue ولا يتغير شيء. العلم ليس معطّلًا؛ المحادثة ما زالت تستخدم التسجيل.
- يسري النص الجديد حين تُضغط المحادثة، أو في محادثة جديدة كليًا.
- لتكرار صياغة النص عبر تشغيلات --continue، مرّر --system-prompt-snapshot off فيُعاد بناء الموجّه عند كل طلب. يتطلب الإصدار v2.1.257 أو أحدث.
وثمة حيلة أخرى تستحق المعرفة في موجّه استبدال يمزج تعليمات ثابتة بسياق خاص بكل تشغيل. ضع بينهما سطرًا لا يحتوي إلا على __SYSTEM_PROMPT_DYNAMIC_BOUNDARY__: يقسم Claude Code عند أول سطر كهذا ويزيله، فيبقى الجزء العلوي مخزّنًا مؤقتًا بينما يتغير الجزء السفلي. يتطلب الإصدار v2.1.275 أو أحدث. وسبب أهمية ذلك لفاتورتك هو موضوع التخزين المؤقت للموجّهات.
وبالنسبة لأحمال العمل المبرمجة متعددة المستخدمين، ينقل --exclude-dynamic-system-prompt-sections السياق الخاص بكل مستخدم، مثل موقع الذاكرة التلقائية، من موجّه النظام إلى أول رسالة مستخدم — فتتشارك المهمة نفسها على أجهزة مختلفة بادئة مخزّنة واحدة. ولا ينطبق إلا على الموجّه الافتراضي، ويُتجاهل حين تضبط --system-prompt أو --system-prompt-file.
ثلاثة أعلام تُوقف أشياء، وليست متماثلة
يلجأ الناس إليها بالتبادل ثم يتساءلون لماذا لم يتحرك العَرَض. إنها تحل ثلاث مشكلات مختلفة.
--bare | --safe-mode | --restricted | |
|---|---|---|---|
| المشكلة التي يحلها | البدء بطيء جدًا لاستدعاء مبرمج | إعداداتي معطوبة ولا أعرف أي جزء | يجب ألا تلمس حزمة التقييم هذا الجهاز المشترك |
| CLAUDE.md والمهارات والأوامر والوكلاء الفرعيون والإضافات وMCP والذاكرة التلقائية | لا تُكتشف | لا تُحمَّل | لا يُحمَّل إلا الإعدادات المُدارة و--settings |
| الأدوات المضمّنة | Bash وقراءة الملفات وتحرير الملفات | تعمل بشكل طبيعي | تُزال الأدوات التي تشغّل الأوامر/الشيفرة وWebFetch ما لم تُسمَّ واحدة واحدة في --tools |
| الوصول إلى الملفات | عادي | عادي | محصور في مجلدات العمل |
bypassPermissions | مسموح | مسموح | مرفوض |
| السياسة المُدارة | تنطبق | ما تزال تنطبق، بما في ذلك خطافات السياسة وشريط الحالة | تنطبق |
| أثر جانبي | يضبط CLAUDE_CODE_SIMPLE | يضبط CLAUDE_CODE_SAFE_MODE | يرفض إنشاء جلسات سحابية |
اقرأ الجدول كتدرّج في النية: --bare من أجل السرعة، و--safe-mode من أجل التشخيص، و--restricted من أجل الاحتواء. وتفصيل مفيد: المهارات في مجلد تمرره بـ--add-dir تُحمَّل رغم --bare، وهكذا تُبقي قدرة واحدة بعينها في تشغيل مجرَّد من كل شيء سواها.
--safe-mode هو أول ما تلجأ إليه حين يسوء شيء ولا تعرف هل المشكلة في Claude Code أم في إعداداتك — بما في ذلك حين تحاول معرفة هل تخصيص ما هو ما يطلق الرجوع التلقائي بين النماذج. اقرنه بـclaude doctor الذي يطبع تشخيصات للتثبيت والإعدادات للقراءة فقط دون بدء أي جلسة. (أمر /doctor داخل الجلسة شيء مختلف: فهو يستطيع أيضًا تطبيق إصلاحات.) مزيد من تصحيح الأخطاء بدءًا من العَرَض في استكشاف أخطاء Claude Code. يتطلب --restricted الإصدار v2.1.248 أو أحدث.
التحكم بالجلسات الخلفية من الصدفة
متى بدأت جلسات بـ--bg صارت الطرفية مستوى تحكم. لدورة الحياة كاملةً أمر، ولا شيء منها يتطلب فتح الواجهة التفاعلية.
- يفتح عرض الوكلاء لمراقبة الجلسات الخلفية المتوازية وتوزيعها. وللبرمجة النصية يطبع `--json` الجلسات النشطة كمصفوفة JSON، ويضيف `--json --all` الجلسات المكتملة. ويحصر `--cwd <path>` النتائج بالجلسات التي بدأت تحت ذلك المجلد. فتح العرض نفسه يحتاج طرفية تفاعلية؛ أما صيغة JSON فلا.
- `claude logs <id|name>` يطبع المخرجات الأخيرة لجلسة خلفية. ومنذ v2.1.290 يمكنك تمرير جزء من اسم جلسة تعمل بدلًا من معرّفها — فغالبًا يكفي `claude logs auth`.
- `claude attach <id|name>` يجلب جلسة خلفية إلى هذه الطرفية. ومطابقة الاسم الجزئي تتطلب كذلك v2.1.290 أو أحدث.
- `claude respawn <id>` يعيد تشغيل جلسة، عاملة أو متوقفة، مع بقاء محادثتها سليمة. و`--all` يعيد تشغيل كل الجلسات العاملة — وهو الخطوة المناسبة بعد ترقية الملف التنفيذي لـ Claude Code.
- `claude stop <id>` (وكذلك `claude kill`) يوقف جلسة. و`claude rm <id>` يزيلها من القائمة؛ ويبقى السجل على جهازك ويمكن الوصول إليه بـ`claude --resume`. وإن رُفضت الإزالة بسبب شجرة عمل الجلسة، فإن الرفض يطبع العلم الدقيق الذي ينبغي تمريره تاليًا — `--discard-unpushed` (v2.1.260+) أو `--force-remove-worktree` (v2.1.268+).
- تستضيف الجلسات الخلفية عملية مشرِف. يطبع `claude daemon status` حالتها وإصدارها ومجلد المقبس وعدد العاملين، ويخرج بالرمز 1 إن لم تكن تعمل. ويتتبع `claude daemon logs` الملف `~/.claude/daemon.log`. ويعيد `claude daemon stop --any --keep-workers` تشغيل المشرِف مع إبقاء الجلسات حية ليعيد المشرِف التالي الاتصال بها.
أما المقابل لهذا من داخل الجلسة — كيف يُنقل العمل إلى الخلفية، وما الذي ينتقل معه — ففي المهام الخلفية و/loop والجدولة.
أزواج الأعلام التي يخطئ الناس فيها
- --tools يقيّد الأدوات المضمّنة الموجودة. --allowedTools يحدد أي الاستدعاءات تتخطى طلب الإذن. --disallowedTools يرفض الاستدعاءات. هذه ثلاث مهام مختلفة، وتمرير الخطأ منها أشيع سبب لـ«لماذا ما زال يسألني».
- --tools لا يؤثر في أدوات MCP إطلاقًا. ولإزالتها أيضًا أضف --disallowedTools "mcp__*".
- الاسم المجرد في --disallowedTools يزيل الأداة من سياق Claude؛ أما القاعدة المحددة النطاق مثل Bash(rm *) فتُبقي الأداة متاحة وترفض الاستدعاءات المطابقة فقط.
- --dangerously-skip-permissions يبدأ في bypassPermissions. أما --allow-dangerously-skip-permissions فيضيف ذلك الوضع إلى دورة Shift+Tab فقط، فتبدأ في وضع الخطة وتبدّل لاحقًا. والثاني هو ما أردته فعلًا في الغالب.
- --add-dir يمنح الوصول إلى الملفات، لكن Claude Code لا يكتشف معظم إعدادات .claude/ من تلك المجلدات. إضافة مجلد ليست مثل تبنّي إعداداته.
- --desktop لا يقبل موجّهًا ولا أعلامًا أخرى سوى --verbose وأعلام --debug، لأن تطبيق سطح المكتب يبدأ الجلسة بنفسه. يتطلب الإصدار v2.1.285 أو أحدث.
تفصيل صغير يريح: إن أخطأت في كتابة أمر فرعي اقترح Claude Code أقرب مطابقة وخرج دون بدء جلسة — فـclaude udpate يطبع Did you mean claude update? بدلًا من فتح محادثة لم ترد بدءها.
اختبر نفسك
Check yourself
0/3- اختر نوع الجلسة أولًا — فالعلم الذي يحدده يقيّد كل علم آخر يمكنك تمريره.
- يحتاج التشغيل بلا إشراف إلى خمسة أعلام لا علمًا واحدًا: -p و--permission-prompts none و--max-turns و--max-budget-usd وتنسيق مخرجات منظَّم.
- عامل --max-budget-usd كقاطع دائرة لتشغيل واحد، لا كسقف للفاتورة. فهو تقدير من جهة العميل والمجاميع المستأنفة تفلت منه.
- تسجّل المحادثات موجّه نظامها عند أول طلب. فإن بدا تعديل الموجّه متجاهَلًا فهذا هو السبب — استخدم --system-prompt-snapshot off أثناء التكرار.
- --bare للسرعة، و--safe-mode للتشخيص، و--restricted للاحتواء. واختيار الخطأ منها يضيّع عصرًا كاملًا.
- --help ناقص بحكم التصميم. ومرجع CLI هو مصدر الحقيقة، وحدود الإصدارات مهمة — تحقق من claude -v قبل أن تلوم علمًا.
التالي
- الوضع بلا واجهة وAgent SDK — ماذا تبني حين لا يكفي استدعاء
-pلمرة واحدة - settings.json: نظام الإعدادات — الموطن الدائم للأعلام التي تظل تعيد كتابتها
- استكشاف أخطاء Claude Code — تصحيح أخطاء ينطلق من العَرَض، بدءًا من
--safe-mode