Pular para o conteúdo
claudemods

Where Am I: resumo de sessão do Claude Code acima do prompt

Um resumo acima do prompt do Claude Code: objetivo, o que acontece agora, o que espera por você e o próximo passo.

Permissões

  • Lê arquivosPode ler arquivos e listar diretórios na sua máquina ($.fs.read / list / stat / exists).
  • Chama o modelo (usa sua cota)Pode enviar suas próprias requisições ao Claude, que contam no uso do seu plano ($.model.* / $.agent.spawn).
  • Intercepta chamadas de ferramentasVê cada chamada de ferramenta que o Claude faz (tool.call / tool.check) e pode bloqueá-la ou alterá-la.
  • Lê seus promptsPode ver o que você digita e a transcrição da conversa (prompt.* / session.append / session.messages).
  • Altera a interfaceDesenha na interface do Claude Code: faixas, painéis, texto de status, notificações (ui.render / $.ui.*).
  • Adiciona comandos/ferramentasRegistra novos comandos de barra ou ferramentas que você ou o Claude podem acionar ($.command.register / $.tool.register).
testado com
v2.1.303
último teste
requer
Claude Code ≥ 2.1.287
superfícies
acima do prompt

Instale dentro do Claude Code:

/plugin install where-am-i --marketplace hamzafer/claude-code-mods
Todas as opções de instalação ↓

O que este mod faz?

Where Am I é um mod da comunidade de Hamza Zafar (hamzafer), parte da coleção claude-code-mods. Ele mantém um resumo de sessão do Claude Code acima do prompt para que, depois de uma resposta longa ou de uma pausa, você levante os olhos e veja onde está. A faixa mostra o objetivo da sessão, o que acontece agora, o que o Claude espera de você e o próximo passo. O autor o escreveu para quem perde o fio com facilidade, e o prompt de sistema por trás pede palavras simples.

A faixa tem até três linhas. ◆ Goal: traz o objetivo geral, que o modelo é instruído a manter, a menos que mude com clareza. A linha now: acompanha o trabalho do Claude ao vivo, com rótulos como reading src/index.js, e next: fica na mesma linha. Uma linha amarela waiting on you: aparece só quando o Claude precisa de algo de você. Cada campo é cortado em uma frase de no máximo 70 caracteres.

O resumo é escrito por uma pequena chamada ao modelo depois de cada turno. /where escreve um maior quando você pede: até seis marcadores a partir das últimas 12 mensagens da conversa. Se você usa vários mods de faixa, o Where Am I se ordena com eles por meio de um arquivo compartilhado de ordem das faixas, e os testes do autor cobrem isso.

Demonstração

A gravação inicia o Claude Code com o mod carregado no pequeno projeto de demonstração e pede ao Claude que leia README.md e diga em uma frase o que é o projeto. Enquanto o Claude trabalha, a faixa acima do prompt ainda está vazia. Quando o turno termina, aparecem a resposta do Claude e a linha done, e alguns segundos depois o resumo surge acima do prompt: uma linha Goal: sobre entender o app de demonstração, uma linha now: dizendo que leu o README e uma linha next:. Depois o clipe termina com Ctrl+C.

Instalação

Use qualquer um dos métodos do bloco de instalação; eles instalam direto do marketplace do próprio autor. A faixa aparece depois do seu primeiro turno concluído, e /where é registrado ao iniciar a sessão.

$ install where-am-i

Requer Claude Code ≥ 2.1.287

Instala a partir do marketplace do autor: hamzafer/claude-code-mods

  1. 1.Uma linha, dentro do Claude Code

    /plugin install where-am-i --marketplace hamzafer/claude-code-mods

    Cole em uma sessão em andamento (v2.1.275+). O Claude Code pede primeiro para adicionar o marketplace.

  2. 2.Pelo seu shell

    claude plugin marketplace add hamzafer/claude-code-mods
    claude plugin install where-am-i@claude-code-mods

    Depois execute /reload-plugins em qualquer sessão que já esteja aberta.

  3. 3.Experimente sem instalar

    git clone https://github.com/hamzafer/claude-code-mods
    claude --plugin-dir ./claude-code-mods/mods/where-am-i

    Carrega o mod só para uma sessão. Nada é adicionado às suas configurações.

