stamatios
← Voltar ao feed
Lupa sobre uma janela de navegador cheia de blocos de código, metáfora do px0 para verificar agentes
Dev & Engenharia · Agentes

px0 transforma o navegador em console de verificação para agentes

resumo de ~3 min

Proposta: verificar, não editar

px0 é apresentado como uma IDE somente leitura para a era dos agentes de IA. A proposta é transformar o navegador em um console de verificação instantânea para o código que agentes acabaram de escrever, com navegação por símbolos, inteligência de LSP e busca profunda. A distribuição é um binário estático único em Go, licenciado sob MIT, na versão 0.1.2. A premissa é que o código agora chega pelo terminal, não pelo teclado: agentes, harnesses e orquestradores escrevem e testam, enquanto a pessoa revisa, audita e navega. A ferramenta se posiciona como um lugar sem latência e sem distração para leitura e verificação, em vez de um editor que leva segundos para iniciar e gigabytes para ficar ocioso.

Benchmarks e consumo

Os números são medidos por ./benchmark.sh contra clones superficiais de sete repositórios reais, com servidores de linguagem desligados e a mais rápida de cinco requisições. A página afirma início em menos de 1 ms, cerca de 20 MB em repouso e busca fuzzy nos 95.710 arquivos do kernel Linux em 6 ms. No kernel, a indexação leva 370 ms, a varredura completa 451,8 ms, a abertura do maior arquivo 26,7 ms, a reabertura 0,6 ms e o RSS vai a 55 MB, com pico de 73 MB. No TypeScript, são 66.533 arquivos, indexação de 566 ms, busca fuzzy de 6,2 ms, RSS de 69 MB e pico de 105 MB. Em comparação, o VS Code, na mesma árvore, aparece com cerca de 1.440 MB e mais de 15 processos; gráfico e tabela citam 90x e 70x mais leve, respectivamente. A memória é devolvida após 15 segundos de inatividade; numa sessão com o kernel Linux, o RSS cai de um pico de 94 MB para 57 MB depois de 30 segundos ociosos.

LSP opcional e recursos de leitura

O LSP é opcional. Servidores são detectados no $PATH, iniciados na primeira requisição e encerrados na saída; sem eles, px0 recorre a um esboço por regex instantâneo. Com gopls, o servidor ficou pronto em 374 ms, pagos uma vez; o esboço de documento levou 1,4 ms, ir para definição 1,5 ms, localizar referências 3,0 ms e hover 5,1 ms. O px0 usou 18 MB e o gopls, 122 MB. Entre os recursos estão busca fuzzy de arquivos e símbolos, varredura regex em toda a árvore, status git e diffs divididos ou unificados contra HEAD, filtro apenas de alterados, propagação de alterações para diretórios ancestrais, pré-visualização de Markdown GFM via goldmark com realce Chroma, 14 temas e histórico de avanço/voltar. Não há endpoints de escrita, host de extensões, mercado de plugins nem Electron. Não há telemetria; a única chamada externa é uma verificação diária de versão no GitHub. Por padrão, o serviço escuta em 127.0.0.1, a menos que se passe -host. A interface monta cerca de 60 linhas visíveis e 24 de sobrevarredura; um arquivo de 400 mil linhas custa o mesmo que um de 10 linhas, pois só a janela visível é renderizada.

Arquitetura e distribuição

Na arquitetura, um servidor Go cuida de indexação, busca, realce e servidores de linguagem, conversando em JSON com um frontend ES module sem dependências. A indexação começa em segundo plano; a caminhada ignora regras e symlinks de diretório. O realce lexical usa janelas e cache LRU de 512 MB. A busca faz rejeição rápida com bytes.Contains e reutiliza buffers; o fuzzy é O(n) em duas passagens e favorece basenames, limites de palavra e corcovas camelCase. Instala-se por script curl, binário pré-compilado para 15 alvos ou código-fonte com Go 1.24+. O comando aponta para um diretório, imprime a URL e abre o navegador enquanto indexa em segundo plano; instâncias múltiplas buscam a próxima porta livre. Há flags para porta, host, LSP, git e atualização. A ferramenta se apresenta como complemento ao editor para edições que ainda são digitadas.