After: uma fila de prompts do Claude Code que não desvia
Fila de prompts para o Claude Code: /after roda a próxima tarefa quando a atual termina, sem desviá-la.
Permissões
- 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).
- 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).
- Armazena dadosGuarda dados entre sessões no armazenamento privado do plugin ($.store.*).
- testado com
- v2.1.303
- último teste
- requer
- Claude Code ≥ 2.1.287
- superfícies
- acima do prompt, painel, notificação, status
- código-fonte
- Miguel Ángel Durán (midudev) (MIT)
Instale dentro do Claude Code:
/plugin install after --marketplace midudev/better-claudeO que este mod faz?
O After é um mod da comunidade de Miguel Ángel Durán (midudev) e funciona como uma fila de prompts do Claude Code. /after <task> adiciona uma tarefa que roda quando o Claude termina o que está fazendo; se o Claude estiver ocioso, a tarefa começa na hora. /before <task> coloca uma tarefa na frente para que seja a próxima. O ponto é que as tarefas enfileiradas não desviam o turno atual: o Claude não as vê até chegar a vez delas.
Cada comando responde com um cartão com borda na transcrição que mostra o que mudou: uma tarefa nova, movida, editada ou removida. Enquanto houver algo na fila, uma faixa de uma linha acima do prompt mostra o que roda agora e o que vem depois. /after sozinho abre um painel em que você escolhe, edita, reordena e apaga tarefas pelo teclado. Você também pode digitar em linguagem natural, como /after remove the tests one ou /after tests, write a README explaining them; o Haiku descobre o que você quer dizer quando o texto pode se referir a algo já enfileirado.
Outros comandos: /after rm 2, mv 3 1, edit 2 <text>, pause, resume, undo, clear, list e help. O README do autor pede uma versão do Claude Code com mods, a 2.1.289 ou mais recente.
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 ainda trabalha, o clipe digita /after read src/login.js and say what it does in one sentence. Aparece um cartão com o título After mostrando Queued #1 e a tarefa marcada com ← new, e a faixa acima do prompt exibe a tarefa. Quando a primeira resposta termina, o mod envia a tarefa enfileirada como mensagem ("Prompt from the after plugin"), a faixa muda para ▶ read src/login.js and say what… nothing else queued e o Claude começa nela. O clipe termina aí.
Instalação
Use qualquer um dos métodos do bloco de instalação; eles instalam direto do marketplace do autor. Se instalar em uma sessão já aberta, execute /reload-plugins primeiro. Depois experimente /after <task> enquanto o Claude trabalha.
$ install after
Requer Claude Code ≥ 2.1.287
Instala a partir do marketplace do autor: midudev/better-claude
1.Uma linha, dentro do Claude Code
/plugin install after --marketplace midudev/better-claudeCole em uma sessão em andamento (v2.1.275+). O Claude Code pede primeiro para adicionar o marketplace.
2.Pelo seu shell
claude plugin marketplace add midudev/better-claude claude plugin install after@better-claudeDepois execute /reload-plugins em qualquer sessão que já esteja aberta.
3.Experimente sem instalar
git clone https://github.com/midudev/better-claude claude --plugin-dir ./better-claude/plugins/afterCarrega o mod só para uma sessão. Nada é adicionado às suas configurações.
Como funciona
O mod inteiro é um módulo de hooks, hooks/register.tsx, sobre JavaScript simples em src/. /after e /before são registrados como comandos imediatos, então funcionam até no meio de um turno. A fila fica em $.state para a faixa e o painel, e é salva em $.store por sessão. Quando um turno termina, a próxima tarefa é entregue ao Claude:
on('turn.complete', async ($, e, next) => {
const result = await next(e)
if (e.agentId === undefined) await finishTurn($, e.reason === 'answer')
return result
})
// ...
reason = (await $.prompt.submit({ text: item.text, asUser: true })).dropSó os turnos respondidos do agente principal movem a fila; Esc, uma recusa ou um erro da API a seguram até um turno terminar normalmente. Para manter as tarefas fora do contexto do Claude, o comando responde apenas com uma referência curta como #lq2x9k-3, um hook ui.render em CommandOutput desenha o cartão no lugar dela, e um hook session.append esvazia os argumentos do comando no registro da transcrição, como mostra a linha /after da demonstração. O texto em linguagem natural só vai para $.model.complete quando pode se referir à fila, e heurísticas locais assumem se o modelo não responder.
Personalize
/config lista três opções, ou defina-as em pluginConfigs.after.options no settings.json:
smart(padrão ativada): pergunta a um modelo pequeno o que um comando significa. Desativada usa só correspondência local.model(padrãohaiku): um alias ou um id de modelo completo para essas solicitações.display(padrãoband):bandacima do prompt,statuscomo uma linha abaixo, ounone.
Permissões e segurança
Lemos todos os arquivos que o plugin carrega antes de executar qualquer coisa: plugin.json, hooks/hooks.json, hooks/register.tsx, todo o src/ (JavaScript puro sem APIs do Node e sem importações fora do plugin), os tipos e os testes. O plugin não tem package.json, script de instalação, código empacotado ou minificado, nem binário. O repositório tem um arquivo LICENSE MIT.
Altera a interface abrange a faixa, o painel, os cartões e um aviso, "After · all queued tasks done". Adiciona comandos abrange /after e /before. Armazena dados abrange a fila e os cartões, no $.store próprio do plugin, limpos após 7 e 30 dias.
Achados que você deve conhecer:
- Ele envia prompts por você.
$.prompt.submitmanda cada tarefa enfileirada como sua própria mensagem quando um turno termina. O Claude então trabalha sob suas configurações de permissão normais, mas as tarefas enfileiradas rodam sem supervisão, então confira a fila com/after listou a faixa. - Ele envia o texto da fila a um modelo. Comandos em linguagem natural enviam o comando e os textos das tarefas enfileiradas ao Haiku pelo cliente do próprio Claude Code (
$.model.complete, limite de 25 s). É a mesma conta que você já usa, sem host nem chave extras; desative comsmart. - Ele reescreve o registro da transcrição. O hook
session.appendremove os argumentos de/aftere/beforedo que o modelo lê. Ele não bloqueia nem altera chamadas de ferramentas ou seus prompts; ovalidateo lista como hook de controle sem.catch, e o código corresponde ao README. - Ele não usa a rede por conta própria, não executa comandos de shell, não lê variáveis de ambiente nem escreve fora do seu armazenamento. O
scripts/eval-haiku.jsiniciaclaude -p, mas é um script de desenvolvimento que o plugin nunca carrega. - Ele verifica se há arquivos antigos
after.mdebefore.mdem~/.claude/commandse apenas registra uma mensagem pedindo que você os apague. Não mexe neles.
O claude plugin validate não relatou erros nem avisos, e os 20 testes do autor passaram no Claude Code 2.1.303.
- 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).
- 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).
- Armazena dados
- Guarda dados entre sessões no armazenamento privado do plugin ($.store.*).
Compatibilidade e solução de problemas
Verificado com o Claude Code 2.1.303 no macOS (validate, testes e demonstração). Se não funcionar:
- Falta
/after: confirme que o plugin está carregado em/plugine execute/reload-pluginsapós instalar. - Um arquivo
after.mdoubefore.mdem~/.claude/commands(deixado pelo After 0.1) esconde o mod; apague-o. - Nada roda: a fila pode estar pausada, então execute
/after resume. Após Esc ou um erro, ela espera até um turno terminar normalmente. - O painel precisa de suporte a entrada na sua superfície; sem isso, use os comandos diretamente.
- Para montar uma fila antes de qualquer coisa começar com o Claude ocioso, execute
/after pause, adicione as tarefas e depois/after resume.
Perguntas frequentes
- Qual a diferença entre digitar enquanto o Claude trabalha e usar /after?
- O texto digitado durante um turno é injetado nesse turno e pode mudar o que o Claude está fazendo. Uma tarefa enfileirada com /after fica fora do contexto do Claude até o turno atual terminar e, então, chega como sua própria mensagem.
- O After chama um modelo?
- Só para comandos em linguagem natural como "/after remove the tests one", e só quando o texto pode se referir a uma tarefa enfileirada. Ele pergunta ao Haiku pelo cliente do próprio Claude Code, então não precisa de chave de API. Com a opção smart desativada, usa apenas correspondência local.
- O que acontece se eu apertar Esc?
- O Esc interrompe a tarefa em andamento como sempre, e a fila espera até um turno posterior terminar normalmente. Você também pode segurá-la com /after pause e liberá-la com /after resume.
- A fila sobrevive a uma reinicialização ou ao /clear?
- Sim. A fila é salva por sessão no armazenamento próprio do plugin, então uma sessão retomada a encontra sem nada marcado como em execução, e o /clear a mantém para a nova conversa.
- Como escondo a faixa acima do prompt?
- Defina a opção display como status para uma linha abaixo do prompt, ou none para ver a fila apenas por meio de /after. As opções ficam em /config.
# Mods relacionados
DestaqueAviso de conclusão
Um toast "Done in 2m 14s" e um som curto quando um turno longo do Claude termina, com notificação opcional no desktop.
- notificação
- Executa comandos
- Altera a interface
- Reproduz som
testado com v2.1.310
DestaqueContador de chamadas de ferramentas
Conta as chamadas de ferramentas do Claude por turno e por sessão, mostra o total junto ao spinner e adiciona /tally.
- spinner
- transcrição
- status
- Intercepta chamadas de ferramentas
- Altera a interface
- Adiciona comandos/ferramentas
testado com v2.1.310
Mais em Timers, tarefas e standups, Comandos slash.