Claude Code hook वह कमांड है जिसे ऐप सत्र के किसी निर्धारित बिंदु पर चलाता है। यह मार्गदर्शिका प्रोजेक्ट के दायरे में एक SessionStart hook जोड़ती है, जो मौजूदा Git शाखा पढ़कर बातचीत शुरू या फिर जारी होने पर संदर्भ की एक छोटी पंक्ति देता है। यह Anthropic के मौजूदा hook संदर्भ पर आधारित है, जिसे 19 अक्टूबर 2026 को जाँचा गया। BIG CHANGE ने Node से स्क्रिप्ट सीधे जाँची और सेटिंग्स JSON की जाँच की; हमने Claude Code hook नहीं चलाया और मॉडल का जवाब नहीं परखा।
बड़ा बदलाव
- क्या बदला: प्रोजेक्ट का यह
SessionStarthook Claude Code में बातचीत शुरू या फिर जारी होने पर Git शाखा की एक छोटी पंक्ति देता है। - यह क्यों मायने रखता है: हर बार हाथ से पेस्ट किए बिना शुरुआत या पुनः जारी होने पर मौजूदा शाखा सत्र के संदर्भ में पहुँचती है।
- किस बात का ध्यान रखें: संदर्भ किसी नियम को लागू नहीं कराता और मॉडल के उत्तर की गारंटी नहीं देता। अपने भरोसेमंद प्रोजेक्ट में शुरुआत और पुनः जारी होने पर वास्तविक पहुँच जाँचें।
लगाने से पहले
ऐसा Git प्रोजेक्ट लें जिसे बदलने की अनुमति आपके पास हो। एक ही टर्मिनल में Claude Code, Node.js और Git उपलब्ध होने चाहिए, साथ ही प्रोजेक्ट की .claude/settings.json फ़ाइल बदलने की अनुमति चाहिए। जाँचें node --version, git --version और claude --version। तैयारी वाले कंप्यूटर में Claude Code 2.1.301 और Node 24.19.0 थे; ये देखे गए संस्करण हैं, न्यूनतम आवश्यकताएँ नहीं।
मॉडल को भेजने से पहले शाखा का नाम जाँचें। शाखा के नाम में ग्राहक, टिकट या घटना का नाम हो सकता है। अक्षर छाँटने और पाठ छोटा करने से उसका अर्थ नहीं मिटता। यह उदाहरण तभी लगाएँ जब शाखा का नाम मॉडल संदर्भ के लिए स्वीकृत हो। अन्यथा स्क्रिप्ट को स्वीकृत, असंवेदनशील स्थिति देने के लिए बदलें और लगाने से पहले बदलाव की समीक्षा करें। Anthropic के डेटा उपयोग दस्तावेज़ सेवा में डेटा सँभालने का तरीका बताते हैं; अपने प्रोजेक्ट की अनुमतियाँ भी लागू करें।
Hook कमांड आपके उपयोगकर्ता अधिकारों से चलती हैं। सक्षम करने से पहले मौजूदा प्रोजेक्ट और उपयोगकर्ता hook, संगठन की नीति और पूरी स्क्रिप्ट देखें। प्रोजेक्ट सेटिंग्स रिपॉज़िटरी में कमिट की जा सकती हैं; .claude/settings.local.json स्थानीय रहती है। यह उदाहरण प्रोजेक्ट सेटिंग्स फ़ाइल इस्तेमाल करता है ताकि कॉन्फ़िगरेशन उसी प्रोजेक्ट तक सीमित रहे।
दो फ़ाइलें लगाएँ
- प्रोजेक्ट के भीतर
.claude/hooks/बनाएँ। यह पूरा ब्लॉक.claude/hooks/session-context.cjsके रूप में सहेजें।
'use strict';
const { execFileSync } = require('node:child_process');
const project = process.env.CLAUDE_PROJECT_DIR;
if (!project) {
process.stderr.write('CLAUDE_PROJECT_DIR is unavailable\n');
process.exit(1);
}
try {
const raw = execFileSync('git', ['-C', project, 'branch', '--show-current'], {
encoding: 'utf8',
timeout: 1500,
maxBuffer: 4096,
stdio: ['ignore', 'pipe', 'pipe'],
}).trim();
const branch = raw ? raw.replace(/[^A-Za-z0-9._/-]/g, '_').slice(0, 80) : 'detached HEAD';
process.stdout.write(`Current project branch: ${branch}\n`);
} catch {
process.stderr.write('Could not read the project branch; check Git and project path\n');
process.exit(1);
}Git की चाइल्ड प्रक्रिया की समय सीमा 1.5 सेकंड और आउटपुट बफ़र 4,096 बाइट है। detached HEAD जैसी स्थिति में शाखा का खाली परिणाम detached HEAD बनता है। प्रोजेक्ट पथ न मिलने या Git विफल होने पर छोटा stderr संदेश और निकास कोड 1 मिलता है।
- अपनी मौजूदा
.claude/settings.jsonफ़ाइल खोलें। नीचे कीhooks.SessionStartप्रविष्टि अन्य सेटिंग्स और hook समूहों में मिलाएँ; मौजूदा प्रविष्टियाँ बचाएँ। ब्लॉक समीक्षा किए गए पैकेट का पूराsettings.example.jsonदिखाता है। यदि फ़ाइल में पहले सेSessionStartप्रविष्टियाँ हैं, तो ऐरे बदलने के बजाय उसमें यह समूह जोड़ें।
{
"hooks": {
"SessionStart": [
{
"matcher": "startup|resume",
"hooks": [
{
"type": "command",
"command": "node",
"args": ["${CLAUDE_PROJECT_DIR}/.claude/hooks/session-context.cjs"],
"timeout": 5
}
]
}
]
}
}Matcher नए और फिर जारी हुए सत्र को कवर करता है। Anthropic clear, compact और fork को भी SessionStart स्रोत के रूप में बताता है; उदाहरण इन्हें जानबूझकर छोड़ता है। args फ़ील्ड exec रूप चुनती है: Claude Code node को हल किए गए प्रोजेक्ट स्क्रिप्ट पथ के साथ एक आर्ग्युमेंट के रूप में चलाता है, बिना shell quoting या parsing के। Windows पर node.exe को वास्तविक executable मिलना चाहिए; .cmd shim exec रूप के लिए ठीक नहीं है। कमांड की पाँच सेकंड की hook समय सीमा स्क्रिप्ट की 1.5 सेकंड की Git समय सीमा से अलग है।
पहले स्क्रिप्ट, फिर Claude Code जाँचें
- Claude Code खोलने से पहले प्रोजेक्ट टर्मिनल में स्क्रिप्ट चलाएँ और आउटपुट की तुलना Git से करें। PowerShell में:
$env:CLAUDE_PROJECT_DIR = (Get-Location).Path
node .claude/hooks/session-context.cjs
git branch --show-currentBash में:
CLAUDE_PROJECT_DIR="$PWD" node .claude/hooks/session-context.cjs
git branch --show-currentस्क्रिप्ट के stdout में ठीक एक पंक्ति होनी चाहिए, Current project branch: BRANCH, जहाँ BRANCH स्क्रिप्ट के अक्षर फ़िल्टर और 80-अक्षर सीमा के बाद का Git परिणाम है। Detached HEAD में Current project branch: detached HEAD छपता है। सीधी जाँच केवल यह सिद्ध करती है कि स्थानीय स्क्रिप्ट इस टर्मिनल में काम करती है। हमारी तैयारी जाँच में सामान्य शाखा का परिणाम Git से मिला; गायब और गलत प्रोजेक्ट पथ से खाली stdout, stderr संदेश और निकास 1 मिला। हमने लंबे नाम की सीमा और detached HEAD के विकल्प को स्रोत में देखा, पर वे मामले चलाए नहीं।
- भरोसेमंद प्रोजेक्ट में एक नई इंटरैक्टिव Claude Code प्रक्रिया
claude --debug-file STARTUP_PRIVATE_LOGके साथ शुरू करें और अपने नियंत्रण वाला निजी पथ इस्तेमाल करें। workspace trust स्वीकारने से पहले प्रोजेक्ट और उपयोगकर्ता hook देखें। debug लॉग मेंSessionStartघटना, स्रोतstartup, चुना गया स्क्रिप्ट पथ, निकास स्थिति और आउटपुट सँभालने का तरीका देखें। Claude से पूछें कि उसे शाखा का कौन-सा संदर्भ मिला, लेकिन उसे कोई टूल इस्तेमाल या Git स्वतंत्र रूप से पढ़ने न दें। उत्तर और debug रिकॉर्ड की तुलना सीधे परिणाम से करें। Hook stdout Claude के संदर्भ में जाता है; दिखाई देने वाले UI में संदेश के रूप में आना तय नहीं है। - उस सत्र से निकलें। अलग प्रक्रिया में
claude --debug-file RESUME_PRIVATE_LOG --resumeसे फिर जारी करें, फिरSessionStartresumeघटना देखें और टूल या Git दोबारा पढ़े बिना प्रश्न वाली जाँच दोहराएँ। दोनों debug लॉग निजी रखें; उनमें प्रोजेक्ट के विवरण हो सकते हैं। गैर-इंटरैक्टिव-pया SDK रन में वही workspace-trust प्रॉम्प्ट नहीं मिलता और रिपॉज़िटरी hook अपने आप चल सकते हैं, इसलिए इस जाँच के लिए इंटरैक्टिव तरीका लें। Anthropic के अनुसार फ़ाइल निगरानी आम तौर पर hook सेटिंग्स के बदलाव उठा लेती है, लेकिन नई प्रक्रिया से शुरुआत और पुनः जारी होने का परीक्षण साफ़ होता है।
बाद में सामान्य प्रोजेक्ट काम से शाखा बदले तो सीधी जाँच और नया सत्र दोहराकर देखें कि पंक्ति बदलती है या नहीं। केवल इस मार्गदर्शिका को परीक्षित बताने के लिए शाखाएँ न बदलें।
अगर न चले
स्क्रिप्ट के सीधे परिणाम से शुरू करें, फिर JSON में मिलाने का तरीका, SessionStart की वर्तनी, startup|resume matcher, प्रोजेक्ट-रूट पथ, node और git की उपलब्धता, workspace trust और debug त्रुटियाँ जाँचें। CLAUDE_PROJECT_DIR न होने पर CLAUDE_PROJECT_DIR is unavailable stderr में छपता है। गलत प्रोजेक्ट पथ या Git विफलता पर Could not read the project branch; check Git and project path छपता है। दोनों निकास 1 देते हैं और संदर्भ की पंक्ति नहीं छापते। SessionStart की विफलता निदान के लिए है और काम नहीं रोकती; इससे किसी कार्रवाई पर रोक नहीं लगाई जा सकती। Anthropic टूल की कार्रवाई नियंत्रित करने के लिए PreToolUse बताता है, जो अलग घटना है और जिसका अलग समीक्षा किया गया डिज़ाइन चाहिए।
स्क्रिप्ट केवल स्थानीय Git चलाती है; नेटवर्क अनुरोध या मॉडल कॉल नहीं करती। Claude Code शुरू करना, फिर जारी करना और प्रश्न जाँच आपके खाते, प्रदाता या मॉडल की उपयोग सीमा खर्च कर सकते हैं; Anthropic की लागत मार्गदर्शिका में मौजूदा शर्तें हैं। यह मार्गदर्शिका कोई तय कीमत नहीं बताती और किसी भुगतान वाले सत्र परीक्षण का दावा नहीं करती।
बातचीत शुरू हो जाने के बाद के अलग कार्य के लिए हमारी Claude Code सत्र का संदर्भ जाँचने और आगे जारी रखने की मार्गदर्शिका देखें। वह संदर्भ जाँच और बातचीत आगे बढ़ाना समझाती है; इस शुरुआती hook को कॉन्फ़िगर नहीं करती।
स्रोत और आगे पढ़ें
- Anthropic, Claude Code hook संदर्भ — मौजूदा प्राथमिक विनिर्देश 19 अक्टूबर 2026 को जाँचा गया। इसमें
SessionStartस्रोत और matcher, exec रूपargs, पथ placeholder, stdout संदर्भ, सेटिंग्स फिर लोड करना, भरोसा, debug लॉग और काम न रोकने वाली विफलता समझाई गई हैं। यह दस्तावेज़ी आधार है, BIG CHANGE द्वारा hook चलाना नहीं। - Anthropic, hook से कार्रवाइयाँ स्वचालित करें — hook सेटअप और परीक्षण का आधिकारिक तरीका। ऊपर की सटीक स्क्रिप्ट और सेटिंग्स इस मार्गदर्शिका के लिए समीक्षा किया गया सीमित BIG CHANGE उदाहरण हैं; विक्रेता के परीक्षण का नकल किया परिणाम नहीं।
- Anthropic, Claude Code सेटअप — इंस्टॉलेशन और वातावरण की आवश्यकताएँ। उदाहरण इस्तेमाल करने से पहले अपने प्लेटफ़ॉर्म के मौजूदा निर्देश देखें।
- Anthropic, Claude Code डेटा उपयोग — शाखा की जानकारी मॉडल संदर्भ में भेजने से पहले जाँचने के लिए प्रदाता की मौजूदा डेटा-प्रबंधन शर्तें; प्रोजेक्ट का अधिकार अलग निर्णय है।
- Anthropic, लागत प्रभावी ढंग से सँभालें — इंटरैक्टिव जाँच के लिए खाते और उपयोग की मौजूदा जानकारी। स्थानीय Git स्क्रिप्ट खुद मॉडल या नेटवर्क को अनुरोध नहीं भेजती।



