SSD Nodes Learn 🎉 VPS $5.50/माह से
गाइड Matt Connorलेखक: Matt Connor

Claude Code में output style कैसे काम करता है?

Claude Code के output style सिस्टम प्रॉम्प्ट को बदलकर जवाबों का स्वरूप तय करते हैं। जानें कि ये इन-बिल्ट स्टाइल्स कैसे काम करती हैं और अपनी कस्टम स्टाइल कैसे लिखें।

Claude Code में output style क्या है

Claude Code में output style निर्देशों का एक ब्लॉक है जिसे Claude Code अपने system prompt में जोड़ता है। यह इस बात को बदल देता है कि Claude आपको कैसे उत्तर देता है: यह वह भूमिका तय करता है जिसे वह निभाता है और उसके द्वारा प्रिंट की जाने वाली सामग्री का स्वरूप कैसा होगा। यह Claude को आपके codebase के बारे में कुछ भी नहीं सिखाता है, और यह Claude को कुछ भी चलाने की अनुमति नहीं दे सकता है।

Claude Code में पांच इन-बिल्ट styles शामिल हैं। आपका चयन एक settings key, outputStyle, में रहता है, और उस key को session शुरू होने पर केवल एक बार पढ़ा जाता है। यह एकमात्र तथ्य इस सुविधा के बारे में अधिकांश भ्रम को स्पष्ट करता है, क्योंकि session के बीच में बदली गई style save तो हो जाती है, लेकिन जब तक आप उसे clear नहीं करते, तब तक उसे अनदेखा कर दिया जाता है।

एक VPS पर यह केवल दिखावटी प्राथमिकता से कहीं अधिक है। transcript वह है जिसे आप SSH (secure shell) link के माध्यम से पढ़ते हैं, जो आमतौर पर एक tmux window के अंदर होता है, इसलिए Claude द्वारा सुनाई गई हर line वह line है जिसका आप इंतज़ार करते हैं और यह एक निश्चित आकार के scrollback buffer में मौजूद एक line होती है।

outputStyle सेटिंग कहाँ स्थित है

/config मेनू में Output style के अंतर्गत एक स्टाइल चुनें। Claude Code आपके द्वारा चुनी गई स्टाइल को उस प्रोजेक्ट में .claude/settings.local.json में लिखता है जिस पर आप काम कर रहे हैं।

स्टैंडअलोन /output-style कमांड अब मौजूद नहीं है। इसे v2.1.73 में deprecated कर दिया गया था और v2.1.91 में हटा दिया गया था, इसलिए वर्तमान बिल्ड पर यह कुछ भी नहीं करता है। किसी भी पुरानी गाइड का पालन करने से पहले जांच लें कि आप कौन सा वर्ज़न चला रहे हैं। इस पृष्ठ पर दिए गए वर्ज़न अगस्त 2026 में जाँचे गए थे।

claude --version

आप इस की (key) को मैन्युअल रूप से भी सेट कर सकते हैं। चार सेटिंग्स फाइलें इसे रख सकती हैं, और संकीर्ण (narrower) फाइल व्यापक (broader) फाइल पर प्रभावी होती है।

  • ~/.claude/settings.json आपकी यूजर फाइल है। यह उस मशीन के हर प्रोजेक्ट पर लागू होती है।
  • .claude/settings.json प्रोजेक्ट फाइल है। इसे git में कमिट किया जाता है, इसलिए यह उन सभी के लिए लागू होती है जो रिपॉजिटरी को क्लोन करते हैं।
  • .claude/settings.local.json लोकल प्रोजेक्ट फाइल है। इसे कमिट नहीं किया जाता है, और यह ऊपर दी गई दोनों फाइलों को ओवरराइड करती है। यह वही फाइल है जिसमें /config मेनू लिखता है।
  • मैनेज्ड सेटिंग्स, जिन्हें एक IT टीम द्वारा Linux पर /etc/claude-code/ जैसे सिस्टम पाथ से डिप्लॉय किया जाता है, वे बाकी सब पर प्रभावी होती हैं।

की (key) का मान स्टाइल का नाम है:

{
  "outputStyle": "Concise"
}

केवल एक सेशन के लिए, कमांड लाइन पर वही की (key) पास करें। --settings फ्लैग एक पाथ या इनलाइन JSON स्ट्रिंग लेता है, और इसके मान उस रन के लिए सेटिंग्स फाइलों में मौजूद उन्हीं कीज़ (keys) को ओवरराइड करते हैं:

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

