Uma ferramenta CLI para contar linhas de código, comentários, tokens e linhas em branco em arquivos dentro de um diretório.
O que é o ct-lines?
ct-lines (count lines) é uma CLI que percorre uma árvore de diretórios e reporta contagens por arquivo e agregadas para linhas de código, linhas de comentário, linhas em branco e tokens. É útil para entender o tamanho e a composição de uma base de código rapidamente — sem instalar ferramentas pesadas de análise estática.
O Problema que Resolve
Ao trabalhar em múltiplos projetos ou auditar uma nova base de código, é útil responder rapidamente: quanta código existe aqui? Qual porcentagem são comentários? Quantos tokens custaria enviar isso para uma LLM?
A maioria das ferramentas que respondem essas perguntas são complexas demais para instalar, lentas demais em árvores grandes, ou simplesmente não reportam contagem de tokens. O ct-lines é uma alternativa pequena e rápida que roda em segundos e produz resumos limpos e legíveis.
Funcionalidades Principais
Detalhamento por arquivo
ct-lines ./src
Arquivo Linhas Código Comentários Branco Tokens
─────────────────────────────────────────────────────────────────────
src/index.ts 142 98 22 22 1.840
src/parser.ts 310 241 40 29 4.102
src/formatter.ts 87 64 10 13 980
─────────────────────────────────────────────────────────────────────
Total 539 403 72 64 6.922
Estatísticas agregadas
Após a tabela por arquivo, o ct-lines imprime uma seção de resumo:
Resumo
Total de arquivos: 3
Total de linhas: 539
Código: 403 (74,8%)
Comentários: 72 (13,4%)
Em branco: 64 (11,9%)
Tokens: 6.922
Filtragem
ct-lines ./src --ext ts,tsx # apenas arquivos TypeScript
ct-lines . --exclude node_modules # pular diretórios
ct-lines . --min-lines 50 # apenas arquivos com 50+ linhasContagem de tokens
As contagens de tokens usam uma aproximação de tokenizador compatível com GPT, tornando o ct-lines útil para estimar custos de contexto de LLM antes de enviar uma base de código para uma API.
Instalação
npm install -g ct-linesRequisitos: Node.js ≥ 18.
Stack Tecnológica
- TypeScript — modo strict, compilado com esbuild
- fast-glob — varredura eficiente de diretórios
- meow — parsing de argumentos CLI
- cli-table3 — saída de tabela formatada no terminal
Casos de Uso
- Auditar uma nova base de código antes de um refactor
- Estimar custos de tokens de API de LLM para janelas de contexto
- Acompanhar o crescimento do código em um projeto ao longo do tempo
- Gerar relatórios rápidos para documentação técnica