SSD Nodes Learn Hosting plans →
الأدلة Matt Connorبقلم Matt Connor · آخر تحديث في 2026-08-28

ما هو نمط الإخراج في Claude Code وكيف تستخدمه؟

تعرّف إلى الأنماط الخمسة المضمّنة في Claude Code، وما الذي تغيّره في كل رد، وكيف تكتب نمطاً مخصصاً، ولماذا أُزيل الأمر المستقل في v2.1.91.

ما المقصود بنمط الإخراج في Claude Code

نمط الإخراج في Claude Code هو مجموعة من التعليمات التي يضيفها Claude Code إلى موجّه النظام الخاص به. ويغيّر ذلك طريقة إجابة Claude عنك، بما في ذلك الدور الذي يتخذه وشكل النص الذي يطبعه. لكنه لا يعلّم Claude أي شيء عن قاعدة شيفرتك، ولا يمنحه صلاحية تنفيذ أي إجراء.

يأتي Claude Code مع خمسة أنماط مضمّنة. ويُحفظ اختيارك في مفتاح إعدادات واحد هو outputStyle، وتُقرأ قيمة هذا المفتاح مرة واحدة عند بدء الجلسة. تفسّر هذه الحقيقة معظم الالتباس حول هذه الميزة، لأن النمط الذي تغيّره في منتصف الجلسة يُحفَظ ثم يُتجاهَل إلى أن تمسحه.

على VPS، لا يُعد هذا مجرد تفضيل شكلي. فالنص الكامل للجلسة هو ما تقرؤه عبر اتصال SSH (secure shell)، وعادةً داخل نافذة tmux. لذلك يمثل كل سطر يشرحه Claude سطراً تنتظر ظهوره، وسطراً يُحفظ في مخزن تمرير خلفي ذي حجم ثابت.

موضع إعداد outputStyle

اختر نمطاً من قائمة /config، ضمن نمط الإخراج. يكتب Claude Code اختيارك في .claude/settings.local.json داخل المشروع الذي تعمل فيه.

لم يعد الأمر المستقل /output-style موجوداً. أُهمل في v2.1.73 وأُزيل في v2.1.91، لذلك لا يفعل شيئاً في الإصدار الحالي. تحقّق من الإصدار الذي تستخدمه قبل اتباع أي دليل أقدم. جرى التحقق من الإصدارات الواردة في هذه الصفحة في أغسطس 2026.

claude --version

يمكنك أيضاً ضبط المفتاح يدوياً. يمكن أن تحتويه 4 ملفات إعدادات، ويكون الملف الأضيق نطاقاً هو السائد على الملف الأوسع نطاقاً.

  • ~/.claude/settings.json هو ملف المستخدم. وينطبق على كل مشروع في ذلك الجهاز.
  • .claude/settings.json هو ملف المشروع. يُضمَّن في git، لذلك ينطبق على كل من يستنسخ المستودع.
  • .claude/settings.local.json هو ملف المشروع المحلي. لا يُضمَّن، ويتجاوز الملفين السابقين. تكتب قائمة /config هذا الملف.
  • الإعدادات المُدارة، التي ينشرها فريق تكنولوجيا المعلومات من مسار نظام مثل /etc/claude-code/ على Linux، تتجاوز جميع الإعدادات الأخرى.

قيمة المفتاح هي اسم النمط:

{
  "outputStyle": "Concise"
}

لجلسة واحدة فقط، مرّر المفتاح نفسه في سطر الأوامر. يقبل الخيار --settings مساراً أو سلسلة JSON مضمّنة، وتتجاوز قيمه المفاتيح نفسها في ملفات الإعدادات أثناء ذلك التشغيل:

claude --settings '{"outputStyle": "Concise"}'

تغيّرت تسميات القوائم وأوامر الشرطة المائلة مرة واحدة على الأقل خلال فترة وجود هذه الميزة. أما المفتاح outputStyle فلم يتغير. عندما لا تعود لقطة الشاشة في أي دليل تطابق ما تراه، اضبط المفتاح مباشرة وتحقق منه باستخدام /status، الذي يسرد مصادر الإعدادات الفعالة.

لماذا لا يفعل نمط الإخراج الجديد شيئاً حتى تمسح الجلسة