इस फीचर के जीवनकाल में मेनू लेबल और स्लैश कमांड कम से कम एक बार बदल चुके हैं। outputStyle की (key) नहीं बदली है। जब किसी गाइड का स्क्रीनशॉट आपके द्वारा देखे जा रहे स्क्रीन से मेल खाना बंद कर दे, तो की (key) को सीधे सेट करें और /status के साथ इसकी पुष्टि करें, जो प्रभावी सेटिंग्स स्रोतों को सूचीबद्ध करता है।

नया आउटपुट स्टाइल क्लियर करने तक काम क्यों नहीं करता

Claude Code सिस्टम प्रॉम्प्ट को केवल एक बार बनाता है, जब सेशन शुरू होता है। आउटपुट स्टाइल उसी सिस्टम प्रॉम्प्ट का हिस्सा होता है। इसलिए, सेशन के दौरान सेटिंग बदलने पर वह वैल्यू स्टोर तो हो जाती है, लेकिन आपको कोई बदलाव नहीं दिखता, क्योंकि चल रहा सेशन स्टार्टअप पर बने प्रॉम्प्ट का ही उपयोग करता रहता है। नया स्टाइल अगले /clear या अगले लॉन्च पर लोड होता है।

/clear
/context

/context यह दिखाता है कि वर्तमान में कॉन्टेक्स्ट विंडो में क्या है, जिसे श्रेणियों में विभाजित किया गया है, जिसमें सिस्टम प्रॉम्प्ट भी शामिल है। इसे प्रत्येक स्टाइल के तहत एक नए सेशन में चलाएं और सिस्टम प्रॉम्प्ट लाइन आपके तुलना का इनपुट पक्ष होगी। यह साबित करने का सबसे तेज़ तरीका भी है कि कस्टम स्टाइल लोड हुआ है या नहीं। विंडो में क्या भरा है, इसकी व्यापक तस्वीर के लिए देखें Claude Code सेशन में कॉन्टेक्स्ट कैसे भरता है

सेटिंग के तुरंत लागू होने के बजाय प्रतीक्षा करने का एक कारण है। API प्रॉम्प्ट कैश से बार-बार आने वाले अनुरोधों को पूरा करता है, जो प्रत्येक अनुरोध की शुरुआत से मेल खाता है, और सिस्टम प्रॉम्प्ट बिल्कुल शुरुआत में होता है। बातचीत के बीच में इसे फिर से लिखने से इसके पीछे का सब कुछ अमान्य हो जाएगा, इसलिए अगली टर्न आपके पूरे इतिहास को नए इनपुट के रूप में प्रोसेस करेगी। सेशन की शुरुआत में स्टाइल को फिक्स करने से यह लागत बच जाती है। स्टाइल बदलना सस्ता है। इसके लिए बस एक क्लियर की आवश्यकता है।

प्रत्येक इन-बिल्ट आउटपुट स्टाइल ट्रांसक्रिप्ट में क्या बदलाव करती है

  • Default क्लाउड कोड का सामान्य सिस्टम प्रॉम्प्ट है, जिसे सॉफ्टवेयर इंजीनियरिंग कार्य के लिए लिखा गया है।
  • Concise सीधे परिणाम से शुरू होता है। यह प्रस्तावना और चरण-दर-चरण वर्णन को हटा देता है, और जब तक आप विवरण न मांगें, उत्तरों को संक्षिप्त रखता है। इनके पीछे का इंजीनियरिंग कार्य अपरिवर्तित रहता है। यह कभी भी त्रुटि रिपोर्ट या सुरक्षा चेतावनी को छोटा नहीं करता है, और विनाशकारी कार्रवाई से पहले पूरी तरह से अनुमति मांगता है। इस स्टाइल के लिए क्लाउड कोड v2.1.237 या बाद का संस्करण आवश्यक है।
  • Explanatory किसी कार्य के चरणों के बीच शैक्षिक "Insights" जोड़ता है, जिसमें यह बताया जाता है कि कार्यान्वयन का विकल्प क्यों चुना गया और आपका कोडबेस पहले से किस पैटर्न का उपयोग करता है। ट्रांसक्रिप्ट डिज़ाइन के अनुसार लंबी हो जाती है।
  • Learning और आगे जाता है। क्लाउड उन अंतर्दृष्टि को साझा करता है और फिर आपसे स्वयं कोड के छोटे हिस्से लिखने के लिए कहता है, और फाइल में प्रत्येक स्थान को TODO(human) टिप्पणी के साथ चिह्नित करता है।
  • Proactive क्लाउड को पूछने के बजाय कार्य करने के लिए प्रेरित करता है। यह पुष्टि के लिए रुकने के बजाय नियमित निर्णयों पर उचित धारणाएं बनाता है।

