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 کے نفاذ کا ثبوت یا اسی واقعے کا براہ راست مؤرخہ اصل نہیں۔
