Sobre o projeto
O cc-grass é uma pequena ferramenta de linha de comando em Node.js que transforma a atividade local do Claude Code em um gráfico de contribuições estilo GitHub renderizado como um SVG independente, com as células coloridas em laranja em vez de verde. Ele lê as transcrições de sessão armazenadas em ~/.claude/projects como arquivos JSONL e, quando ~/.codex existe, os rollouts de sessão de ~/.codex/sessions produzidos pelo OpenAI Codex CLI.
O README declara a motivação claramente: o Claude Code já desenha um gráfico de uso dentro do terminal em /usage Stats, mas essa visualização permanece local. O cc-grass renderiza os mesmos dados subjacentes como um arquivo que você pode commitar e incorporar em um README de perfil do GitHub, em uma página de portfólio ou em qualquer outro lugar.
Notas de implementação e design extraídas do README:
- Zero dependências de runtime: apenas os módulos fs, path e os do Node. Sem ccusage, sem chamadas de API. Node 18 ou superior, em macOS, Linux e Windows.
- Um cache incremental significa que execuções repetidas re-analisam apenas arquivos de sessão novos ou alterados. Pode ser desativado com --no-cache, e o diretório de cache padrão é ~/.cache/cc-grass.
- O SVG espelha o layout do GitHub: células 10 por 10, lacunas de 3px, cantos arredondados, rótulos de linha Seg/Qua/Sex, cabeçalhos mensais e uma legenda Less/More.
- A saída é um único SVG, ou uma página HTML minimalista via flag --html. O projeto deliberadamente não fornece daemon, agendador ou workflow do GitHub Actions integrado; o agendamento fica a cargo do usuário, e o README mostra um exemplo de crontab que regenera o arquivo e faz o commit apenas quando ele realmente mudou.
As opções incluem a escolha da métrica (prompts, sessões ou tokens, padrão tokens), um intervalo de datas através de --since e --until, tema escuro ou claro, uma string de cabeçalho personalizada, diretórios de dados alternativos para Claude e Codex, exclusão de dados do Codex, exclusão de transcrições de subagentes e a alteração da localização do cache.
A contabilização de tokens: as contagens diárias de tokens somam tokens de entrada, saída, criação de cache e leitura de cache por entrada, ou seja, tudo o que a API cobraria. Arquivos de subagentes são incluídos por padrão; excluí-los corresponde ao valor que o Claude Code mostra em /usage. As sessões do Codex são contadas a partir de valores cumulativos de total_token_usage em eventos token_count usando deltas, para que eventos duplicados não sejam contados duas vezes. A saída HTML também mostra um custo estimado de API por modelo com base em taxas publicadas por milhão de tokens armazenadas por período de preço; modelos sem uma taxa conhecida exibem um marcador de preço não disponível, e o README observa que usuários de assinatura não pagam esses valores na realidade.
Duas ressalvas são documentadas honestamente. Primeiro, as tooltips de hover por célula usam elementos de título SVG; elas funcionam em visualizadores de SVG independentes e na saída HTML, mas não quando o SVG é incorporado em um README do GitHub, porque o GitHub o serve como uma imagem e os navegadores ignoram os títulos nesses casos. Segundo, o SVG de exemplo e a página interativa vinculada mostram a atividade real do autor, portanto, o README aconselha ter cautela sobre onde publicar seu próprio gráfico.
Uma API programática também é exposta: parseClaudeProjects e renderSvg podem ser importados para construir o mesmo gráfico em seu próprio código. O projeto possui licença MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.