Como funciona

O resumo fica em um átomo $.state mantido pelo host, então sobrevive a um hot reload. A chamada ao modelo que o escreve parte de turn.complete e não é aguardada, de modo que o turno termina na hora. De hooks/register.tsx:

on('turn.complete', async ($, e, next) => {
  const r = await next(e)
  if (!e.agentId) {
    await update($, live, () => '')
    void summarize($, prompt, log, e.answer).catch(() => {}) // in the background, so the turn ends at once
  }
  return r
})

summarize chama $.model.complete com o modelo haiku. Envia o resumo anterior, sua última mensagem (os primeiros 1500 caracteres), os rótulos das chamadas de ferramenta deste turno e os primeiros 2500 caracteres da resposta do Claude, e pede um JSON com goal, now, waiting e next. parseRecap aceita um bloco de código em volta do JSON, apara os campos e troca travessões longos. Um hook de tool.call grava o rótulo de now e guarda os últimos 20 rótulos para o próximo resumo; ele só observa e devolve a chamada sem alterações. Turnos de subagentes são ignorados, e chamadas de outros mods são ignoradas ao verificar next.origin. A faixa é desenhada no ponto de renderização AbovePrompt e some enquanto uma pesquisa estiver aberta.

Personalize

Não há opções em /config, e /where é o único comando. Para mudar o visual ou o comportamento, edite register.tsx: MODEL escolhe o modelo do resumo, MAX_LOG define quantos rótulos de chamadas de ferramenta são guardados, clip define o limite de 70 caracteres, e os dois prompts de sistema em summarize e longRecap definem o tom. A posição da faixa entre outros mods de faixa é lida uma vez por sessão de bands.json na pasta de configuração, então reinicie o Claude Code para aplicar uma mudança.

Permissões e segurança

Antes de executar qualquer coisa, lemos todos os arquivos que o plugin pode executar: hooks/hooks.json, hooks/register.tsx, hooks/bands.ts, as declarações de tipos e os testes. Não há package.json, script de instalação, binário nem código empacotado, e não encontramos caracteres ocultos, eval nem importações dinâmicas. A licença MIT está na raiz do repositório.

  • Chamadas ao modelo. $.model.complete roda depois de cada turno do agente principal e em /where. Envia seu prompt, os rótulos das ferramentas e a resposta do Claude (ou as últimas 12 mensagens em /where) ao modelo haiku pelo Claude Code, e por isso consome o uso do seu plano ou da sua API. O próprio mod não tem código de rede e nada é enviado a outros hosts.
  • Ambiente e arquivos. Lê CLAUDE_CONFIG_DIR e HOME e, se existir, um arquivo, <config dir>/claude-code-mods/bands.json, para obter a ordem das faixas. Não grava arquivos; o resumo fica em $.state.
  • Hooks. prompt.submit e tool.call só observam e repassam tudo sem alterações; o validate observa que ambos não têm .catch. O mod não bloqueia nem reescreve nada. Adiciona /where e altera a interface acima do prompt.
  • O que não existe. Nenhum processo, comando de shell, daemon, telemetria, segredo ou alteração de configurações, e nenhuma instrução dirigida ao modelo além dos dois prompts do resumo.

O claude plugin validate não relatou erros nem avisos, e os 7 testes do autor passaram com claude plugin test no Claude Code 2.1.303.

