Mindful Claude: mod de respiração para Claude Code enquanto ele trabalha
Animação de respiração guiada acima do prompt do Claude Code enquanto o Claude trabalha; o spinner respira com você.
Permissões
- 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.291
- último teste
- requer
- Claude Code ≥ 2.1.287
- superfícies
- acima do prompt, spinner
- código-fonte
- Anthony (halluton) (MIT)
Instale dentro do Claude Code:
/plugin install mindful-claude --marketplace halluton/Mindful-ClaudeO que este mod faz?
O Mindful Claude é um mod de respiração para Claude Code feito pela comunidade, criado por Anthony (halluton). Ele transforma o tempo que você passa esperando o Claude em um breve exercício de respiração guiada. Quando o Claude começa a trabalhar, uma animação de respiração de nove linhas aparece acima da caixa de entrada, com uma linha de fase como Breathe in... 4s e o nome do exercício embaixo. Ao mesmo tempo, a palavra do spinner muda para acompanhar a respiração, mostrando Breathe in 4s… em vez do texto de sempre. Quando o Claude responde, a faixa some.
O raciocínio do autor, segundo o README: respirar devagar, a cerca de 5,5 respirações por minuto, aumenta a variabilidade da frequência cardíaca, então cada turno do Claude vira uma pequena sessão de respiração sem sair do terminal. São quatro exercícios (Coherent Breathing, Physiological Sigh, Box Breathing e 4-7-8 Breathing) e quatro estilos de animação (pulse, ripples, dots e wave). Por padrão, o estilo é sorteado a cada turno, nunca o mesmo duas vezes seguidas. Um comando de barra, /breathe, muda as configurações, que ficam salvas entre sessões. O README diz que ele precisa do Claude Code 2.1.269 ou mais recente.
Demonstração
A gravação inicia o Claude Code com o mod carregado e pede ao Claude que leia três arquivos e descreva o projeto. Enquanto o turno roda, a faixa de respiração acima do prompt se expande e se contrai com o rótulo Breathe in… 5s (o padrão Coherent Breathing), e a linha do spinner acompanha o mesmo ritmo.
Instalação
Use qualquer um dos métodos do bloco de instalação; eles instalam direto do marketplace do próprio autor. Depois de instalado, envie qualquer prompt e a faixa aparece enquanto o Claude trabalha.
$ install mindful-claude
Requer Claude Code ≥ 2.1.287
Instala a partir do marketplace do autor: halluton/Mindful-Claude
1.Uma linha, dentro do Claude Code
/plugin install mindful-claude --marketplace halluton/Mindful-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 halluton/Mindful-Claude claude plugin install mindful-claude@mindful-claudeDepois execute /reload-plugins em qualquer sessão que já esteja aberta.
3.Experimente sem instalar
git clone https://github.com/halluton/Mindful-Claude claude --plugin-dir ./Mindful-ClaudeCarrega o mod só para uma sessão. Nada é adicionado às suas configurações.
Como funciona
O mod tem duas partes. hooks/register.tsx é o módulo de hooks: ele registra quando o turno começou e se conecta ao ponto de renderização AbovePrompt. Quando o engine informa que um turno está em andamento, ele monta um módulo de superfície do cliente, hooks/breathe.tsx, que desenha a animação dez vezes por segundo com o seu próprio relógio. Este é o hook de renderização de hooks/register.tsx:
on('ui.render', { component: 'AbovePrompt' }, async ($, e, next) => {
if (e.surface !== 'terminal' || !config.enabled || !e.props.isWorking || e.props.hasSurvey) return next(e)
const now = await $.clock.now()
const running = turn ?? (turn = { startedAt: now, style: pickStyle(config.style, lastStyle) })
const elapsedMs = now - running.startedAt
if (elapsedMs < config.delay * 1000) return next(e)
const { Box, Client } = $.ui.resolve(e)
// ...
return (
<Box flexDirection="column">
<Client key={key} module="./breathe.tsx" width={e.viewport?.columns ?? 80} height={rows}
props={{ exercise: config.exercise, style: running.style, elapsedMs }} />
{await next(e)}
</Box>
)
})A faixa usa o horário de início do turno como chave, então cada turno ganha uma animação nova. Sempre que a linha de fase muda, a superfície envia a palavra atual de volta com surface.post. O módulo de hooks a recebe em um hook ui.message e a repassa para um segundo hook de renderização no componente Spinner, que substitui a prop message do spinner. O hook turn.complete limpa o turno, então a faixa some assim que o Claude responde. Os exercícios, a curva de suavização e as formas ficam em hooks/breath/ como funções puras.
Personalize
Tudo é configurado com o comando /breathe, que o mod registra em session.start:
/breathemostra as configurações atuais, e/breathe helplista todas as opções./breathe on/offmostra ou esconde a faixa./breathe hrv,sigh,boxou478escolhe o exercício./breathe style wavefixa um estilo (pulse,ripples,dots,wave), e/breathe style randomvolta ao padrão./breathe delay 5espera cinco segundos de turno antes de mostrar a faixa, para que respostas rápidas fiquem tranquilas./breathe spinner offdeixa o texto do spinner como está.
As configurações são salvas com $.store em uma única chave config e lidas de novo no próximo início de sessão.
Permissões e segurança
Lemos todos os arquivos que o plugin carrega antes de rodá-lo. O plugin usa apenas chamadas de interface, relógio, comandos e armazenamento: nada de $.process.run, nada de rede, nada de acesso a arquivos. Ele não lê o seu código, os seus prompts nem a transcrição. As configurações ficam no $.store do próprio mod, e ele nunca edita o settings.json nem os arquivos rc do shell. Altera a interface cobre a faixa e a palavra reescrita do spinner; Adiciona comandos/ferramentas cobre o /breathe, e Armazena dados cobre as configurações salvas.
O repositório também tem uma pasta legacy/ com a versão original em bash e tmux. O plugin não a carrega. O install.sh dela edita ~/.claude/settings.json e grava em ~/.claude/mindful/, então só rode esse script se quiser a versão antiga. O claude plugin validate relata um aviso: o nome do plugin contém "claude", o que, segundo o validador, parece um plugin da Anthropic. É um aviso sobre o nome, não um problema no código.
- 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
Validamos com o Claude Code 2.1.291 no macOS, e os 31 testes unitários bun test do autor passam. O claude plugin test não consegue carregá-los porque eles importam bun:test. Se a faixa não aparecer:
- Confira se
claude --versioné 2.1.269 ou mais recente. O README do autor também pede para definirCLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1no blocoenvde~/.claude/settings.json. - Execute
/breathee confira se aparecebreathe: onedelay 0s. - A faixa só é desenhada no terminal. Ela também sai do caminho enquanto uma pesquisa está aberta acima do prompt.
- Depois de instalar em uma sessão que já estava aberta, execute
/reload-plugins.
Perguntas frequentes
- Quando a animação de respiração aparece?
- Quando um turno começa e o prompt mostra que o Claude está trabalhando. Ela some quando o Claude responde. Com /breathe delay 5 ela só aparece depois que o Claude já trabalhou por cinco segundos.
- Quais exercícios de respiração estão incluídos?
- Quatro: Coherent Breathing (5,5 s inspirando, 5,5 s expirando, o padrão), o Physiological Sigh (inspiração dupla, expiração longa), Box Breathing (4 s inspirar, segurar, expirar, segurar) e 4-7-8 Breathing (4 s inspirar, 7 s segurar, 8 s expirar). Troque com /breathe hrv, sigh, box ou 478.
- Ele gasta tokens ou envia algo para o modelo?
- Não. O mod só desenha interface e guarda as configurações no armazenamento do próprio plugin. Ele não faz chamadas de rede e o modelo nunca vê a animação.
- Posso manter a animação e deixar o spinner como está?
- Sim. Execute /breathe spinner off. A faixa acima do prompt continua funcionando e o spinner volta às palavras de sempre.
- Funciona no app desktop?
- A faixa só é desenhada quando a superfície de renderização é o terminal; o código a ignora em qualquer outro lugar. O texto do spinner ainda pode mudar.
# Mods relacionados

Aviso 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.291

Medidor de contexto
Uso do contexto, dos limites de 5 horas e 7 dias e custo da sessão na barra de status, com aviso perto do limite.
- status
- notificação
- Altera a interface
testado com v2.1.291
Mais em Timers, tarefas e standups, Comandos slash.