ينشئ Claude Code موجه النظام مرة واحدة عند بدء الجلسة، ويكون نمط الإخراج جزءاً من موجه النظام هذا. لذلك، يؤدي تغيير الإعداد أثناء تشغيل الجلسة إلى حفظ القيمة دون أن ترى أي تغيير، لأن الجلسة قيد التشغيل تواصل إرسال الموجه الذي أنشأته عند بدء التشغيل. يُحمَّل النمط الجديد عند تنفيذ /clear التالي أو عند التشغيل التالي.

/clear
/context

يعرض /context ما يشغل نافذة السياق حالياً، مع تقسيمه حسب الفئة، بما في ذلك موجه النظام. شغّله في جلسة جديدة ضمن كل نمط، ويكون سطر موجه النظام هو جانب الإدخال في المقارنة. وهذه أيضاً أسرع طريقة لإثبات تحميل نمط مخصص فعلاً. للحصول على صورة أشمل عمّا يملأ تلك النافذة، راجع كيفية امتلاء السياق في جلسة Claude Code طويلة.

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

ما الذي يغيّره كل نمط إخراج مضمّن في نص المحادثة

  • Default هو موجّه النظام المعتاد في Claude Code، وقد كُتب لأعمال هندسة البرمجيات.
  • Concise يبدأ بالنتيجة. ويحذف المقدمة والسرد التفصيلي لتسلسل التنفيذ، ويحافظ على قِصر الإجابات إلى أن تطلب مزيداً من التفاصيل. ولا تتغير أعمال الهندسة التي ينفذها Claude. ولا يختصر تقرير خطأ أو تحذيراً أمنياً، كما يطلب تأكيداً كاملاً قبل تنفيذ إجراء مدمّر. يتطلب هذا النمط Claude Code v2.1.237 أو إصداراً أحدث.
  • Explanatory يضيف "Insights" تعليمية بين خطوات المهمة، ويوضح سبب اختيار تنفيذ معين والنمط المستخدم مسبقاً في قاعدة التعليمات البرمجية لديك. يزداد طول نص المحادثة عن قصد.
  • Learning يذهب إلى أبعد من ذلك. يشارك Claude هذه الرؤى، ثم يطلب منك كتابة أجزاء صغيرة من التعليمات البرمجية بنفسك، ويضع علامة على كل موضع بتعليق TODO(human) في الملف.
  • Proactive يجعل Claude ينفذ بدلاً من أن يطلب الإذن. ويتخذ افتراضات معقولة بشأن القرارات الروتينية بدلاً من التوقف لطلب التأكيد.

اقرأ الوصف الأخير بعناية، لأنه النمط الذي يسيء الناس فهمه. إن Proactive توجيه في موجّه النظام. وهو يغيّر ما يحاول Claude تنفيذه. لكن وضع الأذونات لديك هو الذي يحدد ما يُنفَّذ فعلياً من دون أن يطلب منك الإذن، وهذا هو الإعداد المهم على خادم تتركه قيد التشغيل من دون مراقبة. يشرح ذلك القسم الوضع التلقائي وأوضاع أذونات Claude Code.

كيف يختلف نمط الإخراج عن CLAUDE.md وhook وsubagent

تبدو هذه الآليات كلها كأنها تحدد لـClaude كيفية التصرف، لكنها تعمل على طبقات مختلفة.

  • يُضاف نمط الإخراج إلى مطالبة النظام. وينطبق على كل استجابة في المحادثة الرئيسية.
  • يُضاف CLAUDE.md كرسالة من المستخدم بعد مطالبة النظام. ويُخصَّص لاتفاقيات المشروع وحقائق قاعدة الشيفرة.
  • يضيف --append-system-prompt نصاً إلى مطالبة النظام لاستدعاء واحد، من دون إزالة أي محتوى. وهو الإصدار المؤقت من نمط الإخراج.
  • الـhook هو أمر shell يشغّله Claude Code بنفسه عند وقوع حدث. وتفرضه طبقة التشغيل، لذلك يُنفَّذ سواء اختار Claude تشغيله أم لا. راجع ما الذي يستطيع hook في Claude Code فعله وما الذي لا يستطيع فعله.
  • يعمل subagent باستخدام مطالبة نظام ومجموعة أدوات خاصتين به.