अंतिम वाले को ध्यान से पढ़ें, क्योंकि इसे लोग गलत समझते हैं। Proactive सिस्टम प्रॉम्प्ट में एक मार्गदर्शन है। यह क्लाउड के प्रयासों को बदल देता है। आपकी अनुमति मोड (permission mode) अभी भी यह तय करती है कि बिना पूछे वास्तव में क्या चलता है, जो कि उस सर्वर पर मायने रखने वाली सेटिंग है जिसे आप बिना निगरानी के छोड़ देते हैं। यह ऑटो मोड और क्लाउड कोड के अनुमति मोड में कवर किया गया है।

Output style, CLAUDE.md, hook और subagent के बीच अंतर

ये सभी माध्यम Claude को व्यवहार करने के निर्देश देने के समान हैं, लेकिन ये अलग-अलग स्तरों पर काम करते हैं।

  • Output style को system prompt में जोड़ा जाता है। यह मुख्य बातचीत के हर उत्तर पर लागू होता है।
  • CLAUDE.md को system prompt के बाद एक user message के रूप में जोड़ा जाता है। यहाँ project conventions और codebase से जुड़े तथ्य रखे जाते हैं।
  • --append-system-prompt किसी एक invocation के लिए system prompt में टेक्स्ट जोड़ता है, बिना कुछ हटाए। यह output style का एक बार इस्तेमाल होने वाला संस्करण है।
  • Hook एक shell command है जिसे Claude Code किसी घटना (event) के होने पर खुद चलाता है। यह harness द्वारा लागू किया जाता है, इसलिए यह तब भी चलता है जब Claude ने इसे न चुना हो। देखें Claude Code hook क्या कर सकता है और क्या नहीं
  • Subagent अपने स्वयं के system prompt और tool set के साथ चलता है।

इनमें से पहले दो के बीच चयन करने के लिए एक छोटा परीक्षण करें। आपके project के बारे में तथ्य CLAUDE.md में होने चाहिए, क्योंकि Claude को उनके बारे में पता होना चाहिए। phrasing (वाक्य रचना) output style में होनी चाहिए, क्योंकि यह इस बारे में है कि उत्तर कैसा दिखता है। जो कुछ भी हर बार होना ही चाहिए, चाहे model कुछ भी तय करे, वह एक hook है।

Output styles केवल मुख्य बातचीत पर लागू होते हैं। Subagent आपकी style को inherit नहीं करता है, क्योंकि वह अपने स्वयं के system prompt के साथ अपनी अलग बातचीत शुरू करता है। वर्तमान बातचीत का fork एक अपवाद है, क्योंकि fork अपने parent के system prompt को हूबहू inherit करता है। यदि कोई subagent उस तरीके से लिखता है जो आपको पसंद नहीं है, तो अपनी style के बजाय उस agent की file को edit करें।

अपना स्वयं का आउटपुट स्टाइल कैसे लिखें

एक कस्टम आउटपुट स्टाइल फ्रंटमैटर वाली एक markdown फाइल होती है। इसे हर प्रोजेक्ट में उपयोग करने के लिए अपनी होम डायरेक्टरी में सेव करें, या कोड के साथ रखने के लिए रिपॉजिटरी के अंदर रखें। यूजर डायरेक्टरी ~/.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 खोलें। आपका स्टाइल आपके द्वारा लिखे गए विवरण के साथ Output style सूची में दिखाई देगा। यदि यह गायब है, तो फाइल पढ़ी नहीं जा रही है: पाथ की जाँच करें, और सुनिश्चित करें कि --- फ्रंटमैटर ब्लॉक फाइल में सबसे पहली चीज है। फाइल का नाम ही स्टाइल का नाम बन जाता है जब तक कि फ्रंटमैटर name सेट न करे, इसलिए इसे Terse ops कहा जाता है, न कि terse-ops

इसे चुनें, या की (key) को उस सटीक नाम पर सेट करें और क्लियर करें:

{
  "outputStyle": "Terse ops"
}

एक फील्ड यह तय करती है कि आपकी फाइल एक समायोजन (adjustment) है या प्रतिस्थापन (replacement)। keep-coding-instructions डिफ़ॉल्ट रूप से false पर होता है, जिसका अर्थ है कि एक कस्टम स्टाइल Claude Code के इन-बिल्ट सॉफ्टवेयर इंजीनियरिंग निर्देशों को हटा देता है और केवल आपके टेक्स्ट पर चलता है। वे इन-बिल्ट निर्देश ही Claude को बताते हैं कि किसी बदलाव का दायरा कैसे तय करना है और अपने काम को कैसे सत्यापित करना है। राइटिंग असिस्टेंट या डेटा एनालिस्ट के लिए इस फील्ड को छोड़ दें, जहाँ इन निर्देशों की आवश्यकता नहीं होती। कोड से संबंधित किसी भी कार्य के लिए इसे true पर सेट करें, अन्यथा आप सोचेंगे कि एक सावधान इंजीनियर ने अचानक अपना काम जाँच करना क्यों बंद कर दिया।

