Tokenova — o app de bandeja em que os tokens escritos com IA viram um universo por dia
(github.com/jkapa0417)Tokenova — o app de bandeja em que os tokens escritos com IA viram um universo por dia
Hoje em dia, quando você passa o dia inteiro programando com ferramentas como Claude Code, Codex CLI e OpenCode sempre abertas, uma dúvida acaba surgindo. Quanto eu realmente rodei hoje? Abrir um dashboard separado é pesado, e abrir a página de cobrança quebra o fluxo de trabalho.
Foi por isso que criei o Tokenova. É um app em Tauri que fica em um cantinho da barra de menus (macOS) / bandeja do sistema (Windows · Linux) com um pequeno ícone de planeta. Em segundo plano, ele lê os logs locais deixados pelas três ferramentas acima e desenha o uso de tokens do dia como estrelas e planetas. Quando passa da meia-noite, aquele universo se fecha e uma nova tela é aberta.
Como funciona
- Estrelas — uma a cada 200 mil tokens acumulados. Quando a primeira estrela aparece, um achievement separado também é desbloqueado. O formato da estrela é determinado por seed entre 12 tipos.
- Planetas — são acionados quando uma sessão única termina depois de passar de 1 milhão de tokens, ou sempre que uma sessão acumula 20 milhões de tokens. Eles são sorteados de um catálogo de 31 tipos por uma roleta de raridade (Common 70 / Rare 20 / Epic 8 / Legendary 1.9 / Mythic 0.1 %).
- Layout da galáxia — a cada dia, uma entre 6 opções é desenhada com base na seed (espiral · elíptica · irregular · aglomerado binário · aberta · núcleo central). Como a mesma seed reproduz a mesma forma, mesmo ao reabrir universos antigos na galeria eles continuam com a mesma aparência.
- Constelações — na aba Today, você conecta as estrelas manualmente com cliques. É possível registrar a partir de 2 estrelas, e o nome pode ser gerado automaticamente ou definido por você. Elas ficam armazenadas permanentemente no codec.
- Universo adormecido — em dias sem usar nem um token, no lugar da tela de estrelas aparece uma lua suave com estrelas. Há também um achievement separado chamado "Universo adormecido".
Por que isso é divertido
Três elementos funcionam de forma diferente todos os dias.
Primeiro, mesmo com a mesma quantidade de trabalho, o resultado visual muda diariamente. Seed + layout + resultado da roleta definem o universo daquele dia. Ontem foi uma espiral, hoje é núcleo central. Mesmo escrevendo as mesmas 5 mil linhas, a distribuição das estrelas muda toda vez, então é divertido navegar pela galeria.
Segundo, por causa das probabilidades de raridade. Quando um Mythic de 0,1 % aparece, o overlay em tela cheia que desliza para ocupar toda a tela é, honestamente, pura dopamina. Se surgir uma Dyson Sphere ou um buraco negro, o próprio sistema operacional avisa pela notificação da bandeja. Você não trabalha por causa disso, mas ver sem esperar acaba sendo uma pequena recompensa.
Terceiro, uma galeria de 365 dias vai se acumulando. Você pode ver seu ritmo de programação em heatmaps de 1 semana / 1 mês / 1 ano. Os dias adormecidos, os dias de loucura e os dias em que galáxias gigantes se formaram ficam todos preservados em telas, e ao clicar é possível reproduzir novamente o universo daquele dia.
Como ele opera
- Claude Code — faz watch em
~/.claude/projects/*.jsonlcom notify - Codex CLI — faz watch em
~/.codex/sessions/YYYY/MM/DD/*.jsonl - OpenCode — faz polling do SQLite
opencode.dba cada 5 segundos
Os três canais são normalizados no mesmo TokenEvent e armazenados em um único SQLite. A UI lê dali para desenhar tudo. Não há envio do uso de tokens para fora. A conexão com a internet é usada apenas quando a verificação de atualização automática consulta o GitHub Releases.
Stack técnica e limitações
- Tauri 2 · Rust · Vanilla TypeScript + Canvas (sem framework). O uso de memória fica em torno de 80MB no popover da bandeja.
- Suporte para macOS · Windows · Linux. A inicialização automática pode ser ativada para execução em segundo plano ao ligar o sistema, e no primeiro lançamento ela vem ON por padrão.
- Atualização automática com assinatura minisign + manifesto do GitHub Releases. Quando sai uma nova versão, um banner no app avisa.
- Todos os dados ficam no SQLite local (
~/Library/Application Support/com.tokenova.app/etc.). Não há servidor externo. - Licença: FSL-1.1-ALv2. Uso pessoal e interno em empresas liberado; é uma Functional Source License que muda automaticamente para Apache 2.0 após 2 anos.
- Alternância imediata da UI entre coreano e inglês. 30 tipos de planeta, 14 tipos de estrela e todas as strings da interface localizadas nos dois idiomas.
Onde baixar
No GitHub Releases estão disponíveis macOS DMG, Windows NSIS e Linux AppImage / deb. No momento, a aprovação no programa Apple Developer ainda está pendente, então o macOS DMG mostra o aviso de "desenvolvedor não confiável". É preciso contornar o Gatekeeper uma vez (clique direito no app → Abrir, ou Ajustes do Sistema → Privacidade e Segurança → "Abrir mesmo assim"). Depois que a aprovação for concluída, essa etapa deve desaparecer. No Windows, o SmartScreen mostra "Mais informações → Executar". Depois da primeira instalação, a atualização automática dentro do app passa a avisar sobre novas versões sozinha.
Repositório: https://github.com/jkapa0417/tokenova
Feedback e relatos de bugs
Se notar algo estranho enquanto usa ou tiver alguma ideia, fique à vontade para deixar um comentário ou abrir uma GitHub Issue quando quiser. Todo tipo de opinião é bem-vindo. A direção futura do desenvolvimento e os recursos planejados podem ser conferidos no roadmap do repositório no GitHub.
Em uma frase
O Tokenova não vai mudar seus hábitos de programação. É só um pequeno universo flutuando na borda da tela. Mas observar esse universo crescer de um jeito diferente a cada dia acaba, de forma inesperada, ajudando você a continuar trabalhando.
Ainda não há comentários.