يحسم اختبار قصير الاختيار بين العنصرين الأولين. ضع الحقائق المتعلقة بمشروعك في CLAUDE.md، لأن Claude يحتاج إلى معرفتها. وضع الصياغة في نمط إخراج، لأنها تتعلق بطريقة قراءة الإجابة. أما أي إجراء يجب أن يحدث في كل مرة، بصرف النظر عن قرار النموذج، فهو hook. وتُعد الطبقة التي توجد فيها كل واجهة من خصائص البرنامج الذي يشغّل النموذج، وليست من خصائص النموذج نفسه. لذلك لا يستطيع النمط سوى التأثير، بينما يستطيع hook فرض التنفيذ.

تنطبق أنماط الإخراج على المحادثة الرئيسية فقط. ولا يرث subagent نمطك، لأنه يبدأ محادثته الخاصة باستخدام مطالبة نظام خاصة به. والاستثناء هو تفرّع المحادثة الحالية، لأن التفرّع يرث مطالبة نظام المحادثة الأصلية كما هي. إذا كتب subagent بطريقة لا تعجبك، فعدّل ملف ذلك الـagent بدلاً من تعديل نمطك. وتتبع جلسة Claude Code ثانية على الخادم نفسه الحد الفاصل ذاته، إذ تقرأ ملفات الإعدادات بنفسها عند بدء التشغيل. لذلك، عندما تسلّم العمل إلى جلسة أخرى تعمل بالتوازي مع جلستك، تصل ردودها بالنمط الذي حمّلته تلك الجلسة، لا بنمطك.

كيفية كتابة نمط الإخراج الخاص بك

نمط الإخراج المخصص هو ملف Markdown يحتوي على frontmatter. احفظه ضمن الدليل الرئيسي للمستخدم لاستخدامه في كل مشروع، أو داخل المستودع للاحتفاظ به مع التعليمات البرمجية. دليل المستخدم هو ~/.claude/output-styles/، ودليل المشروع هو .claude/output-styles/.

mkdir -p ~/.claude/output-styles
cat > ~/.claude/output-styles/terse-ops.md <<'EOF'
---
name: Terse ops
description: Command first, explanation after, for SSH sessions
keep-coding-instructions: true
---

Lead with the command or the file change. Put the explanation after it, in two sentences or fewer.

Do not narrate what you are about to do. Report what you did.

When a command can fail, print the one check that proves it worked and say what a healthy result looks like.
EOF

ابدأ جلسة وافتح /config. سيظهر نمطك في قائمة نمط الإخراج مع الوصف الذي كتبته. إذا لم يظهر، فهذا يعني أن الملف لا تتم قراءته: تحقق من المسار، وتحقق من أن كتلة frontmatter ‏--- هي أول محتوى في الملف. يصبح اسم الملف اسم النمط ما لم يحدد frontmatter القيمة name، ولذلك يُسمّى هذا النمط Terse ops وليس terse-ops.

حدده، أو اضبط المفتاح على ذلك الاسم بالضبط، ثم امسح:

{
  "outputStyle": "Terse ops"
}

يحدد حقل واحد ما إذا كان ملفك تعديلاً أم بديلاً. تكون القيمة keep-coding-instructions افتراضياً هي false، ما يعني أن النمط المخصص يسقط تعليمات هندسة البرمجيات المضمنة في Claude Code ويعمل اعتماداً على نصك وحده. هذه التعليمات المضمنة هي التي تخبر Claude بكيفية تحديد نطاق التغيير وكيفية التحقق من عمله. اترك الحقل دون قيمة إذا كنت تنشئ مساعداً للكتابة أو محللاً للبيانات، إذ لا ينطبق أي من ذلك في هذه الحالات. اضبطه على true لأي شيء يتعامل مع التعليمات البرمجية، وإلا فسوف تتساءل لماذا توقف مهندس دقيق فجأة عن التحقق من عمله. إذا كان هدفك الحقيقي ليس اعتماد أسلوب مختلف، بل تحديد مقدار العمل الذي تستحقه المهمة بدقة أكبر، فضع ذلك ضمن تعليمات الهندسة بدلاً من ملف النمط: مهارة Ponytail مثال عملي على ذلك، فهي قاعدة واحدة تدفع الوكيل نحو أصغر تغيير ناجح.

description هو السطر الذي يعرضه منتقي /config بجانب الاسم. اكتبه بما يناسب اللحظة التي تختار فيها بين نمطين من أنماطك بعد ستة أشهر.

لماذا يختلف الأسلوب الموجز عبر SSH

