دليل CLI المرجعي: الأوامر والخيارات المتاحة
📚 تنقل السلسلة: المقال السابق 33 الخطافات (Hooks) علمك كيفية أتمتة المهام وضمان حماية المشروع برمجياً. وينتقل هذا المقال لخطوة أساسية وبسيطة - أمر
claudeالذي تكتبه في الطرفية، ما هي الخيارات والمعلمات المتاحة معه؟ سنشرح الأوامر، والخيارات، وقنوات التمرير، وقيم مخارج الأخطاء في دليل مرجعي واحد يسهل عليك الرجوع إليه في أي وقت.
"هل يمكن كتابة خيارات ومعلمات مع أمر claude؟ أكتب دائماً كلمة claude بمفردها للدخول للمحادثة."
"نعم، بالتأكيد! يمكنك مثلاً تشغيل أمر claude -p 'صغ خلاصة لهذه التعديلات' لحفظ المخرجات في ملف مباشرة دون الدخول للواجهة التفاعلية."
"انتظر لحظة - ما هو خيار -p؟ حاولت قراءة تفاصيل claude --help ولم أجد شرحاً كافياً."
يعتبر هذا الاستفسار شائعاً جداً. فالكثير من المطورين يستخدمون Claude Code لأشهر دون معرفة الخيارات الكثيرة المتاحة مع أمر التشغيل ويكتفون بالدخول للواجهة التفاعلية. ولا يلام المطور على ذلك - فالأداة نفسها تذكر عند تشغيل المساعدة ملاحظة هامة: لا يعرض خيار المساعدة claude --help كافة المعلمات المتاحة برمجياً. لذا يصعب عليك معرفتها بالكامل من سطر الأوامر فقط.
خلال المقالات السابقة، ركزنا على "الواجهة التفاعلية": الدخول، الحوار، ومتابعة تنفيذ الكود. ولكن أداة claude تمثل في الأساس واجهة سطر أوامر (CLI)، وتتجاوز قدرات سطر الأوامر مجرد "فتح نافذة حوار" - حيث يدعم التمرير بقنوات الاتصال، والدمج مع النصوص البرمجية، وتتبع قيم مخارج الأخطاء لتحديد نجاح العمليات. ويجمع هذا المقال دليل المراجع لـ claude: الأوامر والخيارات وقنوات التمرير وقيم الأخطاء في جداول تفصيلية جاهزة للرجوع إليها.
بعد قراءة هذا المقال، ستحصل على:
- قائمة الأوامر الأساسية لـ
claude: التشغيل، إرسال الشروط، قنوات التمرير، استئناف الجلسات، التحديث، وتسجيل الدخول. - دليل الخيارات الأكثر استخداماً (
-pو--modelو-cو--resumeو--permission-modeو--add-dirوغيرها). - خيارات التشغيل الخلفي (headless) وقنوات التمرير: كيفية دمج Claude في النصوص البرمجية، واستخدامه كبرنامج تدقيق (linter)، واستخراج البيانات بـ
jq. - قراءة وتتبع قيم مخارج الأخطاء لتحديد نجاح أو فشل العمليات برمجياً.
- تطبيق عملي متكامل لتشغيل Claude Code خلفياً: إرسال الأوامر، التمرير، استلام بيانات JSON، وفحص مخرج الخطأ.
01 الأوامر (Commands) مقابل الخيارات (Flags)
قبل تصفح الجداول، دعنا نوضح الفرق بين المفهومين لتفادي اللبس. فالسطر الذي تكتبه في الطرفية يتكون من جزئين أساسيين: الأوامر (commands) والخيارات (flags).
تشبيه: إرسال طرد بالبريد. كلمة claude تمثل "عملية الإرسال"؛ وتحدد كلمات مثل update أو mcp نوع العملية الفرعية (الاسم البرمجى لها هو الأمر)، لتخبر المكتب أنك لا تريد إرسال طرد عادي بل تريد "تحديث البرنامج" أو "تهيئة الـ MCP"؛ وتحدد الرموز المكتوبة لاحقاً مثل -p أو --model الخيارات الإضافية للطرد (الخيارات أو المعلمات)، لتحدد كيف تتم العملية - هل تريد الشحن السريع؟ وما هو النموذج المفضل للاستخدام؟ تختار أمراً فرعياً واحداً، وتحدد خيارات إضافية متعددة معه.
تأمل الأمثلة التالية:
claude update
claude -p "اشرح دور هذه الدالة" --model sonnet- السطر الأول:
claudeهو البرنامج الأساسي، وupdateهو الأمر الفرعي (مهمة فرعية تنتهي بإتمام العملية). - السطر الثاني: لم نكتب أمراً فرعياً بعد
claudeللدخول للمحادثة مباشرة؛ بينما تمثل الرموز-pو--modelخيارات إضافية لتحديد مسار الجلسة ونوع النموذج المطبق.
الفصل بين المفهومين يسهل عليك قراءة وثائق المراجع - حيث يتم تنظيمها في جداول منفصلة للأوامر وأخرى للخيارات. فإذا كنت تبحث عن "كيفية التحديث أو تسجيل الدخول أو إعداد الـ MCP" ← فابحث في جدول الأوامر؛ وإذا كنت تبحث عن "تعديل النموذج أو تجاوز تنبيهات الموافقة أو طباعة المخرجات خلفياً" ← فابحث في جدول الخيارات.
وهناك تفصيل ذكي يوفره النظام لتصحيح الأخطاء يذكره التوثيق الرسمي:
عند كتابة أمر فرعي خاطئ، يعرض Claude Code الاسم الأقرب المقترح للعمل وينتهي دون تشغيل الجلسة بالخطأ. على سبيل المثال، كتابة
claude udpateستطبع رسالة تنبيهDid you mean claude update?.
يمنعك هذا الإجراء من بدء جلسات محادثة خاطئة عند ارتكاب أخطاء كتابية سريعة.
💡 خلاصة سريعة: مكونات سطر الأوامر - الأمر الفرعي يمثل عملية محددة تنتهي بانتهاء مهمتها (
updateمثلاً)، والخيارات تمثل معلمات إضافية لتوجيه وضبط تشغيل الجلسة (-pأو--model).
02 الأوامر الأساسية وطرق تشغيل الجلسة
لنبدأ بالأوامر الأساسية. قمنا بتصنيف الأوامر الأكثر استخداماً في ثلاث مجموعات أساسية مع الشرح والتعليمات:
المجموعة الأولى: بدء تشغيل الجلسة (الخيار الشائع)
تستخدم للدخول وبدء المحادثة:
# 1. الدخول الافتراضي للواجهة التفاعلية
claude
# 2. بدء المحادثة مع إرسال سؤال افتراضي كبداية للجلسة
claude "اشرح بنية هذا المشروع"
# 3. تشغيل خلفي (headless) وطباعة الإجابة مباشرة دون الدخول للواجهة
claude -p "اشرح دور هذه الدالة"الخيار الثالث claude -p يمثل مفتاح الأتمتة والتشغيل الخلفي - حيث لا يفتح الواجهة الرسومية للطرفية بل يكتفي بطباعة إجابة السؤال مباشرة وينتهي، مما يجعله مناسباً للدمج مع النصوص البرمجية وقنوات التوصيل. وسنفصله في القسم 04.
المجموعة الثانية: استئناف ومتابعة الجلسات السابقة
تحدثنا في المقال 19 عن مشكلة "فقدان الذاكرة" للوكيل - حيث يبدأ الجلسة الجديدة كشخص لا يعرف تفاصيل محادثاتك السابقة. وتُستخدم الأوامر التالية لاستئناف الجلسات والحفاظ على الذاكرة:
# استئناف المحادثة الأخيرة للمجلد الحالي
claude -c
# (يمثل -c اختصار خيار --continue)
# استئناف محادثة محددة بالاسم أو المعرف المخصص لها
claude -r "auth-refactor" "أكمل تعديل ملفات الهوية"
# (يمثل -r اختصار خيار --resume)الفرق الجوهري بين الخيارين:
-c(--continue): يستأنف المحادثة الأخيرة للمجلد الحالي تلقائياً دون حاجة لمعرفة معرف الجلسة.-r(--resume): يستأنف محادثة محددة بالاسم أو المعرف؛ وفي حال عدم كتابة المعرف، يعرض قائمة بالجلسات السابقة لتختار منها.
تشبيه: استكمال الحوار مع زميل العمل. خيار -c يشبه قولك "دعنا نواصل حديثنا الأخير" - فالحديث يرتبط تلقائياً بآخر موضوع ناقشتماه دون حاجة لتوضيحه؛ وخيار -r يشبه قولك "دعنا نواصل نقاشنا حول موضوع إعادة هيكلة ملفات الهوية الذي بدأناه الأسبوع الماضي" - حيث تحدد موضوعاً بعينه للرجوع إليه.
يُنصح باستخدام -c عند العمل المستمر على مهمة واحدة لتوفير الوقت؛ واستخدام -r عند التنقل بين مهام متعددة ومستقلة (كفحص خطأ برمجى في جهة، وكتابة اختبارات في جهة أخرى) - بشرط تسمية الجلسة عند بدئها باستخدام خيار تسمية الجلسة --name (واختصاره -n) لتسهيل العثور عليها لاحقاً بالاسم وتفادي متاهة معرفات الـ UUID الطويلة. وتتم التهيئة والاستدعاء كالتالي:
# بدء الجلسة مع تسميتها
claude -n "login-refactor"
# استئناف الجلسة لاحقاً بالاسم المخصص لها مباشرة
claude -r "login-refactor"ويذكر التوثيق دور خيار التسمية: يعرض الاسم المخصص في قائمة استئناف الجلسات /resume وفي شريط عنوان الطرفية، لتتمكن من استدعائها بالاسم مباشرة.
ويمكنك دمج الخيارين -c و -p معاً: كتابة claude -c -p "هل توجد أخطاء في ملف التنسيق؟" تعني "استمر في المحادثة الأخيرة للمجلد، واطبع الإجابة خلفياً دون الدخول للواجهة". ويستخدم هذا الدمج بكثرة لتمرير وتسيير مهام متسلسلة برمجياً دون تدخل يدوي (كما سنرى في القسم 04).
المجموعة الثالثة: عمليات الصيانة والحساب الشخصي
أوامر التحديث وإدارة الحساب:
# تحديث أداة Claude Code للإصدار الأخير
claude update
# تثبيت إصدار محدد للأداة (stable للمستقر، latest للأحدث، أو رقم الإصدار 2.1.118)
claude install stable
# تسجيل الدخول لحسابك في Anthropic
claude auth login
# التحقق من حالة تسجيل الدخول (يرجع مخرج خطأ 0 للنجاح و 1 للفشل)
claude auth statusخيار تثبيت إصدارات محددة claude install يفيد في الحالات الطارئة - كحدوث خطأ غير متوقع في تحديث جديد، فتتمكن من كتابة claude install 2.1.x للعودة للإصدار المستقر السابق وتثبيته لحين معالجة المشكلة.
أما أمر فحص حالة الحساب claude auth status وقيم مخرجه (0 أو 1) فيمثل أساس فحص صلاحيات النصوص البرمجية قبل تشغيلها (سنوضح ذلك في القسم 05).
تتطلب هذه العمليات الاتصال بخوادم Anthropic، وتحقق من تهيئة إعدادات الشبكة والـ proxy بنجاح عند تعثر التحديث.
💡 خلاصة سريعة: ثلاثة مسارات للأوامر - بدء تشغيل الجلسات (
claude/claude "سؤال"/claude -p)، واستئناف المحادثات السابقة (-cللأخيرة و-rبالاسم)، وإدارة البرنامج والحساب (update/install/auth).
03 خيارات التشغيل والمعلمات الأكثر استخداماً
ننتقل لدراسة الخيارات البرمجية (Flags) الأكثر استخداماً وتأثيراً في تهيئة الجلسات.
-p / --print: التشغيل الخلفي وطباعة المخرجات
الخيار الأهم للأتمتة. عند تفعيله، يتم إلغاء الواجهة التفاعلية - ليقوم Claude بقراءة السؤال وتنفيذ المهام وطباعة الإجابة مباشرة في الطرفية وينتهي.
claude -p "ما هو دور وحدة الهوية auth في هذا المجلد؟"يمثل الخيار بوابة دمج Claude Code في نصوص الأتمتة وقنوات توصيل سطر الأوامر (headless mode).
--model: تحديد نموذج التشغيل للجلسة
لتحديد وتعيين نموذج تشغيل مخصص لهذه الجلسة، ويلغي هذا التحديد خيار النموذج الافتراضي المعين في ملف التهيئة:
claude --model sonnet
claude --model opus
claude --model claude-sonnet-4-6يقبل المعرفات السريعة (sonnet و opus) أو أسماء النماذج الكاملة. وقمنا بتفصيل الفروق والاختيارات في المقال 05.
--permission-mode: تحديد وضع الصلاحيات وبدء الجلسة
لتحديد وتعيين وضع الصلاحيات (缰绳) عند تشغيل الجلسة، ويلغي خيار defaultMode المكتوب في الإعدادات:
claude --permission-mode planالخيارات المتاحة للوضع كما يذكرها التوثيق:
يقبل خيارات:
default(الافتراضي)، وacceptEdits(الموافقة التلقائية على تعديل الملفات)، وplan(التخطيط دون تعديل)، وauto(الوضع التلقائي للمهام البسيطة), وdontAsk(عدم السؤال)، وbypassPermissions(تجاوز الصلاحيات).
سنفصل سلوك وطبيعة عمل كل وضع في المقال القادم (المقال 35).
--dangerously-skip-permissions: خيار التجاوز الكلي للصلاحيات
خيار يتطلب اهتماماً وحذراً كبيراً. تفعيله يطابق تعيين وضع الصلاحيات على وضع التجاوز الكلي --permission-mode bypassPermissions:
claude --dangerously-skip-permissionsبموجب هذا الخيار، يتم إلغاء كافة تنبيهات طلب الموافقة للأدوات وتعديل الملفات وأوامر Bash ويتحرك Claude بكامل الحرية في جهازك. ووجود كلمة dangerously (بخطورة) في اسم الخيار تمثل تنبيهاً أمنياً صريحاً من Anthropic.
قاعدة الأمان الصارمة: يُمنع تشغيل هذا الخيار إلا في بيئات معزولة وآمنة تماماً - كالحاويات البرمجية (containers) المغلقة أو مستودعات الاختبارات غير المرتبطة ببيانات حقيقية. وتجنب تشغيله نهائياً في مستودعات ومشاريع العمل الحقيقية. ولتقليل الأسئلة في نصوص الأتمتة، يُفضل استخدام خيار --allowedTools لتحديد أدوات آمنة معينة، أو استخدام وضع --permission-mode acceptEdits للسماح بتعديل الملفات فقط - لكونهما أكثر أماناً من التجاوز الكلي.
--add-dir: تزويد الجلسة بصلاحية الوصول لمجلدات إضافية
يقتصر نطاق عمل Claude الافتراضي على المجلد الذي تم تشغيله فيه. ويستخدم خيار --add-dir لتمرير مجلدات إضافية ليتمكن من قراءة وتعديل ملفاتها:
claude --add-dir ../apps ../libيفيد في المشاريع المتعددة (monorepos) لتعديل المكتبات التابعة للمشروع. وينبه التوثيق الرسمي لتفصيل هام:
يمنح الخيار صلاحية الوصول للملفات وقراءتها وتعديلها فقط؛ ولا يقوم بتحميل ملفات التهيئة (مثل
CLAUDE.mdأو الإعدادات) المتوفرة في تلك المجلدات الإضافية.
--output-format: تحديد تنسيق طباعة المخرجات
يعمل مع خيار التشغيل الخلفي -p لتحديد تنسيق البيانات الصادرة:
claude -p "لخص بنية المجلد" --output-format jsonالخيارات المتاحة: text (الافتراضي، نص عادي)، و json (بيانات مخرجات هيكلية بصيغة JSON تحتوي على تفاصيل الجلسة وتكلفة الرموز)، و stream-json (تدفق بيانات سطر بسطر بصيغة JSON للعمليات التفاعلية). لاستخراج تفاصيل الجلسة وتكلفتها برمجياً، يتم اختيار تنسيق json وتمريره لبرنامج jq (سنوضح ذلك في القسم 04).
--allowedTools / --disallowedTools: القوائم البيضاء والسوداء للأدوات
لتحديد أدوات مسموحة يتم تشغيلها وتجاوز تنبيهات الموافقة لها، أو أدوات ممنوعة يُحظر تشغيلها نهائياً لتفادي توقف النصوص البرمجية بانتظار إدخال المستخدم:
claude -p "شغل الاختبارات وصحح الأخطاء" --allowedTools "Bash,Read,Edit"تُكتب الأدوات المسموحة والممنوعة باتباع صياغة الصلاحيات (المقال 20)، ككتابة "Bash(git diff *)" للسماح بأوامر git diff فقط.
والفرق بين --allowedTools وخيار --tools: الأول يتخطى تنبيهات الموافقة للأداة مع الحفاظ على وجودها، والثاني يحذف الأداة بالكامل من سياق وعلم Claude ليمنعه من محاولة التفكير فيها.
معلمات ضبط وحماية التشغيل الخلفي
خيارات لحماية وتفادي خروج الأتمتة عن المسار وضمان توقف الجلسة:
# تحديد الحد الأقصى لعدد جولات الحوار والتفكير (turns) وينتهي بالخطأ عند تجاوزه
claude -p --max-turns 3 "سؤالك"
# تحديد الحد الأقصى لتكلفة الجلسة بالدولار وينتهي عند تجاوزه
claude -p --max-budget-usd 5.00 "سؤالك"تساعدك معلمة --max-turns في حماية حسابك من المشاكل البرمجية الشائعة - كأن يدخل Claude في محاولات فحص وإعادة بناء خاطئة مكررة تستهلك رموزاً وتكلفة دون توقف. تعيين حد أقصى للخطوات يضمن توقف العملية بالخطأ وتنبيهك.
💡 خلاصة سريعة: خيارات هامة -
-pللطباعة خلفياً،--modelللنموذج،--permission-modeلوضع الصلاحيات،--add-dirلمجلدات إضافية،--output-format jsonللبيانات الهيكلية، و--allowedToolsللسماح التلقائي للأدوات؛ واستعين بـ--max-turnsكصمام أمان للنصوص البرمجية.
04 خيارات التشغيل الخلفي وقنوات التمرير (Pipelines)
يمثل التشغيل الخلفي claude -p الأداة الأقوى لدمج الذكاء الاصطناعي في بيئات سطر الأوامر - حيث يتحول Claude لعنصر تفاعلي في سطر الأوامر يستقبل البيانات من قنوات التمرير ويعيد إرسال النتائج للعمليات التالية.
تشبيه: وحدة إنتاج في خط التجميع. الجلسة التفاعلية تشبه جلوسك مع العامل لتلقينه المهام خطوة بخطوة؛ والتشغيل الخلفي يشبه ربط محطة عمل بمسار خط الإنتاج - تستقبل المدخلات من المحطة السابقة (مثل cat أو git diff)، وتعالج البيانات، وترسل النتائج للمحطة التالية (كحفظها في ملف أو تمريرها لبرنامج jq) تلقائياً دون تدخل بشري.
التمرير البرمجى واستقبل البيانات عبر stdin
يقرأ Claude البيانات الممررة عبر قناة المدخلات القياسية (stdin) في وضع التشغيل الخلفي، مما يتيح لك ربطه بالأوامر المعتادة باستخدام الرمز |:
cat build-error.txt | claude -p 'اشرح سبب الخطأ البرمجى الموضح واقترح حلاً' > output.txtمسار البيانات: يقرأ أمر cat ملف الأخطاء ← يمرر محتواه لـ claude -p ← يقوم بمعالجة وتحليل الخطأ وكتابة الحل ← ويحفظ أمر > المخرجات في ملف output.txt بصمت دون ظهور واجهات.
يحدد التوثيق حداً أقصى لحجم البيانات الممررة عبر stdin بقيمة 10MB بدءاً من إصدار v2.1.128، وتجاوز هذا الحجم سيؤدي لتوقف الجلسة بالخطأ. وللبيانات الكبيرة، يُفضل حفظها في ملف والإشارة للملف في نص السؤال بدلاً من التمرير المباشر.
استخدامه كأداة تدقيق مخصصة للمشروع (Linter)
يمكنك دمج هذا التمرير في ملفات بناء وإدارة المشروع. يوضح التوثيق مثالاً لدمج فحص الأخطاء في ملف package.json:
{
"scripts": {
"lint:claude": "git diff main | claude -p \"you are a typo linter. for each typo in this diff, report filename:line on one line and the issue on the next. return nothing else.\""
}
}تشغيل npm run lint:claude يمرر التغييرات الحالية لـ Claude ليقوم بفحص الأخطاء النصية وصياغة قائمة بها. والجميل هنا أننا لم نمنح Claude صلاحيات تشغيل الأوامر (Bash) لقراءة التغييرات، بل قمنا بتمرير البيانات له مباشرة لحصر عمله على فحص النصوص.
استخراج البيانات البرمجية باستخدام jq
للحصول على بيانات هيكلية يسهل استخراج الحقول منها، عين التنسيق كـ JSON ومرر المخرجات لبرنامج jq:
# استخراج حقل الإجابة النصية فقط وحذف بقية البيانات
claude -p "ما هي لغة بايثون؟" --output-format json | jq -r '.result'تحتوي بيانات الـ JSON الصادرة على تفاصيل الجلسة: النص في .result والمعرف في .session_id والتكلفة في .total_cost_usd . وتُستخدم هذه البيانات لربط وتمرير المهام المتسلسلة برمجياً عن طريق حفظ المعرف وتمريره في أمر الاستئناف --resume:
session_id=$(claude -p "ابدأ فحص الكود" --output-format json | jq -r '.session_id')
claude -p "أكمل عملية الفحص السابقة" --resume "$session_id"تزويد الجلسة الخلفية بشخصية مؤقتة
لتوجيه ونصح Claude بالالتزام بشخصية محددة في هذه الدورة الخلفية (مثل: "تصرف كمراجع أكواد خبير أمني")، استخدم خيار --append-system-prompt لإضافة النص في نهاية تعليمات النظام:
gh pr diff "$1" | claude -p \
--append-system-prompt "You are a security engineer. Review for vulnerabilities." \
--output-format jsonالفرق الجوهري بين خياري الإضافة والاستبدال: خيار --append-system-prompt يضيف التوجيه في نهاية تعليمات النظام ليركز عليها مع الحفاظ على قدرات المساعد وسلامة الأوامر الافتراضية؛ وخيار --system-prompt يستبدل ويلغي تعليمات النظام الافتراضية بالكامل (بما فيها آليات معالجة الأدوات والصلاحيات) ويجب استخدامه بحذر وعند رغبتك في بناء سلوك مستقل بالكامل عن طبيعة عمل الأداة الافتراضية.
خيار --bare لتسريع عمل النصوص البرمجية
خيار هام ومخصص للتشغيل البرمجى. يوضح التوثيق دوره كالتالي:
وضع التشغيل البسيط: يلغي تفعيل وتحميل الخطافات (hooks)، والمهارات (skills)، والملحقات (plugins)، وخوادم الـ MCP، والذاكرة التلقائية، والبحث عن ملف
CLAUDE.mdلتسريع بدء تشغيل الأداة في العمليات الخلفية.
يلغي خيار --bare تحميل تفضيلات جهازك وإعدادات المشروع والاكتفاء بالقدرات الأساسية للوكيل (Bash وقراءة وكتابة الملفات)، مما يضمن سرعة التشغيل، وتوحيد مخرجات العمل عبر الأجهزة المختلفة (دون تأثرها بمهارات أو إعدادات شخصية مخصصة للمطور). وهو ممتاز للاستخدام في خوادم البناء المستمر (CI). ويشير التوثيق إلى نية جعل هذا الوضع افتراضياً لخيارات التشغيل الخلفي -p في الإصدارات القادمة.
المقارنة بين الجلسة التفاعلية والتشغيل الخلفي:
| المقارنة | الجلسة التفاعلية (claude) | التشغيل الخلفي (claude -p) |
|---|---|---|
| واجهة الاستخدام | واجهة رسومية تفاعلية للكتابة والحوار | طباعة الإجابة مباشرة في الطرفية وينتهي |
| وجود المطور | يتطلب وجود المطور لمتابعة الأسئلة | تشغيل تلقائي ومستقل للعمليات الخلفية |
| قنوات التمرير | لا تدعم التمرير البرمجى | تدعم قنوات stdin وتوجيه stdout |
| معالجة الصلاحيات | عرض تنبيهات الموافقة التفاعلية للمستخدم | تحديد الصلاحيات برمجياً بالخيارات الممررة |
| الاستخدام الأنسب | التطوير والبرمجة وحل المشاكل اليومية | البناء المستمر (CI)، والأتمتة، والتدقيق التلقائي |
💡 خلاصة سريعة: يتيح
claude -pدمج الأداة في مسارات العمل البرمجية؛ باستخدام التمريرcat ... | claude -p ... > outputواستخراج الحقول بـjson | jqوتسريع التشغيل بـ--bare؛ وتذكر تحديد الصلاحيات برمجياً لمنع توقف الأتمتة.
05 قراءة وتتبع قيم مخارج الأخطاء (exit codes)
أداة هامة يعتمد عليها مطورو النصوص البرمجية لتسيير العمليات وتحديد مسار التنفيذ.
تترك كل عملية برمجية تنتهي في الطرفية قيمة مخرج خطأ (exit code) - وهو رقم يحدد حالة انتهاء العملية: الرقم 0 يعني النجاح وإتمام المهمة بنجاح، وأي قيمة أخرى تعني حدوث مشكلة. وتستخدم البرمجيات هذا الرقم لتحديد الخطوة التالية.
يمكنك فحص قيمة مخرج الخطأ للعملية الأخيرة في الطرفية كالتالي:
claude auth status
echo $?يطبع أمر echo $? قيمة مخرج الخطأ للعملية الأخيرة (حيث يمثل الرمز $? المتغير الذي يحفظ قيم مخارج الأخطاء في shell).
أمثلة لقيم مخارج أخطاء الأوامر المعتمدة في النظام:
| الأمر / الحالة | قيمة مخرج الخطأ | المعنى والدلالة |
|---|---|---|
claude auth status (نجاح تسجيل الدخول) | 0 | المستخدم مسجل الدخول وحسابه نشط |
claude auth status (عدم تسجيل الدخول) | 1 | المستخدم غير مسجل الدخول |
تجاوز الحد الأقصى للجولات --max-turns | قيمة غير صفرية (خطأ) | توقف العمل لتجاوز جولات الحوار المحددة |
| تجاوز حجم قنوات التمرير stdin لـ 10MB | قيمة غير صفرية | توقف العمل لتجاوز الحجم المسموح للمدخلات |
| خادم إدارة الجلسات الخلفية متوقف | 1 | خادم daemon status متوقف عن العمل |
كيف تُستثمر هذه القيم في النصوص البرمجية؟ كفحص حالة تسجيل الدخول قبل تشغيل مهام معالجة الكود لإيقاف العملية وتنبيهك فوراً عند انتهاء صلاحية الجلسة:
# إيقاف تشغيل النص البرمجى وتنبيهك عند غياب تسجيل الدخول (قيمة مخرج خطأ غير صفرية)
claude auth status || { echo "المستخدم غير مسجل الدخول، توقف العمل"; exit 1; }يمثل الرمز || أداة فحص برمجية تعني "إذا فشلت العملية الأولى (أرجعت قيمة غير صفرية)، فشغل الأوامر التالية". ويُستحسن استخدام هذا الفحص في بداية نصوص الأتمتة لتفادي توقف العمليات لاحقاً.
تذكر القاعدة العامة للأنظمة: الرقم 0 للنجاح والاستمرار، وأي قيمة أخرى تعني وجود مشكلة ويجب التوقف.
💡 خلاصة سريعة: قيم مخارج الأخطاء تفيد في توجيه النصوص البرمجية - الرقم 0 للنجاح وغير الصفر للمشاكل؛ وتوفر الأوامر قيم فحص واضحة لحالة الحساب وتجاوز الجولات لتنظيم مسارات الأتمتة.
06 جدول مراجع الخيارات البرمجية (Flags)
نلخص في هذا الجدول كافة الخيارات البرمجية الأكثر استخداماً لـ Claude Code لتكون دليلاً سريعاً يسهل عليك الرجوع إليه.
تذكر: لا يعرض خيار المساعدة
claude --helpكافة المعلمات المتاحة، ويمثل هذا الجدول دليلاً تفصيلياً معتمداً على المواصفات الرسمية للأداة.
قمنا بتصنيف الخيارات لتسهيل البحث:
إعدادات وتسيير الجلسات
| الخيار | الاختصار | الوصف ودور المعلمة |
|---|---|---|
--print | -p | تشغيل خلفي وطباعة المخرجات وينتهي (أساس الأتمتة) |
--continue | -c | استئناف المحادثة الأخيرة للمجلد الحالي |
--resume | -r | استئناف محادثة محددة بالاسم أو المعرف |
--name | -n | تسمية الجلسة الحالية لتسهيل استدعائها لاحقاً بالاسم |
--fork-session | — | استئناف الجلسة مع توليد معرف جلسة جديد مستقل |
--session-id | — | تحديد معرف جلسة UUID صريح للعمل |
النماذج والصلاحيات
| الخيار | الوصف ودور المعلمة |
|---|---|
--model | تعيين نموذج تشغيل مخصص لهذه الجلسة ويغطي خيار الإعدادات |
--fallback-model | تعيين نموذج احتياطي ينتقل إليه الوكيل عند توقف النموذج الأساسي |
--permission-mode | تعيين وضع الصلاحيات وبدء الجلسة (default/acceptEdits/plan/bypassPermissions) |
--allowedTools | تحديد أدوات مسموحة يتم تشغيلها دون طلب موافقتك |
--disallowedTools | تحديد أدوات ممنوعة يُحظر تشغيلها نهائياً |
--dangerously-skip-permissions | تجاوز كلي وتلقائي لكافة تنبيهات الموافقة (يماثل وضع bypassPermissions، يُنصح بالحذر) |
المجلدات والتهيئة
| الخيار | الوصف ودور المعلمة |
|---|---|
--add-dir | تزويد الجلسة بصلاحيات قراءة وتعديل مجلدات إضافية |
--settings | تحديد ملف إعدادات settings JSON مخصص أو تمرير إعدادات مباشرة |
--setting-sources | تحديد مستويات الإعدادات التي يتم تحميلها للجلسة (user/project/local) |
--mcp-config | تحميل وإعداد خوادم MCP من ملف JSON محدد |
--bare | تشغيل بسيط يلغي تحميل الخطافات والمهارات وتفضيلات المشروع لتسريع البدء |
التحكم بالتشغيل الخلفي ( headless )
| الخيار | الوصف ودور المعلمة |
|---|---|
--output-format | تحديد تنسيق مخرجات الطباعة (text / json / stream-json) |
--input-format | تحديد تنسيق مدخلات التمرير القياسية |
--max-turns | تعيين الحد الأقصى لجولات الحوار والتفكير للجلسة الخلفية |
--max-budget-usd | تعيين الحد الأقصى للميزانية وتكلفة الجلسة بالدولار |
--verbose | طباعة وتفصيل كامل مسار مخرجات الحوار والأدوات للجلسة |
--append-system-prompt | إضافة وتذييل نص في نهاية تعليمات النظام الأساسية |
--system-prompt | استبدال وإلغاء تعليمات النظام الافتراضية بالكامل بالخيار الممرر |
خيارات عامة
| الخيار | الاختصار | الوصف ودور المعلمة |
|---|---|---|
--version | -v | عرض رقم إصدار أداة Claude Code الحالي |
--ide | — | الاتصال التلقائي بالـ IDE المفتوح عند بدء التشغيل |
--debug | — | تفعيل سجلات التصحيح والتتبع للجلسة وفلترتها |
تضم هذه الجداول غالبية الخيارات التي تحتاجها لتهيئة وتطويع الأداة. وللحصول على القائمة الكاملة والتفصيلية، يرجى الرجوع لصفحة وثائق CLI المرجعية الرسمية للبرنامج.
💡 خلاصة سريعة: تم تصنيف الجداول لتسهيل البحث السريع عن خيارات الجلسات والصلاحيات والمجلدات والتحكم الخلفي؛ وتذكر أن وثائق المرجع الرسمية تمثل المصدر الأكمل لكافة المعلمات المتاحة.
07 تطبيق عملي: دمج Claude في قنوات التمرير (Pipelines)
سنقوم الآن بتجربة عملية لتشغيل Claude Code في الوضع الخلفي واستقبال البيانات من قنوات التمرير، واستخراج حقول الإجابة، والتحقق من مخرج الخطأ.
الخطوة الأولى: تشغيل استعلام خلفي بسيط
اكتب في الطرفية (تأكد من عدم وجودك داخل جلسة محادثة نشطة لـ Claude):
claude -p "صغ خلاصة في جملة واحدة للفرق بين عمليتي git rebase و git merge"النتيجة المتوقعة: ستقوم الأداة بطباعة الإجابة مباشرة في الطرفية وتنتهي الجلسة وتعود لطرفيتك المعتادة. وهذا يمثل إثبات عمل الوضع الخلفي بنجاح.
الخطوة الثانية: التمرير واستقبال البيانات عبر stdin
سنقوم بإنشاء ملف نصي يحتوي على كود برمجى به خطأ بسيط، ونمرره لـ Claude ليفحصه:
printf 'def add(a, b):\n return a - b\n' > buggy.py
cat buggy.py | claude -p "هذا الكود يحتوي على خطأ برمجى بسيط، حدده في جملة واحدة"النتيجة المتوقعة: يقرأ Claude الكود الممرر عبر القناة ويعود بإجابة توضح أن الدالة تسمى add (جمع) بينما تقوم بعملية طرح a - b. نجاح الإجابة يثبت سلامة استقبال ومعالجة البيانات عبر stdin دون حاجة لمنحه صلاحيات قراءة الملفات.
الخطوة الثالثة: استخراج البيانات وتدقيقها بـ jq
شغل الاستعلام مع تحديد تنسيق المخرجات كـ JSON:
claude -p "ما هي لغة Python في جملة واحدة؟" --output-format jsonالنتيجة المتوقعة: طباعة كتلة بيانات JSON تحتوي على تفاصيل الجلسة وتكلفة الرموز. والآن سنقوم بتمرير المخرجات لبرنامج jq لاستخراج نص الإجابة فقط وحذف بقية البيانات المرافقة:
claude -p "ما هي لغة Python في جملة واحدة؟" --output-format json | jq -r '.result'النتيجة المتوقعة: طباعة جملة التعريف فقط بنص نظيف خالي من علامات JSON والبيانات المرافقة. ويستخدم هذا التمرير البرمجى لتغذية البرمجيات الأخرى بنتائج نظيفة.
الخطوة الرابعة: فحص قيم مخارج الأخطاء
افحص حالة الحساب وسجل مخرج الخطأ للتأكد من سلامته:
claude auth status
echo $?النتيجة المتوقعة: طباعة الرقم 0 إذا كنت مسجل الدخول بنجاح، مما يثبت نجاح العملية وإمكانية مواصلة نصوص الأتمتة للعمل.
بإتمام هذه الخطوات، تكون قد استخدمت أدوات التشغيل الخلفي والتمرير واستخراج البيانات وفحص مخارج الأخطاء بنجاح.
💡 خلاصة سريعة: خطوات التطبيق - تشغيل استعلام خلفي بـ
-p← تمرير كود به خطأ برمجى وفحصه ← استخراج نص الإجابة النظيف بـjson | jq← فحص قيمة مخرج الخطأ بـauth statusوالرمز$?.
08 ملخص
شرحنا في هذا المقال خيارات وأوامر سطر الأوامر (CLI) لـ Claude Code وكيفية استثمارها لبناء نصوص أتمتة متكاملة.
لنراجع النقاط الأساسية معاً:
| الهدف | الأداة والخطوات | نقاط هامة |
|---|---|---|
| التمييز بين مكونات التشغيل | فهم دور الأوامر والخيارات | الأوامر تمثل مهاماً فرعية تنتهي بإتمامها، والخيارات تمثل معلمات لضبط وتوجيه الجلسة. |
| استئناف الجلسات السابقة | استخدام خياري -c و -r | يستدعي -c الجلسة الأخيرة للمجلد تلقائياً، ويستدعي -r جلسة محددة بالاسم لتفادي فقدان الذاكرة. |
| التشغيل الخلفي وأتمتة العمليات | خيار الطباعة -p | يطبع الإجابة مباشرة في الطرفية وينتهي، ويمثل حجر الأساس للأتمتة وقنوات التوصيل. |
| تحديد معايير التشغيل للجلسة | معلمات النموذج والصلاحيات | تتيح خيارات --model و --permission-mode ضبط خصائص الجلسة وتجاوز إعدادات الملفات. |
| تمرير واستقبل البيانات | قنوات stdin وقنوات stdout | يدعم التمرير عبر ` |
| فحص نتائج العمليات برمجياً | تتبع قيم مخارج الأخطاء (exit codes) | يمثل الرقم 0 النجاح ويستخدم في نصوص الأتمتة لتحديد استمرار أو توقف العمليات. |
يمكنك الآن: التمييز بين الأوامر والخيارات لـ claude وكتابتها بدقة، واستئناف المحادثات السابقة بالاسم أو تلقائياً لتجنب فقدان سياق العمل، وتشغيل واستثمار خيارات التشغيل الخلفي وتمرير البيانات واستقبالها بقنوات التوصيل، وقراءة وتتبع قيم مخارج الأخطاء لتأمين نصوص الأتمتة من الفشل، والرجوع للجداول المرجعية لتحديد خيارات التهيئة المناسبة. هذا الفهم يحول استخدامك لـ Claude Code من مجرد نافذة حوار بسيطة إلى أداة برمجية تفاعلية وقابلة للدمج في خطوط تجميع وبناء مشاريعك البرمجية.
تذكر دائماً مراجعة الصلاحيات المطبقة في مشاريعك عند تفعيل خيارات التشغيل الخلفي لضمان سلامة وأمان ملفاتك.
المقال القادم سنشرح 35 "أوضاع الصلاحيات والتحكم بالجلسة (Modes and Control)" - حيث سنقوم بتفصيل سلوك وخيارات أوضاع الصلاحيات المختلفة (plan و acceptEdits وغيرها) لمعرفة متى يُنصح بتفعيل كل وضع، وكيفية استخدام اختصارات لوحة المفاتيح والتبديل بين الأوضاع أثناء سير المحادثة بسهولة لتحقيق التوازن الأمثل بين سرعة العمل وأمان الملفات. سنشرح ذلك بالتفصيل في المقال القادم.