description वह लाइन है जिसे /config पिकर नाम के बगल में दिखाता है। इसे उस समय के लिए लिखें जब आप छह महीने बाद अपने ही दो स्टाइल्स के बीच चयन कर रहे होंगे।

SSH पर संक्षिप्त शैली अलग क्यों है

VPS पर आप एक ऐसे माध्यम से transcript पढ़ते हैं जिसमें local terminal की तुलना में कई परतें होती हैं, और प्रत्येक परत पर अधिक शब्दों (verbosity) के लिए आपको कीमत चुकानी पड़ती है।

Scrollback पहली परत है। tmux में, प्रत्येक pane में पंक्तियों की एक निश्चित संख्या होती है, जिसे history-limit द्वारा सेट किया जाता है, जो डिफ़ॉल्ट रूप से 2000 होती है। एक विस्तृत transcript उस buffer को जल्दी भर देता है, जिससे आपके session का पिछला हिस्सा जल्दी हट जाता है और वह output जिसे आप देखना चाहते थे, गायब हो जाता है। यदि आपको अधिक जगह चाहिए तो इसे बढ़ाएं:

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

उसके बाद बनाए गए panes में प्रत्येक में 20000 पंक्तियाँ रहती हैं, जिसकी कीमत प्रति pane memory के रूप में चुकानी पड़ती है। पहले से खुले panes पुरानी सीमा ही रखते हैं, क्योंकि pane बनते समय buffer का आकार निश्चित हो जाता है। यदि आप अभी भी session layout बना रहे हैं, तो VPS पर tmux के अंदर Claude Code चलाना में इसकी जानकारी दी गई है।

Latency दूसरी परत है। response आपके terminal में उसी गति से आता है जैसे वह generate होता है। उच्च round-trip time वाले link पर, एक लंबी प्रस्तावना (preamble) वह समय है जो आप उत्तर आने से पहले text को स्क्रीन पर आते हुए देखने में बिताते हैं।

Output tokens तीसरी परत हैं। प्रत्येक विस्तृत पंक्ति को output के रूप में bill किया जाता है। Explanatory और Learning मोड को जानबूझकर लंबा रखा गया है। Concise मोड को जानबूझकर छोटा रखा गया है, क्योंकि यह Claude को डिफ़ॉल्ट रूप से response संक्षिप्त रखने का निर्देश देता है।

किसी के भी द्वारा बताए गए प्रतिशत पर भरोसा न करें, इस पृष्ठ सहित। अंतर का आकार आपके prompts, आपके model और आपके द्वारा मांगे गए काम पर निर्भर करता है, इसलिए अपने स्वयं के before और after का माप लें। दो नए sessions में एक ही वास्तविक कार्य चलाएं, एक Default के तहत और एक Concise के तहत, फिर तुलना करें। एक statusline सबसे आसान मापक है, क्योंकि Claude Code आपकी script को stdin पर एक JSON object देता है जिसमें style का नाम और token counts दोनों पहले से मौजूद होते हैं:

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 setting को इसकी ओर इंगित करें:

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

session के नीचे की पट्टी अब सक्रिय style को उसके द्वारा उत्पन्न tokens के साथ दिखाती है, जो कि ठीक वही before और after है जिसकी आपको आवश्यकता है। script को jq की आवश्यकता है, जो कि command-line JSON parser है, इसलिए इसे पहले sudo apt install -y jq के साथ install करें। यदि पट्टी खाली रहती है, तो script को मैन्युअल रूप से चलाएं और उसमें कुछ JSON pipe करें, क्योंकि एक statusline जो non-zero exit code देती है, वह कुछ भी print नहीं करती और न ही कुछ रिपोर्ट करती है। एक कस्टम Claude Code statusline उस object के बाकी fields की सूची देता है। billing पक्ष के लिए, session पक्ष के बजाय, Claude Code के tokens वास्तव में कहाँ जाते हैं और Claude Code के खर्च को ट्रैक करने वाले tools पढ़ें।

यह कैसे जाँचें कि कौन सा आउटपुट स्टाइल वास्तव में लोड हुआ है

