Skip to content

دليل 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 الخيارات الإضافية للطرد (الخيارات أو المعلمات)، لتحدد كيف تتم العملية - هل تريد الشحن السريع؟ وما هو النموذج المفضل للاستخدام؟ تختار أمراً فرعياً واحداً، وتحدد خيارات إضافية متعددة معه.

تأمل الأمثلة التالية:

bash
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 الأوامر الأساسية وطرق تشغيل الجلسة

لنبدأ بالأوامر الأساسية. قمنا بتصنيف الأوامر الأكثر استخداماً في ثلاث مجموعات أساسية مع الشرح والتعليمات:

المجموعة الأولى: بدء تشغيل الجلسة (الخيار الشائع)

تستخدم للدخول وبدء المحادثة:

bash
# 1. الدخول الافتراضي للواجهة التفاعلية
claude

# 2. بدء المحادثة مع إرسال سؤال افتراضي كبداية للجلسة
claude "اشرح بنية هذا المشروع"

# 3. تشغيل خلفي (headless) وطباعة الإجابة مباشرة دون الدخول للواجهة
claude -p "اشرح دور هذه الدالة"

الخيار الثالث claude -p يمثل مفتاح الأتمتة والتشغيل الخلفي - حيث لا يفتح الواجهة الرسومية للطرفية بل يكتفي بطباعة إجابة السؤال مباشرة وينتهي، مما يجعله مناسباً للدمج مع النصوص البرمجية وقنوات التوصيل. وسنفصله في القسم 04.

المجموعة الثانية: استئناف ومتابعة الجلسات السابقة

تحدثنا في المقال 19 عن مشكلة "فقدان الذاكرة" للوكيل - حيث يبدأ الجلسة الجديدة كشخص لا يعرف تفاصيل محادثاتك السابقة. وتُستخدم الأوامر التالية لاستئناف الجلسات والحفاظ على الذاكرة:

bash
# استئناف المحادثة الأخيرة للمجلد الحالي
claude -c
# (يمثل -c اختصار خيار --continue)

# استئناف محادثة محددة بالاسم أو المعرف المخصص لها
claude -r "auth-refactor" "أكمل تعديل ملفات الهوية"
# (يمثل -r اختصار خيار --resume)

الفرق الجوهري بين الخيارين:

  • -c (--continue): يستأنف المحادثة الأخيرة للمجلد الحالي تلقائياً دون حاجة لمعرفة معرف الجلسة.
  • -r (--resume): يستأنف محادثة محددة بالاسم أو المعرف؛ وفي حال عدم كتابة المعرف، يعرض قائمة بالجلسات السابقة لتختار منها.

تشبيه: استكمال الحوار مع زميل العمل. خيار -c يشبه قولك "دعنا نواصل حديثنا الأخير" - فالحديث يرتبط تلقائياً بآخر موضوع ناقشتماه دون حاجة لتوضيحه؛ وخيار -r يشبه قولك "دعنا نواصل نقاشنا حول موضوع إعادة هيكلة ملفات الهوية الذي بدأناه الأسبوع الماضي" - حيث تحدد موضوعاً بعينه للرجوع إليه.

يُنصح باستخدام -c عند العمل المستمر على مهمة واحدة لتوفير الوقت؛ واستخدام -r عند التنقل بين مهام متعددة ومستقلة (كفحص خطأ برمجى في جهة، وكتابة اختبارات في جهة أخرى) - بشرط تسمية الجلسة عند بدئها باستخدام خيار تسمية الجلسة --name (واختصاره -n) لتسهيل العثور عليها لاحقاً بالاسم وتفادي متاهة معرفات الـ UUID الطويلة. وتتم التهيئة والاستدعاء كالتالي:

bash
# بدء الجلسة مع تسميتها
claude -n "login-refactor"

# استئناف الجلسة لاحقاً بالاسم المخصص لها مباشرة
claude -r "login-refactor"

ويذكر التوثيق دور خيار التسمية: يعرض الاسم المخصص في قائمة استئناف الجلسات /resume وفي شريط عنوان الطرفية، لتتمكن من استدعائها بالاسم مباشرة.

