Há três semanas você passou quarenta minutos com Claude Code descobrindo por que uma migração de banco de dados continuava falhando. Você encontrou a causa raiz, corrigiu, e seguiu em frente. Ontem, em outra sessão, seu agente esbarrou exatamente no mesmo problema. Ele não tinha ideia de que você já tinha resolvido — porque o transcript daquela primeira sessão de debug está guardado em uma pasta da sua máquina, em um formato que nada consegue buscar.
Esse é o problema que ctx veio resolver, e é dos bons.
A pilha que ninguém busca
Todo agente de coding sério anota absolutamente tudo o que faz. Claude Code, Cursor, Codex, Gemini CLI, GitHub Copilot CLI — cada um guarda transcripts locais detalhados de cada conversa, cada comando executado, cada tentativa falhada antes do fix que funcionou. Nenhum desses logs se conversa com os outros. Nenhum é barato de buscar. Se você quer que seu agente cheque “isso eu já resolvi antes” antes de começar do zero, hoje a única opção real é passar transcripts brutos como contexto — e isso pode queimar dezenas de milhares de tokens antes de o agente fazer algo útil.
ctx (GitHub - ctxrs/ctx: Search the coding agent history already on your machine · GitHub), lançado em 4 de julho (boreal) por um time pequeno que trabalha sob o nome ctxrs, vai direto ao ponto: junta todo esse histórico disperso em um único banco de dados SQLite local, estruturado o suficiente para ser buscado em milissegundos em vez de ser carregado inteiro.
Pondo para funcionar
É um único binário em Rust — sem daemon, sem serviço em background, sem API keys.
# Descobre e importa todos os session logs de agentes que ctx encontrar
ctx setup
# Busca em tudo isso com linguagem natural
ctx search "failed migration"
# Ou refine com vários termos
ctx search --term "failed migration" --term rollback --term "cursor rename"
Ao rodar setup, ele escaneia sua máquina procurando por session logs locais de qualquer harness suportado e os importa. No momento da escrita, ctx suporta Claude Code, Codex, Cursor, Pi, OpenCode, Gemini CLI (via Antigravity), Factory AI Droid e GitHub Copilot CLI.
Uma busca retorna sessions e events que combinam, cada um com seu próprio ID:
ctx show event <ctx-event-id> --window 3
ctx show session <ctx-session-id>
Você passa esses IDs para seu agente atual e ele consegue trazer exatamente o pedaço de uma sessão passada que precisa — não o transcript inteiro.
O que acontece por baixo
ctx normaliza o formato bruto do transcript de cada harness para um schema comum de sessions e events, guardado em um arquivo SQLite plano. É isso — sem embeddings, sem chamadas para modelos, sem ida e volta para a nuvem na versão local. Você até pode consultar o índice diretamente:
ctx sql "SELECT provider, COUNT(*) AS sessions FROM ctx_sessions GROUP BY provider"
O projeto é Apache 2.0, e no momento da escrita tem 180 stars, 15 forks e 68 commits — escrito principalmente em Rust, com bindings de SDK em TypeScript, Python, Go, JVM, Swift e .NET para quem quiser chamar ctx search do seu próprio tooling em vez da CLI.
O número de tokens, com sua ressalva
O benchmark do próprio projeto afirma que uma busca real que custaria 45.734 tokens via transcript bruto cai para 917 tokens usando ctx — mais ou menos uma redução de 50x. Vale esclarecer que esse é um número autorrelatado pelo projeto, não um benchmark verificado de forma independente. Dito isso, o mecanismo por trás é direto o suficiente — busca estruturada versus carregar texto bruto — para que a direção da afirmação se sustente mesmo que não tenhamos um número independente confirmando o multiplicador exato.
Algo para ficar de olho: o beta na nuvem
Há uma versão em nuvem em beta privado para times que queiram sincronizar histórico entre máquinas ou compartilhá-lo internamente. Vale notar: o criador foi direto na thread de Show HN sobre o fato de que os limites de privacidade aqui ainda não estão resolvidos — os transcripts podem trazer detalhes pessoais misturados com decisões técnicas, e não há uma linha clara do que deveria ser compartilhado e do que não. A versão local que analisamos aqui não toca a rede de jeito nenhum: nenhum prompt, transcript ou histórico sai da sua máquina, e não há API keys envolvidas.
Como a comunidade reagiu
O post de Show HN juntou 64 pontos e 37 comentários em poucas horas — bem acima da média para o lançamento de uma dev tool. O que se destacou na thread não foi ceticismo; vários engineers comentaram que já tinham construído alguma versão disso internamente, e alguém levantou que a amnésia de contexto nos agentes está se tornando um daqueles problemas aos quais todos chegam de forma independente uma vez que usam essas ferramentas o tempo suficiente. É um sinal bastante bom: o buraco que ctx vem tapar é um que muita gente já tinha notado por conta própria.
Vale a pena instalar?
Se você roda mais de um agente de coding, ou roda o mesmo tempo o suficiente para acumular meses de sessões, isso é praticamente de graça testar. Não muda seu workflow — ele fica por baixo, e só é usado quando você ou seu agente buscam algo explicitamente. A instalação é um binário, um comando setup, e nada para configurar.
Você já tem meses de transcripts acumulados sem conseguir buscá-los, ou esse é um problema que nem sabia que tinha até agora?