على VPS، تقرأ سجل الجلسة عبر طبقات لا توجد في الطرفية المحلية، وكل طبقة تفرض تكلفة على الإطالة.

سجل التمرير هو العامل الأول. في tmux، يحتفظ كل جزء بعدد ثابت من الأسطر تحدده history-limit، وقيمته الافتراضية 2000. يملأ السجل المشروح ذلك المخزن مؤقتاً بسرعة أكبر، لذلك يُحذف الجزء الأقدم من جلستك في وقت أسرع، ويختفي الناتج الذي أردت الرجوع إليه بالتمرير. ارفع العدد إذا أردت مساحة أكبر:

echo 'set -g history-limit 20000' >> ~/.tmux.conf
tmux source-file ~/.tmux.conf

تحتفظ الأجزاء التي تُنشأ بعد ذلك بـ20000 سطر لكل منها، مقابل زيادة استهلاك الذاكرة لكل جزء. أما الأجزاء المفتوحة مسبقاً فتحتفظ بالحد القديم، لأن حجم المخزن المؤقت يُثبت عند إنشاء الجزء. إذا كنت لا تزال تبني تخطيط الجلسة، يشرح تشغيل Claude Code داخل tmux على VPS ذلك.

زمن الاستجابة هو العامل الثاني. يتدفق الرد إلى الطرفية أثناء إنشائه. عند استخدام اتصال ذي زمن مرتفع ذهاباً وإياباً، تقضي وقتاً في مشاهدة المقدمة الطويلة وهي تصل قبل ظهور الإجابة.

رموز الإخراج هي العامل الثالث. تُحتسب كل سطر مشروح ضمن الإخراج المفوتر. صُمم نمطا Explanatory وLearning ليكونا أطول. أما Concise فصُمم ليكون أقصر، لأنه يوجّه Claude إلى إبقاء الردود قصيرة افتراضياً.

لا تثق في أي نسبة مئوية يقدمها أحد، بما في ذلك هذه الصفحة. يعتمد حجم الفرق على مطالباتك، والنموذج الذي تستخدمه، والعمل الذي تطلبه، لذلك قِس نتائجك قبل التغيير وبعده. نفّذ المهمة الفعلية نفسها في جلستين جديدتين، إحداهما باستخدام Default والأخرى باستخدام Concise، ثم قارن بينهما. ويُعد سطر الحالة أسهل مقياس، لأن Claude Code يمرر إلى برنامجك كائن JSON عبر stdin يتضمن بالفعل اسم النمط وعدد الرموز:

cat > ~/.claude/statusline.sh <<'EOF'
#!/bin/bash
input=$(cat)
style=$(echo "$input" | jq -r '.output_style.name // "default"')
out=$(echo "$input" | jq -r '.context_window.total_output_tokens // 0')
cost=$(echo "$input" | jq -r '.cost.total_cost_usd // 0')
echo "style=$style out=$out cost=$cost"
EOF
chmod +x ~/.claude/statusline.sh

وجّه إعداد statusLine إليه:

{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}

يعرض الشريط أسفل الجلسة الآن النمط النشط بجوار عدد الرموز التي أنتجها، وهذا هو القياس المطلوب قبل التغيير وبعده. يحتاج البرنامج إلى jq، وهو محلل JSON لسطر الأوامر، لذلك ثبّته أولاً باستخدام sudo apt install -y jq. إذا ظل الشريط فارغاً، شغّل البرنامج يدوياً ومرّر إليه بعض JSON، لأن سطر الحالة الذي ينتهي بحالة غير صفرية لا يطبع شيئاً ولا يبلّغ عن شيء. تعرض حالة Claude Code المخصصة بقية الحقول الموجودة في ذلك الكائن. وللاطلاع على جانب الفوترة بدلاً من جانب الجلسة، اقرأ إلى أين تذهب رموز Claude Code فعلياً والأدوات التي تتتبع إنفاق Claude Code.

كيفية التحقق من نمط الإخراج المُحمَّل فعلياً

استخدم عمليات التحقق التالية بدلاً من التخمين.

  • /status يسرد مصادر الإعدادات السارية لهذه الجلسة، بما في ذلك ما إذا كانت الإعدادات المُدارة من مؤسسة مفعّلة.
  • /context يعرض system prompt المُحمَّل كفئة ضمن تفصيل نافذة السياق.
  • claude doctor شغّله من shell من دون بدء جلسة؛ فهو يطبع تشخيصات التثبيت والإعدادات، ويبلّغ عن ملفات الإعدادات غير الصالحة.