ويمكنك دمج الخيارين -c و -p معاً: كتابة claude -c -p "هل توجد أخطاء في ملف التنسيق؟" تعني "استمر في المحادثة الأخيرة للمجلد، واطبع الإجابة خلفياً دون الدخول للواجهة". ويستخدم هذا الدمج بكثرة لتمرير وتسيير مهام متسلسلة برمجياً دون تدخل يدوي (كما سنرى في القسم 04).

المجموعة الثالثة: عمليات الصيانة والحساب الشخصي

أوامر التحديث وإدارة الحساب:

bash
# تحديث أداة 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 بقراءة السؤال وتنفيذ المهام وطباعة الإجابة مباشرة في الطرفية وينتهي.

bash
claude -p "ما هو دور وحدة الهوية auth في هذا المجلد؟"

يمثل الخيار بوابة دمج Claude Code في نصوص الأتمتة وقنوات توصيل سطر الأوامر (headless mode).

--model: تحديد نموذج التشغيل للجلسة

لتحديد وتعيين نموذج تشغيل مخصص لهذه الجلسة، ويلغي هذا التحديد خيار النموذج الافتراضي المعين في ملف التهيئة:

bash
claude --model sonnet
claude --model opus
claude --model claude-sonnet-4-6

يقبل المعرفات السريعة (sonnet و opus) أو أسماء النماذج الكاملة. وقمنا بتفصيل الفروق والاختيارات في المقال 05.

--permission-mode: تحديد وضع الصلاحيات وبدء الجلسة

لتحديد وتعيين وضع الصلاحيات (缰绳) عند تشغيل الجلسة، ويلغي خيار defaultMode المكتوب في الإعدادات:

bash
claude --permission-mode plan

الخيارات المتاحة للوضع كما يذكرها التوثيق:

يقبل خيارات: default (الافتراضي)، و acceptEdits (الموافقة التلقائية على تعديل الملفات)، و plan (التخطيط دون تعديل)، و auto (الوضع التلقائي للمهام البسيطة), و dontAsk (عدم السؤال)، و bypassPermissions (تجاوز الصلاحيات).

سنفصل سلوك وطبيعة عمل كل وضع في المقال القادم (المقال 35).

--dangerously-skip-permissions: خيار التجاوز الكلي للصلاحيات

خيار يتطلب اهتماماً وحذراً كبيراً. تفعيله يطابق تعيين وضع الصلاحيات على وضع التجاوز الكلي --permission-mode bypassPermissions:

bash
claude --dangerously-skip-permissions

بموجب هذا الخيار، يتم إلغاء كافة تنبيهات طلب الموافقة للأدوات وتعديل الملفات وأوامر Bash ويتحرك Claude بكامل الحرية في جهازك. ووجود كلمة dangerously (بخطورة) في اسم الخيار تمثل تنبيهاً أمنياً صريحاً من Anthropic.

قاعدة الأمان الصارمة: يُمنع تشغيل هذا الخيار إلا في بيئات معزولة وآمنة تماماً - كالحاويات البرمجية (containers) المغلقة أو مستودعات الاختبارات غير المرتبطة ببيانات حقيقية. وتجنب تشغيله نهائياً في مستودعات ومشاريع العمل الحقيقية. ولتقليل الأسئلة في نصوص الأتمتة، يُفضل استخدام خيار --allowedTools لتحديد أدوات آمنة معينة، أو استخدام وضع --permission-mode acceptEdits للسماح بتعديل الملفات فقط - لكونهما أكثر أماناً من التجاوز الكلي.

--add-dir: تزويد الجلسة بصلاحية الوصول لمجلدات إضافية

يقتصر نطاق عمل Claude الافتراضي على المجلد الذي تم تشغيله فيه. ويستخدم خيار --add-dir لتمرير مجلدات إضافية ليتمكن من قراءة وتعديل ملفاتها:

bash
claude --add-dir ../apps ../lib

يفيد في المشاريع المتعددة (monorepos) لتعديل المكتبات التابعة للمشروع. وينبه التوثيق الرسمي لتفصيل هام:

يمنح الخيار صلاحية الوصول للملفات وقراءتها وتعديلها فقط؛ ولا يقوم بتحميل ملفات التهيئة (مثل CLAUDE.md أو الإعدادات) المتوفرة في تلك المجلدات الإضافية.

