दुनिया ठहरी नहीं है।RSS
BIG CHANGE.
एक टैप पर BIG CHANGE
एक टैप पर BIG CHANGE

बड़ी तस्वीर के लिए जगह बनाएँ।

BIG CHANGE को होम स्क्रीन या डेस्कटॉप पर जोड़ें। यह अपनी अलग विंडो में खुलेगा और ऑनलाइन होने पर ताज़ा लेख दिखाएगा।

iPhone & iPad
Safari में bigchange.ai खोलें। Share पर टैप करें, फिर Add to Home Screen चुनें। यदि Open as Web App दिखे, तो उसे चालू करें और Add पर टैप करें।
Android
Chrome में bigchange.ai खोलें। ब्राउज़र मेनू में Install app या Add to Home screen चुनें।
डेस्कटॉप
Chrome या Edge में पता बार के इंस्टॉल आइकन या ब्राउज़र के ऐप मेन्यू का उपयोग करें। Mac पर Safari में File → Add to Dock चुनें।

Markdown संस्करण

AI-translated from English; not yet reviewed by a fluent editor.

# Claude Code सत्र शुरू होने पर सीमित प्रोजेक्ट संदर्भ hook जोड़ें

> छोटा प्रोजेक्ट SessionStart hook लगाएँ जो मौजूदा Git शाखा को Claude Code संदर्भ में जोड़ता है। उसका सीधा आउटपुट, सत्र शुरू करना, फिर जारी करना और विफलता व्यवहार जाँचें।

By BIG CHANGE Editorial

Published: 2026-10-20T00:22:54.831Z
Updated: 2026-10-20T00:22:54.831Z
Canonical: https://bigchange.ai/blog/claude-code-session-start-branch-context-hook-guide

