Kostria
Pasta não é projeto. O Kostria segue o arquivo que a IA editou de verdade, resolve o repositório certo e extrai dali feature e ticket do Jira — em 30 segundos, sem proxy, sem SDK, sem mudar código.
O que e
Ferramentas de IA (Claude Code, OpenCode, Codex CLI) custam caro e crescem rápido. O painel do fornecedor mostra custo por conta — não por projeto, não por feature, não por ticket. Planilha juntada na mão e lenda com erro.
O Kostria lê os logs que essas ferramentas já deixam no disco, segue o arquivo editado até o commit que o fechou, e extrai dali o escopo da feature e o ticket. O board do time agrega isso pra todo mundo, sem a sessão bruta sair do disco de ninguém.
$ pip install kostria
$ kostria scan
custo total: $2,480.00 tokens: 1.2B sessões: 89
by feature:
checkout-pix (PROJ-118) $942.40 38%
onboarding (PROJ-204) $719.20 29%
busca (PROJ-091) $496.00 20%
Por que atribuir por cwd mente: 65% das edições do Claude Code acontecem
em repos que NÃO são o diretório de trabalho. Worktree, monorepo, sessão de
terminal — o cwd joga o custo no projeto errado. O Kostria segue o arquivo.
Quickstart
pip install kostria
kostria init # detecta suas pastas de trabalho
kostria scan # 30 segundos ate o primeiro resultado
kostria serve # dashboard em http://127.0.0.1:8787
Zero dependências. Só Python 3.10+ e stdlib.
O que o Kostria responde
- Quanto cada projeto consumiu? Por arquivo editado, não por diretório.
- Quanto cada feature custou? Arquivo → commit → escopo + ticket.
- Qual modelo é mais eficiente? Custo por edição entregue, não por token.
- Quanto da assinatura foi usado? Separa consumo real do fixo (Claude Pro/Max).
- Tem conta ociosa? Sinaliza contas sem atividade nos últimos 14 dias.
- O orçamento vai estourar? Projeção mensal + previsão de fechamento do mês.
Suporta
| Ferramenta | Coletor | Preço |
|---|---|---|
| Claude Code | ~/.claude*/projects/**/*.jsonl |
Tabela Anthropic publica (medido) |
| OpenCode | ~/.local/share/opencode/opencode.db |
Auto-reportado (confiável) |
| Codex CLI | ~/.codex/sessions/rollout-*.jsonl |
Tokens (sem tabela OpenAI) |
Planos
| Plano | Preço | Inclui |
|---|---|---|
| Local | Grátis | Motor de atribuição completo, painel local, retenção 90d |
| Pro | $9/mês | Integração Jira/Linear/GitHub Issues, sync cross-machine |
| Team | $14/assento/mês | Board agregado do time, budget alerts, org-scoped sync |
O motor e open source (MIT). O board do time e opcional e hospedado.
Comandos
kostria scan # resumo no terminal
kostria scan --since 30d --compare # contra mes anterior
kostria scan --budget 3000 # alerta de orcamento
kostria scan --anonymize # mascara nomes (compartilhavel)
kostria report # HTML (abre no navegador)
kostria report --format json -o dados.json
kostria report --format csv -o custos.csv
kostria serve # dashboard local em 127.0.0.1:8787
kostria watch # vigia ao vivo no terminal
kostria doctor # 11 checagens de integridade
kostria badge -o badge.svg # selo shields.io local
kostria sync # envia agregado pro board do time
kostria agendar # sync recorrente pelo agendador do SO
kostria agendar --mostrar # lê o que seria instalado, sem instalar
Depois do kostria login, os comandos do dia a dia (scan, report) já
sobem o agregado sozinhos de 6 em 6 horas — sem refazer a varredura, só o
envio do que acabou de ser calculado. Desligue com --sem-autosync (ou
autosync = false no kostria.toml). O kostria agendar cobre o caso de
quem passa o dia dentro do agente e nunca digita kostria.
Privacidade
- Roda 100% local. O motor e o relatório não dependem de rede nenhuma; só o
syncfala com o board, e só depois de você conectar a máquina comkostria login. - O
syncenvia o agregado: projeto, dia, custo, tokens, escopo de feature e ticket, os totais por modelo/fornecedor/ferramenta, o nome desta máquina e o seu plano de IA (valor pago e equivalente em API) com a conta mascarada (a***@dominio). Nunca caminho de arquivo, nunca conteúdo de sessão, nunca o e-mail completo. - Não quer mandar o plano?
kostria sync --sem-assinatura. --anonymizetroca nomes por hash estável para relatórios compartilháveis.
Por que o Kostria é diferente
Não é um proxy (Helicone). Não é tracing de qualidade (Langfuse). Não é FinOps de cloud (Vantage). É o único que lê os logs que já estão no disco, segue o arquivo até o commit e extrai dali feature e ticket — sem SDK, sem proxy, sem mudar uma linha de código.
Mapa completo de concorrentes →
Docs
- Estratégia de lançamento
- Mapa de concorrentes
- One-pager / pitch
- Arquitetura
- Guia de contribuição
- Saas blueprint
- Checklist de lançamento
Testes
python3 -m unittest discover -s tests # CLI: 388 testes
cd saas && python3 -m pytest -q # SaaS: 123 testes
O SaaS não exige Postgres: a suite injeta um pool em memória.
Licença
MIT. O CLI é livre. O board hospedado é opcional.
Feito em Vicosa, MG por Pedro Henrique.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kostria-0.2.3.tar.gz.
File metadata
- Download URL: kostria-0.2.3.tar.gz
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d60116192a767103bf56ec40973532613786c740a2a323f6a82c5b18835ba65b
|
|
| MD5 |
15d4e80b88fec5b08b89970cbefc248e
|
|
| BLAKE2b-256 |
45c88569d460e1fea7b4854a79df21e43217065c187c875ba9af0bc60a8b1372
|
File details
Details for the file kostria-0.2.3-py3-none-any.whl.
File metadata
- Download URL: kostria-0.2.3-py3-none-any.whl
- Upload date:
- Size: 958.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26d7c92973b5921c958ac2c751d1149f09b560305ba723bf1caa6caafc242996
|
|
| MD5 |
e33645b6cd19ef0281f48b699d2891b0
|
|
| BLAKE2b-256 |
2982dcd710625f5d1ae0768b5ac6d9b5ef8abae1a4a03f8f2610e57f75d7671b
|