--output-format: تحديد تنسيق طباعة المخرجات

يعمل مع خيار التشغيل الخلفي -p لتحديد تنسيق البيانات الصادرة:

bash
claude -p "لخص بنية المجلد" --output-format json

الخيارات المتاحة: text (الافتراضي، نص عادي)، و json (بيانات مخرجات هيكلية بصيغة JSON تحتوي على تفاصيل الجلسة وتكلفة الرموز)، و stream-json (تدفق بيانات سطر بسطر بصيغة JSON للعمليات التفاعلية). لاستخراج تفاصيل الجلسة وتكلفتها برمجياً، يتم اختيار تنسيق json وتمريره لبرنامج jq (سنوضح ذلك في القسم 04).

--allowedTools / --disallowedTools: القوائم البيضاء والسوداء للأدوات

لتحديد أدوات مسموحة يتم تشغيلها وتجاوز تنبيهات الموافقة لها، أو أدوات ممنوعة يُحظر تشغيلها نهائياً لتفادي توقف النصوص البرمجية بانتظار إدخال المستخدم:

bash
claude -p "شغل الاختبارات وصحح الأخطاء" --allowedTools "Bash,Read,Edit"

تُكتب الأدوات المسموحة والممنوعة باتباع صياغة الصلاحيات (المقال 20)، ككتابة "Bash(git diff *)" للسماح بأوامر git diff فقط.

والفرق بين --allowedTools وخيار --tools: الأول يتخطى تنبيهات الموافقة للأداة مع الحفاظ على وجودها، والثاني يحذف الأداة بالكامل من سياق وعلم Claude ليمنعه من محاولة التفكير فيها.

معلمات ضبط وحماية التشغيل الخلفي

خيارات لحماية وتفادي خروج الأتمتة عن المسار وضمان توقف الجلسة:

bash
# تحديد الحد الأقصى لعدد جولات الحوار والتفكير (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) في وضع التشغيل الخلفي، مما يتيح لك ربطه بالأوامر المعتادة باستخدام الرمز |:

bash
cat build-error.txt | claude -p 'اشرح سبب الخطأ البرمجى الموضح واقترح حلاً' > output.txt

مسار البيانات: يقرأ أمر cat ملف الأخطاء ← يمرر محتواه لـ claude -p ← يقوم بمعالجة وتحليل الخطأ وكتابة الحل ← ويحفظ أمر > المخرجات في ملف output.txt بصمت دون ظهور واجهات.

يحدد التوثيق حداً أقصى لحجم البيانات الممررة عبر stdin بقيمة 10MB بدءاً من إصدار v2.1.128، وتجاوز هذا الحجم سيؤدي لتوقف الجلسة بالخطأ. وللبيانات الكبيرة، يُفضل حفظها في ملف والإشارة للملف في نص السؤال بدلاً من التمرير المباشر.

استخدامه كأداة تدقيق مخصصة للمشروع (Linter)

يمكنك دمج هذا التمرير في ملفات بناء وإدارة المشروع. يوضح التوثيق مثالاً لدمج فحص الأخطاء في ملف package.json:

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:

bash
# استخراج حقل الإجابة النصية فقط وحذف بقية البيانات
claude -p "ما هي لغة بايثون؟" --output-format json | jq -r '.result'

تحتوي بيانات الـ JSON الصادرة على تفاصيل الجلسة: النص في .result والمعرف في .session_id والتكلفة في .total_cost_usd . وتُستخدم هذه البيانات لربط وتمرير المهام المتسلسلة برمجياً عن طريق حفظ المعرف وتمريره في أمر الاستئناف --resume:

bash
session_id=$(claude -p "ابدأ فحص الكود" --output-format json | jq -r '.session_id')
claude -p "أكمل عملية الفحص السابقة" --resume "$session_id"

تزويد الجلسة الخلفية بشخصية مؤقتة

لتوجيه ونصح Claude بالالتزام بشخصية محددة في هذه الدورة الخلفية (مثل: "تصرف كمراجع أكواد خبير أمني")، استخدم خيار --append-system-prompt لإضافة النص في نهاية تعليمات النظام:

bash
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 يعني النجاح وإتمام المهمة بنجاح، وأي قيمة أخرى تعني حدوث مشكلة. وتستخدم البرمجيات هذا الرقم لتحديد الخطوة التالية.

