AI-translated from English; not yet reviewed by a fluent editor.
# Adicione um hook limitado de contexto ao início do Claude Code
> Instale um pequeno hook SessionStart do projeto que adiciona a branch Git atual ao contexto do Claude Code. Verifique saída direta, início, retoma e falhas.
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

AI-generated conceptual illustration by BIG CHANGE; no actual Claude Code interface, hook execution or model result is depicted.
Um hook do Claude Code é um comando executado pelo aplicação em um ponto identificado da sessão. Este guia adiciona um hook de projeto `SessionStart` que lê a branch Git atual e fornece uma linha breve de contexto ao iniciar ou retomar a conversa. Segue a [referência atual de hooks da Anthropic](https://code.claude.com/docs/en/hooks), verificada a 19 de outubro de 2026. A BIG CHANGE verificou diretamente o script com Node e o JSON de configuração; não executámos um hook chamado pelo Claude Code nem testámos uma resposta do modelo.
## A grande mudança
- **O que mudou:** Este hook do projeto `SessionStart` fornece uma linha breve de branch Git quando Claude Code inicia ou retoma a conversa.
- **Por que importa:** A branch atual chega ao contexto no início ou na retoma, sem colagem manual toda vez.
- **O que observar:** Contexto não impõe regras nem garante resposta. Verifique a entrega real no início e na retoma do seu projeto confiável.
## Antes de instalar
Use um projeto Git que possa modificar. São necessários Claude Code, Node.js e Git no mesmo terminal e permissão para editar o ficheiro do projeto `.claude/settings.json`. Verifique `node --version`, `git --version` e `claude --version`. O ambiente de preparação tinha Claude Code 2.1.301 e Node 24.19.0; versões observadas não são requisitos mínimos.
**Revise o nome da branch antes de enviá-lo a um modelo.** Pode conter cliente, chamado ou incidente. Filtrar caracteres e encurtar a string não remove esse significado. Instale somente se o nome estiver aprovado para o contexto do modelo. Caso contrário, adapte o script para emitir um estado aprovado e não sensível e revise a mudança antes da instalação. [A documentação de dados da Anthropic](https://code.claude.com/docs/en/data-usage) explica o tratamento pelo serviço; aplique também as permissões do projeto.
Comandos de hooks executam com suas permissões de utilizador. Inspecione hooks de projeto e utilizador, política da organização e script completo antes de ativar. Configurações do projeto podem entrar em commits; `.claude/settings.local.json` fica local. O exemplo usa o ficheiro de configuração do projeto para limitar o escopo.
## Instale os dois ficheiros
1. Crie `.claude/hooks/` no projeto. Salve o bloco inteiro como `.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);
}
```
O processo filho Git tem limite de 1,5 segundo e buffer de saída de 4.096 bytes. Branch vazia, como no HEAD destacado, vira `detached HEAD`. Caminho ausente ou falha Git gera diagnóstico breve em stderr e código de saída 1.
2. Abra seu ficheiro existente `.claude/settings.json`. Combine a entrada `hooks.SessionStart` abaixo com outras configurações e grupos, preservando os existentes. O bloco mostra o ficheiro completo `settings.example.json` do pacote revisado. Se já houver entradas `SessionStart` , adicione o grupo ao array em vez de substituí-lo.
```json
{
"hooks": {
"SessionStart": [
{
"matcher": "startup|resume",
"hooks": [
{
"type": "command",
"command": "node",
"args": ["${CLAUDE_PROJECT_DIR}/.claude/hooks/session-context.cjs"],
"timeout": 5
}
]
}
]
}
}
```
O padrão cobre sessão nova e retoma. A Anthropic também documenta `clear`, `compact` e `fork` como origens de `SessionStart` ; este exemplo as omite de propósito. O campo `args` seleciona a forma exec: Claude Code invoca `node` com o caminho resolvido do script como um argumento, sem aspas ou interpretação pelo shell. No Windows, `node.exe` precisa resolver para um executável real; um adaptador `.cmd` não serve para exec. O limite de cinco segundos do hook é separado do limite Git de 1,5 segundo do script.
## Verifique o script e depois o Claude Code
3. Antes de abrir Claude Code, execute o script no terminal do projeto e compare a saída com Git. No PowerShell:
```powershell
$env:CLAUDE_PROJECT_DIR = (Get-Location).Path
node .claude/hooks/session-context.cjs
git branch --show-current
```
No Bash:
```bash
CLAUDE_PROJECT_DIR="$PWD" node .claude/hooks/session-context.cjs
git branch --show-current
```
Espere exatamente uma linha em stdout, `Current project branch: BRANCH`, em que `BRANCH` é o resultado Git após filtrar caracteres e limitar a 80. HEAD destacado imprime `Current project branch: detached HEAD`. A verificação direta só comprova o script local nesse terminal. Na preparação, a branch normal coincidiu com Git; caminhos ausentes e inválidos deram stdout vazio, diagnóstico stderr e saída 1. Inspecionámos no código o limite dos nomes longos e a alternativa para HEAD destacado, mas não executámos esses casos.
4. Inicie um novo processo **interativo** de Claude Code no projeto confiável com `claude --debug-file STARTUP_PRIVATE_LOG`, usando caminho privado sob seu controle. Revise hooks de projeto e utilizador antes de aceitar a confiança do espaço de trabalho. Procure no registo de depuração um evento `SessionStart` de origem `startup`, caminho do script selecionado, estado de saída e tratamento da saída. Pergunte qual contexto de branch Claude recebeu sem permitir ferramenta nem releitura de Git. Compare resposta e registro com o resultado direto. stdout do hook entra no contexto; não há promessa de mensagem visível na interface.
5. Saia dessa sessão. Retome em processo separado com `claude --debug-file RESUME_PRIVATE_LOG --resume`, verifique o evento `SessionStart` `resume` e repita a pergunta sem ferramenta ou nova leitura Git. Mantenha ambos os registos privados, pois podem expor detalhes do projeto. Uma execução não interativa `-p` ou via SDK não tem o mesmo aviso de confiança e pode executar hooks automaticamente; use o fluxo interativo. A Anthropic diz que seu observador de ficheiros normalmente capta mudanças nos hooks, mas um processo novo torna mais claro o teste de início e retoma.
Se o trabalho normal mudar a branch depois, repita a verificação direta e uma sessão nova para ver a linha. Não mude de branch apenas para afirmar que este guia foi testado.
## Se não executar
Comece pela saída direta e verifique combinação JSON, grafia de `SessionStart` , padrão `startup|resume` , raiz do projeto, disponibilidade de `node` e `git`, confiança e erros de depuração. A ausência de `CLAUDE_PROJECT_DIR` imprime `CLAUDE_PROJECT_DIR is unavailable` em stderr. Caminho errado ou falha Git imprime `Could not read the project branch; check Git and project path`. Ambos saem com 1 e sem linha de contexto. Uma falha de `SessionStart` é diagnóstica e não bloqueante; não serve de barreira de ação. A Anthropic documenta `PreToolUse` para controlar ação de ferramenta, outro evento que exige seu próprio projeto revisado.
O script apenas executa Git local, sem pedido de rede ou chamada ao modelo. Início, retoma e perguntas no Claude Code podem consumir quota da conta, fornecedor ou modelo; [o guia de custos da Anthropic](https://code.claude.com/docs/en/costs) traz os termos atuais. Não há preço fixo nem relato de teste de sessão paga.
Para outra tarefa depois de começar a conversa, nosso [guia de inspeção de contexto e continuação de sessão Claude Code](https://bigchange.ai/blog/claude-code-session-context-continue-guide) cobre contexto e continuidade. Não configura este hook inicial.
## Fontes e leituras adicionais
- [Anthropic, Referência de hooks do Claude Code](https://code.claude.com/docs/en/hooks) — Especificação primária atual verificada em 19 de outubro de 2026. Documenta origens e padrões de `SessionStart` , forma exec `args`, variáveis de caminho, stdout como contexto, recarga de configuração, confiança, registos e falhas não bloqueantes. É documentação, não execução de hook pela BIG CHANGE.
- [Anthropic, Automatize ações com hooks](https://code.claude.com/docs/en/hooks-guide) — Guia oficial de configuração e testes. O script e definições exatos acima são exemplo limitado da BIG CHANGE revisado para este guia, não resultado de teste copiado do fornecedor.
- [Anthropic, Configuração do Claude Code](https://code.claude.com/docs/en/setup) — Instalação e requisitos de ambiente. Verifique as instruções atuais da plataforma antes do exemplo.
- [Anthropic, Uso de dados do Claude Code](https://code.claude.com/docs/en/data-usage) — Termos atuais do provedor antes de enviar dados da branch ao contexto; autorização do projeto é decisão separada.
- [Anthropic, Gira custos com eficácia](https://code.claude.com/docs/en/costs) — Orientações atuais de conta e uso para testes interativos. O script Git local não chama rede nem modelo.
## Sources
- [Referência de hooks do Claude Code](https://code.claude.com/docs/en/hooks) — Manual primário atual da Anthropic verificado com a captura aprovada de 19 de outubro de 2026 e novamente na redação. Estabelece origens startup/resume e padrões de SessionStart, command e args na forma exec, variável raiz, stdout como contexto, observador de configurações, confiança, registos, executável real no Windows e erros SessionStart não bloqueantes. Descreve o produto; a BIG CHANGE não executou hook invocado por Claude. Sem data fixa de revisão informada.
- [Automatize ações com hooks](https://code.claude.com/docs/en/hooks-guide) — Guia oficial da Anthropic para configuração e testes. Apoia configuração e diagnóstico pelo leitor, não a afirmação de execução pela BIG CHANGE dentro de Claude Code. O script Node delimitado e definições vieram do pacote de implementação local revisado separadamente.
- [Configuração avançada do Claude Code](https://code.claude.com/docs/en/setup) — Referência oficial de instalação e ambiente. A preparação só observou 2.1.301; a fonte não torna essa versão um requisito mínimo.
- [Uso de dados do Claude Code](https://code.claude.com/docs/en/data-usage) — Termos oficiais conforme a conta. Revise antes de inserir a branch no modelo: filtro e truncamento não impedem expor nomes confidenciais de clientes ou incidentes. Nenhuma garantia geral de privacidade é inferida.
- [Gira custos com eficácia](https://code.claude.com/docs/en/costs) — Orientação oficial de conta e modelo para verificações interativas de início e retoma. O script local não faz pedidos de rede nem de modelo, mas sessões reais podem consumir quotas do plano, fornecedor ou API. Não se afirma preço fixo nem teste pago.
- [Como inspecionar contexto e continuar uma sessão Claude Code](https://bigchange.ai/blog/claude-code-session-context-continue-guide) — Artigo anterior BIG CHANGE 414, usado apenas como link contextual e classificação de relação. Trata de conversa existente e sua continuação; não comprova a implementação do hook nem é um antecessor direto de evento datado.
Newsletter BIG CHANGE
A perspetiva geral, ao seu ritmo.
Histórias recentes sobre IA e robótica, mudanças que vale a pena acompanhar e ideias práticas para utilizar. Escolha um briefing diário, um resumo semanal ou uma perspetiva mensal.
Próximo envio agendado (UTC): . A sua primeira edição chegará no próximo envio agendado após a confirmação.
A sua privacidade, a sua escolha.
O armazenamento necessário ajuda a proteger o site e a memorizar as suas escolhas. O Google Analytics opcional permanece desativado até que o autorize. Pode ler todos os artigos utilizando apenas o armazenamento necessário. Detalhes de privacidade