Claude Code hook је команда коју апликација извршава у одређеној тачки сесије. Овај водич додаје један пројектни SessionStart hook који чита тренутну Git грану и прослеђује кратак ред контекста када покренете или наставите разговор. Прати актуелну Anthropic референтну документацију за hook механизме, проверену 19. октобра 2026. BIG CHANGE је директно проверио скрипту помоћу Node и проверио JSON подешавања; нисмо покренули Claude Code hook нити тестирали одговор модела.

Велика промена

  • Шта се променило: Овај пројектни SessionStart hook прослеђује кратак ред са Git граном када Claude Code покрене или настави разговор.
  • Зашто је важно: Тренутна грана улази у контекст сесије при покретању или наставку, без ручног лепљења сваки пут.
  • На шта обратити пажњу: Контекст не спроводи правило нити гарантује одговор модела. Проверите стварно прослеђивање при покретању и наставку у сопственом поузданом пројекту.

Пре инсталације

Користите 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 остаје локално. Овај пример користи датотеку пројектних подешавања како би конфигурација важила за тај пројекат.

Инсталирајте две датотеке

  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.

  1. Отворите постојећу датотеку .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 са разрешеном путањом пројектне скрипте као једним аргументом, без наводника или обраде командног интерпретера. На Windows систему, node.exe мора упућивати на извршну датотеку; .cmd посредничка скрипта није погодна за exec облик. Временско ограничење hook команде од пет секунди одвојено је од Git ограничења скрипте од 1,5 секунди.

Проверите скрипту, па Claude Code

  1. Пре отварања Claude Code покрените скрипту у пројектном терминалу и упоредите излаз са Git резултатом. У PowerShell:
PowerShell
$env:CLAUDE_PROJECT_DIR = (Get-Location).Path
node .claude/hooks/session-context.cjs
git branch --show-current

У Bash:

Terminal
CLAUDE_PROJECT_DIR="$PWD" node .claude/hooks/session-context.cjs
git branch --show-current

Очекујте тачно један stdout ред скрипте, Current project branch: BRANCH, где је BRANCH Git резултат после филтрирања знакова и ограничења на 80 знакова. Детацхед HEAD исписује Current project branch: detached HEAD. Директна провера потврђује само да локална скрипта ради у овом терминалу. При нашој припремној провери обична грана одговарала је Git резултату; недостајуће и неважеће путање пројекта дале су празан stdout, stderr дијагностику и излаз 1. Ограничење дугог назива и резервну вредност за detached HEAD прегледали смо у изворном коду, али те случајеве нисмо извршили.

  1. Покрените нов интерактивни Claude Code процес у поузданом пројекту уз claude --debug-file STARTUP_PRIVATE_LOG, користећи приватну путању коју контролишете. Прегледајте пројектне и корисничке hook команде пре прихватања поверења у радни простор. У дијагностичком дневнику потражите SessionStart догађај са извором startup, изабраном путањом скрипте, излазним статусом и обрадом излаза. Питајте Claude који је контекст гране добио, без дозволе да користи алат или самостално чита Git. Упоредите одговор и дијагностички запис са директним резултатом. Hook stdout улази у Claude контекст; није обећано да ће се приказати као порука у видљивом интерфејсу.
  2. Завршите ту сесију. Наставите је у посебном процесу уз claude --debug-file RESUME_PRIVATE_LOG --resume, па проверите SessionStart resume догађај и поновите проверу упитом без алата или поновног читања Git. Оба дијагностичка дневника држите приватним јер могу открити детаље пројекта. Неинтерактивно -p или SDK извршавање не приказује исти захтев за поверење у радни простор и може аутоматски покренути hook команде репозиторијума, зато за ову проверу користите интерактивни ток. Anthropic наводи да надзор датотека обично преузима измене hook подешавања, али нов процес даје јаснији тест покретања и наставка.

Ако редован рад касније промени грану, поновите директну проверу и нову сесију да видите да ли се ред променио. Не мењајте гране само да бисте тврдили да је водич тестиран.

Ако се не покрене

Почните од директног резултата скрипте, па проверите спајање JSON подешавања, запис SessionStart , startup|resume matcher, путању корена пројекта, доступност node и git, поверење у радни простор и дијагностичке грешке. Недостајући 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, заменске ознаке путање, stdout контекст, поновно учитавање подешавања, поверење, дијагностичке дневнике и неблокирајуће понашање при грешци. Ово је документација, а не BIG CHANGE извршавање hook команде.
  • Anthropic, аутоматизујте радње помоћу hook механизама — Званичан поступак подешавања и тестирања hook команди. Тачна скрипта и подешавања изнад јесу ограничен BIG CHANGE пример прегледан за овај водич; нису преписан резултат теста добављача.
  • Anthropic, подешавање Claude Code — Захтеви за инсталацију и окружење. Проверите актуелна упутства за платформу пре коришћења примера.
  • Anthropic, коришћење података у Claude Code — Актуелни услови провајдера за поступање са подацима које треба прегледати пре слања информација о грани у контекст модела; овлашћење пројекта остаје засебна одлука.
  • Anthropic, ефикасно управљајте трошковима — Актуелне смернице за налог и употребу при интерактивним проверама. Сама локална Git скрипта не шаље захтев моделу нити мрежи.