अनुमान लगाने के बजाय इन जाँचों का उपयोग करें।

  • /status इस सत्र के लिए प्रभावी सेटिंग्स स्रोतों की सूची दिखाता है, जिसमें यह भी शामिल है कि क्या किसी संगठन द्वारा प्रबंधित सेटिंग्स लागू हैं।
  • /context कॉन्टेक्स्ट विंडो ब्रेकडाउन में एक श्रेणी के रूप में लोड किए गए सिस्टम प्रॉम्प्ट को दिखाता है।
  • claude doctor, जिसे सत्र शुरू किए बिना शेल से चलाया जाता है, इंस्टॉलेशन और सेटिंग्स का डायग्नोस्टिक्स प्रिंट करता है और उन सेटिंग्स फाइलों की रिपोर्ट करता है जो अमान्य हैं।

जब कोई स्टाइल लागू नहीं होता है, तो इसका कारण लगभग हमेशा दो चीजों में से एक होता है। पहला यह कि आपने इसे सत्र के बीच में बदल दिया है, इसलिए /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 में deprecated कर दिया गया था और v2.1.91 में हटा दिया गया, इसलिए 2026 के मध्य के किसी भी build में यह कमांड मौजूद नहीं है। आपके पास क्या है यह देखने के लिए claude --version चलाएँ। Output style के अंतर्गत /config से कोई style चुनें, या settings फ़ाइल में outputStyle key सेट करें। यह key कमांड से अधिक समय तक उपलब्ध रही है, इसलिए इसे सीधे सेट करना ही वह निर्देश है जिसे आपको अपने नोट्स में लिख लेना चाहिए।

मैंने अपना output style बदल दिया लेकिन कुछ नहीं हुआ। क्यों?

Output style, system prompt का हिस्सा होता है, और Claude Code session शुरू होने पर केवल एक बार system prompt बनाता है। session के बीच में किया गया बदलाव save तो हो जाता है लेकिन लागू नहीं होता, क्योंकि चल रहा session वही prompt भेजता रहता है जो startup के समय बना था। /clear चलाएँ या एक नया session शुरू करें। यदि यह फिर भी लागू नहीं होता है, तो यह देखने के लिए /status चलाएँ कि कौन सा settings source प्रभावी रहा, क्योंकि .claude/settings.local.json, .claude/settings.json को override करता है और दोनों ही ~/.claude/settings.json को override करते हैं।

क्या Concise output style पैसे बचाता है?

यह output tokens को आपकी अपेक्षा के अनुसार कम करता है, क्योंकि यह Claude को डिफ़ॉल्ट रूप से responses छोटे रखने का निर्देश देता है। कितनी बचत होगी यह आपके prompts और model पर निर्भर करता है, इसलिए किसी भी प्रकाशित प्रतिशत को केवल किसी और के काम का मापन मानें। अपना मापन स्वयं करें: input side के लिए प्रत्येक style के अंतर्गत एक नए session में /context चलाएँ, फिर प्रत्येक के अंतर्गत वही कार्य चलाएँ और output token की संख्या की तुलना करें। Concise कभी भी error report या security warning को छोटा नहीं करता है, इसलिए जिन हिस्सों को आपको सबसे अधिक पढ़ने की आवश्यकता है, वे पूरे रहते हैं।

क्या output style मेरे subagents के लिखने के तरीके को बदल देगा?

नहीं। Output styles केवल मुख्य बातचीत (main conversation) पर लागू होते हैं, क्योंकि एक subagent अपने स्वयं के system prompt और अपने स्वयं के tool set के साथ अपनी अलग बातचीत शुरू करता है। वर्तमान बातचीत का fork एक अपवाद है, क्योंकि fork अपने parent के system prompt को हूबहू inherit करता है। subagent के response के तरीके को बदलने के लिए, उस agent की अपनी फ़ाइल को edit करें।

क्या कोई output style Claude को बिना पूछे commands चलाने दे सकता है?

नहीं। Output style, system prompt में मौजूद टेक्स्ट है, इसलिए यह केवल इस बात को प्रभावित कर सकता है कि Claude क्या करने का प्रयास करता है। Proactive style, Claude को सामान्य निर्णयों पर रुकने के बजाय अनुमान लगाने और कार्य करने के लिए प्रेरित करता है, लेकिन फिर भी यह किसी command को स्वयं approve नहीं कर सकता। आपका permission mode यह तय करता है कि बिना prompt के क्या चलेगा, और सर्वर पर session को चालू छोड़ने से पहले इसी सेटिंग की जाँच करनी चाहिए।