SSD Nodes Learn 🎉 VPS من $5.50/شهر
الأدلة Matt Connorبقلم Matt Connor

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

يعدّل نمط الإخراج مطالبة النظام في Claude Code، فيغيّر كل رد وسجل. تعرّف إلى الأنماط الخمسة، وإعداد outputStyle، ولماذا أُزيل الأمر في 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، لذلك لا ينفّذ أي شيء في الإصدار الحالي. تحقّق من الإصدار الذي تستخدمه قبل اتباع أي دليل أقدم. جرى التحقق من الإصدارات الواردة في هذه الصفحة في August 2026.

claude --version

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

  • ~/.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.

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

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

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

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 في ملف إعدادات. لقد بقي المفتاح متاحاً بعد إزالة الأمر، لذلك فإن تعيينه مباشرة هو التعليمات التي تستحق تدوينها في ملاحظاتك.

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

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

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

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

هل يغيّر نمط الإخراج طريقة كتابة الوكلاء الفرعيين؟

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

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

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