Um dashboard que roda na sua própria máquina e mostra pra onde o uso do Claude Code está indo — tokens, custo, atividade, memória — sem mandar nada pra fora dela.
Comecei a rodar Claude Code em vários projetos ao mesmo tempo e perdi completamente a noção de onde o consumo estava concentrado: qual repositório puxava mais tokens, o que ainda tinha sessão ativa, o que a memória persistente já tinha acumulado de contexto em cada um. As ferramentas que existem por aí ou exigem conta/login em algum serviço, ou mandam telemetria pra nuvem de alguém. Este projeto não faz nenhuma das duas coisas: é um binário, roda em 127.0.0.1, lê os arquivos que o próprio Claude Code já grava na sua máquina, e ponto final.
- Tokens e custo por repositório, por modelo, por dia — com estimativa de custo baseada nos preços reais da API, não em heurística chutada.
- Ranking de atividade: quem consome mais tokens não é necessariamente onde você mais trabalhou; o dashboard separa as duas métricas.
- Sessões ativas agora, cruzando processos
claudede verdade rodando com um fallback por horário de modificação do arquivo de transcript, pro caso do processo ter sumido mas a sessão ainda estar "quente". - Núcleo de aprendizado: um grafo de tudo que o sistema de memória do Claude Code já escreveu em cada projeto, junto com os wikilinks entre notas — inclusive os que apontam pra nota nenhuma, porque isso também é informação.
- Extrato de uso: granularidade de prompt individual, cada resposta do Claude com seu custo próprio, filtrável por repositório e período.
- SDD: se o repositório segue Spec-Driven Development (uma pasta
spec/com arquitetura, design, histórico), o Cortex indexa e mostra os arquivos. - Aprovação de repositório novo: por padrão o Cortex não sai rastreando qualquer pasta que encontra. Repositório novo aparece como notificação pendente — você decide se quer que ele seja monitorado ou não.
Não tem conta, não tem login, não tem plano pago, não tem endpoint de telemetria em lugar nenhum do código. O daemon (cortexd) faz bind só em 127.0.0.1, lê exclusivamente ~/.claude/projects/ (onde o próprio Claude Code já guarda tudo) e escreve num SQLite local. Se você apagar a pasta do projeto, não sobra rastro em servidor nenhum — porque nunca existiu servidor nenhum.
Duas partes, um binário só:
cortexd/— backend em Go, sem CGO (driver SQLite émodernc.org/sqlite, puro Go, entãogo buildfunciona em qualquer máquina sem toolchain C instalada). Faz polling a cada 7 segundos: descobre repositórios novos, faz tail incremental dos arquivos de sessão (nunca reprocessa o arquivo inteiro), reconstrói o grafo de memória, detecta transição de sessão ativa↔ociosa e de link quebrado, e serve tudo via HTTP.webui/— frontend em React + TypeScript + Vite, com GSAP pras transições. Ocortexdembute o build final viago:embed, então o resultado é um único executável — sem processo de frontend separado rodando em produção.
A regra de contagem de tokens é a parte mais chata de acertar: o Claude Code repete o mesmo message.id em várias linhas do NDJSON durante o streaming, cada linha com um pedaço novo de conteúdo mas o mesmo usage completo — contar direto sem agrupar por message.id duplica tudo. Isso está isolado num deduplicador próprio, testado contra dado real.
Precisa de Go 1.22+ e Node 18+.
git clone <este-repositório>
cd claude-cortex
./scripts/build-and-install.shO script builda o frontend, embute no binário, instala em ~/.local/bin/cortexd e sobe o daemon. Depois é abrir http://127.0.0.1:4477.
Se quiser uma janela própria em vez de uma aba de navegador — ícone fixável na barra de tarefas, sem barra de endereço — tem um segundo script:
./scripts/launch-cortex-app.shEle garante o cortexd de pé e abre o Chrome/Chromium em modo app, com perfil isolado do seu navegador normal.
Isso não precisa ficar só no uso individual. Um time de engenharia inteiro poderia rodar isso em cada máquina e ter, sem depender de conta nenhuma, visibilidade real de quanto Claude Code custa por pessoa, por time, por projeto — inclusive pra conversa com quem cuida do orçamento. Fica em aberto tocar a versão hospedada (agregando várias máquinas num painel único, algo que faria sentido publicado num serviço como o Vercel) como próximo passo, mas o núcleo — rodar 100% local, sem enviar nada pra fora — não é negociável.
- Go 1.22+,
modernc.org/sqlite(sem CGO) - SQLite (modo WAL), migração incremental via arquivos
.sqlversionados - React 19 + TypeScript + Vite
- GSAP pra animação, ECharts pros gráficos