يمكنك فحص قيمة مخرج الخطأ للعملية الأخيرة في الطرفية كالتالي:

bash
claude auth status
echo $?

يطبع أمر echo $? قيمة مخرج الخطأ للعملية الأخيرة (حيث يمثل الرمز $? المتغير الذي يحفظ قيم مخارج الأخطاء في shell).

أمثلة لقيم مخارج أخطاء الأوامر المعتمدة في النظام:

الأمر / الحالةقيمة مخرج الخطأالمعنى والدلالة
claude auth status (نجاح تسجيل الدخول)0المستخدم مسجل الدخول وحسابه نشط
claude auth status (عدم تسجيل الدخول)1المستخدم غير مسجل الدخول
تجاوز الحد الأقصى للجولات --max-turnsقيمة غير صفرية (خطأ)توقف العمل لتجاوز جولات الحوار المحددة
تجاوز حجم قنوات التمرير stdin لـ 10MBقيمة غير صفريةتوقف العمل لتجاوز الحجم المسموح للمدخلات
خادم إدارة الجلسات الخلفية متوقف1خادم daemon status متوقف عن العمل

كيف تُستثمر هذه القيم في النصوص البرمجية؟ كفحص حالة تسجيل الدخول قبل تشغيل مهام معالجة الكود لإيقاف العملية وتنبيهك فوراً عند انتهاء صلاحية الجلسة:

bash
# إيقاف تشغيل النص البرمجى وتنبيهك عند غياب تسجيل الدخول (قيمة مخرج خطأ غير صفرية)
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):

bash
claude -p "صغ خلاصة في جملة واحدة للفرق بين عمليتي git rebase و git merge"

النتيجة المتوقعة: ستقوم الأداة بطباعة الإجابة مباشرة في الطرفية وتنتهي الجلسة وتعود لطرفيتك المعتادة. وهذا يمثل إثبات عمل الوضع الخلفي بنجاح.

الخطوة الثانية: التمرير واستقبال البيانات عبر stdin

سنقوم بإنشاء ملف نصي يحتوي على كود برمجى به خطأ بسيط، ونمرره لـ Claude ليفحصه:

bash
printf 'def add(a, b):\n    return a - b\n' > buggy.py
cat buggy.py | claude -p "هذا الكود يحتوي على خطأ برمجى بسيط، حدده في جملة واحدة"

النتيجة المتوقعة: يقرأ Claude الكود الممرر عبر القناة ويعود بإجابة توضح أن الدالة تسمى add (جمع) بينما تقوم بعملية طرح a - b. نجاح الإجابة يثبت سلامة استقبال ومعالجة البيانات عبر stdin دون حاجة لمنحه صلاحيات قراءة الملفات.

الخطوة الثالثة: استخراج البيانات وتدقيقها بـ jq

شغل الاستعلام مع تحديد تنسيق المخرجات كـ JSON:

bash
claude -p "ما هي لغة Python في جملة واحدة؟" --output-format json

النتيجة المتوقعة: طباعة كتلة بيانات JSON تحتوي على تفاصيل الجلسة وتكلفة الرموز. والآن سنقوم بتمرير المخرجات لبرنامج jq لاستخراج نص الإجابة فقط وحذف بقية البيانات المرافقة:

bash
claude -p "ما هي لغة Python في جملة واحدة؟" --output-format json | jq -r '.result'

النتيجة المتوقعة: طباعة جملة التعريف فقط بنص نظيف خالي من علامات JSON والبيانات المرافقة. ويستخدم هذا التمرير البرمجى لتغذية البرمجيات الأخرى بنتائج نظيفة.

الخطوة الرابعة: فحص قيم مخارج الأخطاء

افحص حالة الحساب وسجل مخرج الخطأ للتأكد من سلامته:

bash
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 وغيرها) لمعرفة متى يُنصح بتفعيل كل وضع، وكيفية استخدام اختصارات لوحة المفاتيح والتبديل بين الأوضاع أثناء سير المحادثة بسهولة لتحقيق التوازن الأمثل بين سرعة العمل وأمان الملفات. سنشرح ذلك بالتفصيل في المقال القادم.


قراءات موصى بها