Lê arquivos
Pode ler arquivos e listar diretórios na sua máquina ($.fs.read / list / stat / exists).
Chama o modelo (usa sua cota)
Pode enviar suas próprias requisições ao Claude, que contam no uso do seu plano ($.model.* / $.agent.spawn).
Intercepta chamadas de ferramentas
Vê cada chamada de ferramenta que o Claude faz (tool.call / tool.check) e pode bloqueá-la ou alterá-la.
Lê seus prompts
Pode ver o que você digita e a transcrição da conversa (prompt.* / session.append / session.messages).
Altera a interface
Desenha na interface do Claude Code: faixas, painéis, texto de status, notificações (ui.render / $.ui.*).
Adiciona comandos/ferramentas
Registra novos comandos de barra ou ferramentas que você ou o Claude podem acionar ($.command.register / $.tool.register).

Compatibilidade e solução de problemas

Verificado com o Claude Code 2.1.303 no macOS (validate, testes e uma gravação). Se a faixa não aparecer:

  • Conclua primeiro um turno; o resumo é escrito depois dele, e uma resposta do modelo que falhe ou não possa ser lida deixa a faixa vazia.
  • Uma pesquisa aberta acima do campo de entrada a oculta até ser fechada.
  • Se /where for desconhecido, o Claude Code já tem um comando com esse nome, e o mod inicia sem ele.
  • Se /where disser “Could not build a recap right now”, a chamada ao modelo ficou sem resposta; tente de novo.

A faixa lê o estado do next-steps, então oculta a própria parte next quando esse mod mostra sua lista.

Perguntas frequentes

O Where Am I gasta tokens?
Gasta, poucos. Depois de cada turno do agente principal, faz uma chamada em segundo plano ao modelo haiku pelo Claude Code para escrever o resumo, com no máximo 300 tokens de saída. Executar /where faz mais uma chamada, com no máximo 500 tokens de saída. O mod não faz requisições de rede por conta própria.
O que há no resumo?
Quatro campos curtos, cada um cortado em uma frase de cerca de 70 caracteres. goal é o objetivo da sessão, now o que acabou de ser feito, waiting o que o Claude precisa de você (fica oculto se vazio) e next o próximo passo.
Como a linha “now” é atualizada enquanto o Claude trabalha?
Um hook em cada chamada de ferramenta do Claude a substitui por um rótulo simples, como “reading src/login.js” ou “running npm test”. Chamadas que outros mods fazem em segundo plano são ignoradas, e quando o turno termina volta o resumo escrito pelo modelo.
Por que não vejo o resumo depois do meu primeiro prompt?
O resumo é escrito por uma chamada ao modelo em segundo plano quando o turno termina. Ele aparece alguns segundos depois da primeira resposta, e até lá a faixa fica oculta.
O que acontece se eu usar também o mod next-steps?
Quando o next-steps mostra sua lista de próximos prompts, o Where Am I omite a própria parte “next” para que não se repitam.
Next Steps em execução no Claude CodeDestaque

Next Steps

Dois ou três prompts prováveis acima da entrada depois de cada turno. Pressione 1, 2 ou 3 para criar um rascunho.

  • acima do prompt
  • Chama o modelo (usa sua cota)
  • Lê seus prompts
  • Altera a interface

testado com v2.1.291

Context Bar em execução no Claude CodeDestaque

Context Bar

A janela de contexto do Claude Code como uma barra empilhada acima do prompt, uma cor por categoria, com tokens.

  • acima do prompt
  • Altera a interface
  • Adiciona comandos/ferramentas
  • Armazena dados

testado com v2.1.291

Mission Control em execução no Claude CodeDestaque

Mission Control

Painel ao vivo do agente principal, dos subagentes e das ferramentas do Claude Code, mais um mapa dos arquivos.

  • painel
  • acima do prompt
  • Lê arquivos
  • Grava arquivos
  • Executa comandos
  • Chama o modelo (usa sua cota)
  • Intercepta chamadas de ferramentas
  • Altera a interface
  • Adiciona comandos/ferramentas

testado com v2.1.296

Mais em Timers, tarefas e standups, Comandos slash.