Um widget flutuante e minúsculo que fica sempre visível por cima de tudo no seu Windows, mostrando em tempo real o que cada sessão do Claude Code está fazendo — pulso animado de estado, nome do terminal, subagentes ativos, uso de contexto e do rate limit de 5h. Roda direto no seu PC (não é uma extensão de navegador nem depende de nenhum serviço externo) e é 100% livre: arraste para qualquer lugar da tela e redimensione do jeitinho que quiser — ele lembra a posição e o tamanho da próxima vez que abrir.
- Indicador de pulso (bolinha à esquerda): verde pulsando = trabalhando, amarelo = esperando sua resposta, cinza vazado = ocioso.
- Nome do terminal: prioriza o nome que você deu à aba no Warp (lido
direto do
warp.sqlite), depois o título da conversa gerado pelo Claude Code, depois um nome derivado, depois a pasta. - Status + tempo decorrido: ex. "Executando Bash · 12s".
- Ícone de robô: aparece quando um subagente está rodando naquela sessão; mostra o tipo do agente e descrição, ou as estatísticas de conclusão (tool uses / tokens / tempo). Com múltiplos agentes concorrentes, mostra um contador.
- Anel duplo de uso: anel interno = % de contexto da conversa (por
sessão), anel externo = % do rate limit de 5h (global da conta — sempre o
valor mais recente entre todas as sessões). Mesmas cores/thresholds do
/statusline(verde <50%, amarelo <70%, vermelho daí pra cima). - Barra de "stories" embaixo, tipo Instagram, indicando quantos terminais existem e quando vai trocar para o próximo.
Claude Code hooks (PreToolUse/PostToolUse/Notification/Stop/...)
│ stdin JSON
▼
hooks/taskbar-hero-update.js ──► ~/.claude/taskbar-hero/status.json
(por sessionId: cwd, tool, summary,
agents{}, warpUuid)
statusline-command.js (já existente do usuário, com um pequeno acréscimo)
▼
~/.claude/taskbar-hero/usage.json (por sessionId: contextPct, sessionPct)
~/.claude/sessions/<pid>.json (já existente do Claude Code: status
busy/idle, cwd, name)
warp.sqlite (do próprio Warp) (nome real da aba, casado por
WARP_TERMINAL_SESSION_UUID)
│
▼
ticker.pyw ──► janela tkinter, poll a cada 1s (dados) / 4s (Warp) /
60ms (reafirma topmost), desenho 100% em Canvas puro.
Não há build step nem dependências externas — só a stdlib do Python 3
(ctypes, sqlite3, tkinter, json, glob, os, time, math,
pathlib) e do Node (fs, path, os). Nenhum pip install/npm install
necessário.
Requisitos: Windows 10/11, Python 3.x com Tkinter, Node.js.
powershell -ExecutionPolicy Bypass -File install.ps1Isso detecta Python/Node automaticamente, mescla os hooks no seu
~/.claude/settings.json (sem apagar hooks que você já tinha), oferece
aplicar o patch do /statusline se você tiver um customizado, cria o atalho
de inicialização automática e já sobe o widget. Rodar de novo não duplica
nada (idempotente). Para desinstalar:
powershell -ExecutionPolicy Bypass -File uninstall.ps1Se você é um agente (Claude Code) instalando isto para alguém, ou se o
script não servir no seu ambiente, veja INSTALL.pt-BR.md — documenta o
contrato exato por trás do script (formato do merge em settings.json,
onde cada coisa precisa existir, checklist de verificação) para reproduzir
manualmente.
Alternativa mais leve ao instalador acima — sem atalhos de Menu
Iniciar/Área de Trabalho/autostart, só o hook e o comando /taskbar-hero
disponíveis sob demanda:
/plugin marketplace add leonardosilvamelosantos/taskbar-code
/plugin install taskbar-code@taskbar-code
Depois, rode /taskbar-code:taskbar-hero em qualquer sessão para subir o
widget.
Veja CHANGELOG.md para o histórico de versões.
- O menu Iniciar e a Central de Ações do Windows rodam numa camada do shell que fica sempre acima de qualquer janela "always on top" comum, por design de segurança do Windows — nenhum app (nem ferramentas consagradas como o Rainmeter) consegue sobrepor isso de forma confiável sem assinatura de código + manifesto UIAccess.
warp.sqliteé um schema interno do Warp, não documentado/sem contrato — o código já degrada graciosamente (cai pro nome derivado) se o schema mudar ou o Warp não estiver rodando.
- Pausar/retomar o carrossel
- Resetar posição (volta a ancorar automaticamente perto da barra de tarefas)
- Sair
Reabrindo depois de fechar: o instalador deixa três caminhos para subir o
widget de novo — procurar "Task Bar Hero Code" no Menu Iniciar, o atalho na
Área de Trabalho, ou o comando /taskbar-hero em qualquer sessão do Claude
Code. Tentar abrir uma segunda instância enquanto uma já está rodando só
mostra um aviso de "já está em execução" em vez de duplicar o widget.
Contribuições são bem-vindas via fork + Pull Request. Veja
CONTRIBUTING.pt-BR.md para o guia completo (convenções de encoding, como
testar mudanças no instalador, etc.).