![Conceptual charcoal illustration of an unbranded desktop monitor with one short orange stroke above two soft charcoal strokes; a keyboard rests in front.](https://bigchange.ai/api/media/file/claude-code-session-start-context-hero-v2.png)
AI-generated conceptual illustration by BIG CHANGE; no actual Claude Code interface, hook execution or model result is depicted.

Claude Code hook वह कमांड है जिसे ऐप सत्र के किसी निर्धारित बिंदु पर चलाता है। यह मार्गदर्शिका प्रोजेक्ट के दायरे में एक `SessionStart` hook जोड़ती है, जो मौजूदा Git शाखा पढ़कर बातचीत शुरू या फिर जारी होने पर संदर्भ की एक छोटी पंक्ति देता है। यह [Anthropic के मौजूदा hook संदर्भ](https://code.claude.com/docs/en/hooks) पर आधारित है, जिसे 19 अक्टूबर 2026 को जाँचा गया। BIG CHANGE ने Node से स्क्रिप्ट सीधे जाँची और सेटिंग्स JSON की जाँच की; हमने Claude Code hook नहीं चलाया और मॉडल का जवाब नहीं परखा।

## बड़ा बदलाव

- **क्या बदला:** प्रोजेक्ट का यह `SessionStart` hook 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 के डेटा उपयोग दस्तावेज़](https://code.claude.com/docs/en/data-usage) सेवा में डेटा सँभालने का तरीका बताते हैं; अपने प्रोजेक्ट की अनुमतियाँ भी लागू करें।

Hook कमांड आपके उपयोगकर्ता अधिकारों से चलती हैं। सक्षम करने से पहले मौजूदा प्रोजेक्ट और उपयोगकर्ता hook, संगठन की नीति और पूरी स्क्रिप्ट देखें। प्रोजेक्ट सेटिंग्स रिपॉज़िटरी में कमिट की जा सकती हैं; `.claude/settings.local.json` स्थानीय रहती है। यह उदाहरण प्रोजेक्ट सेटिंग्स फ़ाइल इस्तेमाल करता है ताकि कॉन्फ़िगरेशन उसी प्रोजेक्ट तक सीमित रहे।

## दो फ़ाइलें लगाएँ

1. प्रोजेक्ट के भीतर `.claude/hooks/` बनाएँ। यह पूरा ब्लॉक `.claude/hooks/session-context.cjs` के रूप में सहेजें।

```javascript
'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 मिलता है।

2. अपनी मौजूदा `.claude/settings.json` फ़ाइल खोलें। नीचे की `hooks.SessionStart` प्रविष्टि अन्य सेटिंग्स और hook समूहों में मिलाएँ; मौजूदा प्रविष्टियाँ बचाएँ। ब्लॉक समीक्षा किए गए पैकेट का पूरा `settings.example.json` दिखाता है। यदि फ़ाइल में पहले से `SessionStart` प्रविष्टियाँ हैं, तो ऐरे बदलने के बजाय उसमें यह समूह जोड़ें।

```json
{
  "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 जाँचें

3. Claude Code खोलने से पहले प्रोजेक्ट टर्मिनल में स्क्रिप्ट चलाएँ और आउटपुट की तुलना Git से करें। PowerShell में:

```powershell
$env:CLAUDE_PROJECT_DIR = (Get-Location).Path
node .claude/hooks/session-context.cjs
git branch --show-current
```

Bash में:

```bash
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 के विकल्प को स्रोत में देखा, पर वे मामले चलाए नहीं।

4. भरोसेमंद प्रोजेक्ट में एक नई **इंटरैक्टिव** Claude Code प्रक्रिया `claude --debug-file STARTUP_PRIVATE_LOG` के साथ शुरू करें और अपने नियंत्रण वाला निजी पथ इस्तेमाल करें। workspace trust स्वीकारने से पहले प्रोजेक्ट और उपयोगकर्ता hook देखें। debug लॉग में `SessionStart` घटना, स्रोत `startup`, चुना गया स्क्रिप्ट पथ, निकास स्थिति और आउटपुट सँभालने का तरीका देखें। Claude से पूछें कि उसे शाखा का कौन-सा संदर्भ मिला, लेकिन उसे कोई टूल इस्तेमाल या Git स्वतंत्र रूप से पढ़ने न दें। उत्तर और debug रिकॉर्ड की तुलना सीधे परिणाम से करें। Hook stdout Claude के संदर्भ में जाता है; दिखाई देने वाले UI में संदेश के रूप में आना तय नहीं है।
5. उस सत्र से निकलें। अलग प्रक्रिया में `claude --debug-file RESUME_PRIVATE_LOG --resume` से फिर जारी करें, फिर `SessionStart` `resume` घटना देखें और टूल या 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 की लागत मार्गदर्शिका](https://code.claude.com/docs/en/costs) में मौजूदा शर्तें हैं। यह मार्गदर्शिका कोई तय कीमत नहीं बताती और किसी भुगतान वाले सत्र परीक्षण का दावा नहीं करती।

बातचीत शुरू हो जाने के बाद के अलग कार्य के लिए हमारी [Claude Code सत्र का संदर्भ जाँचने और आगे जारी रखने की मार्गदर्शिका](https://bigchange.ai/blog/claude-code-session-context-continue-guide) देखें। वह संदर्भ जाँच और बातचीत आगे बढ़ाना समझाती है; इस शुरुआती hook को कॉन्फ़िगर नहीं करती।

## स्रोत और आगे पढ़ें

- [Anthropic, Claude Code hook संदर्भ](https://code.claude.com/docs/en/hooks) — मौजूदा प्राथमिक विनिर्देश 19 अक्टूबर 2026 को जाँचा गया। इसमें `SessionStart` स्रोत और matcher, exec रूप `args`, पथ placeholder, stdout संदर्भ, सेटिंग्स फिर लोड करना, भरोसा, debug लॉग और काम न रोकने वाली विफलता समझाई गई हैं। यह दस्तावेज़ी आधार है, BIG CHANGE द्वारा hook चलाना नहीं।
- [Anthropic, hook से कार्रवाइयाँ स्वचालित करें](https://code.claude.com/docs/en/hooks-guide) — hook सेटअप और परीक्षण का आधिकारिक तरीका। ऊपर की सटीक स्क्रिप्ट और सेटिंग्स इस मार्गदर्शिका के लिए समीक्षा किया गया सीमित BIG CHANGE उदाहरण हैं; विक्रेता के परीक्षण का नकल किया परिणाम नहीं।
- [Anthropic, Claude Code सेटअप](https://code.claude.com/docs/en/setup) — इंस्टॉलेशन और वातावरण की आवश्यकताएँ। उदाहरण इस्तेमाल करने से पहले अपने प्लेटफ़ॉर्म के मौजूदा निर्देश देखें।
- [Anthropic, Claude Code डेटा उपयोग](https://code.claude.com/docs/en/data-usage) — शाखा की जानकारी मॉडल संदर्भ में भेजने से पहले जाँचने के लिए प्रदाता की मौजूदा डेटा-प्रबंधन शर्तें; प्रोजेक्ट का अधिकार अलग निर्णय है।
- [Anthropic, लागत प्रभावी ढंग से सँभालें](https://code.claude.com/docs/en/costs) — इंटरैक्टिव जाँच के लिए खाते और उपयोग की मौजूदा जानकारी। स्थानीय Git स्क्रिप्ट खुद मॉडल या नेटवर्क को अनुरोध नहीं भेजती।

## Sources

- [Claude Code hook संदर्भ](https://code.claude.com/docs/en/hooks) — Anthropic का मौजूदा प्राथमिक मैनुअल, जिसे 19 अक्टूबर 2026 के स्वीकृत स्नैपशॉट से और लिखते समय दोबारा जाँचा गया। SessionStart startup/resume स्रोत और matcher का अर्थ, exec रूप command और args, प्रोजेक्ट-रूट placeholder, साधारण stdout संदर्भ, सेटिंग्स निगरानी, workspace trust, debug-file निरीक्षण, Windows में वास्तविक executable का नियम और काम न रोकने वाली SessionStart त्रुटियाँ बताता है। यह उत्पाद व्यवहार समझाता है; BIG CHANGE ने Claude द्वारा बुलाया hook नहीं चलाया। मैनुअल की कोई निश्चित संशोधन तिथि नहीं दी गई थी।
- [hook से कार्रवाइयाँ स्वचालित करें](https://code.claude.com/docs/en/hooks-guide) — Anthropic का आधिकारिक सेटअप और परीक्षण तरीका। यह पाठक की hook कॉन्फ़िगरेशन और निदान प्रक्रिया का आधार है, यह दावा नहीं कि BIG CHANGE ने Claude Code के अंदर उदाहरण चलाया। लेख की सटीक सीमित Node स्क्रिप्ट और सेटिंग्स अलग से समीक्षा किए स्थानीय कार्यान्वयन पैकेट से आई हैं।
- [Claude Code का उन्नत सेटअप](https://code.claude.com/docs/en/setup) — स्थानीय Claude Code सेटअप जाँचने का आधिकारिक इंस्टॉलेशन और वातावरण संदर्भ। तैयारी में केवल संस्करण 2.1.301 देखा गया; यह स्रोत उसे न्यूनतम आवश्यकता नहीं बनाता।
- [Claude Code डेटा उपयोग](https://code.claude.com/docs/en/data-usage) — खाते के अनुसार बदलने वाली आधिकारिक डेटा-प्रबंधन शर्तें। लेख पाठकों को Git शाखा की जानकारी मॉडल संदर्भ में डालने से पहले इन्हें देखने को कहता है; फ़िल्टर और काटना शाखा के नाम से गोपनीय ग्राहक या घटना विवरण उजागर होने से नहीं रोकते। कोई व्यापक गोपनीयता गारंटी नहीं निकाली गई है।
- [लागत प्रभावी ढंग से सँभालें](https://code.claude.com/docs/en/costs) — इंटरैक्टिव शुरुआत/पुनः जारी होने के प्रश्न परीक्षणों के लिए खाते और मॉडल उपयोग की आधिकारिक जानकारी। स्थानीय स्क्रिप्ट खुद मॉडल या नेटवर्क को अनुरोध नहीं भेजती, जबकि वास्तविक Claude सत्र प्लान, प्रदाता या API सीमा खर्च कर सकते हैं। तय कीमत या भुगतान वाला परीक्षण दावा नहीं है।
- [Claude Code सत्र का संदर्भ कैसे जाँचें और आगे जारी रखें](https://bigchange.ai/blog/claude-code-session-context-continue-guide) — पिछला BIG CHANGE लेख 414 केवल संदर्भपूर्ण आंतरिक लिंक और संबंध वर्गीकरण के लिए है। वह मौजूदा बातचीत जाँचना और उसका कार्य जारी रखना बताता है; इस hook के कार्यान्वयन का प्रमाण या उसी घटना का सीधा दिनांकित पूर्ववर्ती नहीं है।