عندما لا يُطبَّق نمط ما، يكون السبب في الغالب واحداً من سببين. الأول أنك غيّرته أثناء الجلسة، لذا شغّل /clear. والثاني هو أولوية الإعدادات: يتجاوز .claude/settings.local.json الإعداد .claude/settings.json، وكلاهما يتجاوز ~/.claude/settings.json. وبما أن أداة الاختيار /config تكتب إلى الملف المحلي، فإن النمط الذي أضافه فريقك إلى .claude/settings.json يُستبدل بهدوء على أي جهاز استخدم فيه أحدهم القائمة مرة واحدة. يوضح لك /status مصدر الإعداد الذي فاز بالأولوية.

يؤدي خطأ بناء جملة JSON إلى العَرَض نفسه، لكن إصلاحه مختلف. يحدد claude doctor اسم الملف الذي تعذّر تحليله، ولذلك يجدر تشغيله قبل البحث عن أي سبب أكثر تعقيداً.

FAQ

لماذا توقف الأمر /output-style عن العمل؟

أُلغي الأمر في v2.1.73 وأزيل في v2.1.91، لذلك لم يعد موجوداً في إصدار من منتصف 2026. شغّل claude --version لمعرفة الإصدار الموجود لديك. اختر النمط من /config ضمن نمط الإخراج، أو اضبط المفتاح outputStyle في ملف إعدادات. لقد استمر المفتاح بعد إزالة الأمر، لذا فإن ضبطه مباشرة هو التعليمات التي تستحق تدوينها في ملاحظاتك.

غيّرت نمط الإخراج ولم يحدث شيء. لماذا؟

نمط الإخراج جزء من system prompt، ويبني Claude Code الـsystem prompt مرة واحدة عند بدء الجلسة. يُحفَظ التغيير الذي تجريه أثناء الجلسة، لكنه لا يُطبَّق، لأن الجلسة الجارية تواصل إرسال الـprompt الذي بنته عند بدء التشغيل. شغّل /clear أو ابدأ جلسة جديدة. إذا لم يُطبَّق التغيير بعد ذلك، فشغّل /status لمعرفة مصدر الإعدادات الذي كانت له الأولوية، لأن .claude/settings.local.json يتغلب على .claude/settings.json، وكلاهما يتغلب على ~/.claude/settings.json.

هل يوفر نمط الإخراج Concise المال؟

يقلل عدد رموز الإخراج بالاتجاه المتوقع، لأنه يوجّه Claude إلى إبقاء الاستجابات قصيرة افتراضياً. يعتمد المقدار على prompts التي تستخدمها وعلى model الذي تختاره، لذلك تعامل مع أي نسبة منشورة على أنها قياس لعمل شخص آخر. أجرِ القياس بنفسك: شغّل /context في جلسة جديدة باستخدام كل نمط لقياس جانب الإدخال، ثم نفّذ المهمة نفسها باستخدام كل نمط وقارن عدد رموز الإخراج. لا يختصر Concise تقرير خطأ أو تحذيراً أمنياً، لذلك تبقى الأجزاء التي تحتاج إلى قراءتها أكثر كاملة.

هل يغيّر نمط الإخراج طريقة كتابة subagents لدي؟

لا. تنطبق أنماط الإخراج على المحادثة الرئيسية فقط، لأن subagent يبدأ محادثته الخاصة باستخدام system prompt الخاص به ومجموعة الأدوات الخاصة به. الاستثناء هو تفرّع المحادثة الحالية، إذ يرث التفرّع system prompt الخاص بالمحادثة الأصلية كما هو. لتغيير طريقة استجابة subagent، عدّل ملف ذلك الوكيل نفسه.

هل يتيح نمط الإخراج لـClaude تشغيل الأوامر دون طلب الإذن؟

لا. نمط الإخراج نص داخل system prompt، لذلك لا يمكنه إلا التأثير في ما يحاول Claude تنفيذه. يجعل نمط Proactive Claude يفترض ويتصرف بدلاً من التوقف عند القرارات الروتينية، لكنه لا يستطيع مع ذلك الموافقة على أي أمر. يحدد permission mode ما يُشغَّل دون طلب تأكيد، وهذا هو الإعداد الذي ينبغي التحقق منه قبل ترك جلسة قيد التشغيل على خادم.