A Cloudflare abriu o código do Kitesurf, um navegador feito para agentes de IA, sob a licença Apache 2.0. O código está no GitHub e a página do projeto é kitesurf.dev. O navegador roda no Cloudflare Workers, sem precisar de contêiner de navegador, e ainda assim interpreta HTML, processa CSS e executa JavaScript.
O objetivo declarado pela Cloudflare é direto:
"Our main goal is to give AI agents a lightweight, efficient browser — one that can load websites, execute JavaScript, and interact with pages while using less CPU and memory than a full browser like Chromium."
Em resumo: dar aos agentes um navegador leve, capaz de abrir sites, rodar scripts e interagir com as páginas, com consumo de CPU e memória menor que o de navegadores completos como o Chromium.
Do experimento de portabilidade ao código aberto: três marcos
O ponto de partida do Kitesurf é o obscura, um motor headless de código aberto escrito em Rust, que se apresenta como “sem Chrome, sem Node.js, sem dependências”. A equipe da Cloudflare primeiro pediu a um agente de IA que o portasse para o Workers, com resultado ruim no início; só depois de escrever para o agente um plano detalhado e critérios de sucesso é que o protótipo rodou, ainda que com dificuldade.
Segundo o blog da Cloudflare, foram 12 semanas entre a decisão de começar e o lançamento oficial. Na estreia, o Kitesurf entrou no Browser Run, o serviço de automação de navegador headless da Cloudflare, como beta gratuito; os desenvolvedores podiam alternar adicionando o parâmetro browser=kitesurf na API. Na época, a Cloudflare prometeu “abrir o código quando estiver pronto” e, segundo relatos, a publicação não trazia cronograma. A abertura agora noticiada pelo Phoronix cumpre essa promessa.
No desenvolvimento, a equipe usou os Web Platform Tests (o conjunto de testes de conformidade do W3C) como critério de aceitação para o agente de IA, enquanto as pessoas cuidaram da arquitetura e da revisão. Quando o blog foi publicado, o Kitesurf já passava em cerca de 215 mil testes, com algumas centenas a mais a cada semana. Para reduzir a distância entre os testes padronizados e os sites reais, eles também usaram o Puppeteer para rodar Chromium e Kitesurf lado a lado em sites de verdade, comparando asserções e capturas renderizadas, passo a passo.

Como ele é dividido por dentro
O Kitesurf se divide em três blocos:
- Engine: o único componente exposto ao exterior; trata o protocolo Chrome DevTools (CDP) e guarda o estado da sessão. Clientes como Puppeteer e Playwright funcionam apontando para ele.
- PageScript: cada página roda em um isolamento próprio do Workers; o HTML e o CSS usam um módulo do motor de renderização Blitz, escrito em Rust, e o Stylo do Firefox; quando aparece um
eval, que o Workers não suporta nativamente, a execução é repassada ao motor JS Boa, também escrito em Rust. - PageRenderer: desenha o objeto da página em pixels e gera JPEG, PNG ou PDF, sem guardar estado da página; se travar, é encerrado e reiniciado.
Todas as requisições à rede externa passam por um único componente, o SandboxOutbound, e os cookies de cada página ficam em um “pote” separado. A premissa de projeto da Cloudflare é tratar cada carregamento como entrada não confiável e começar toda sessão do zero, mirando riscos típicos de agentes, como injeção de prompt e segurança nas chamadas de ferramentas.
Na conta da memória: quantas sessões cabem em uma máquina
A Cloudflare rodou 5 rodadas em cada um de 14 endereços e tomou a mediana. Na tarefa de extração de HTML, o Kitesurf ocupa 39,4 MiB de memória e o pool aquecido de Chromium, 273,7 MiB, uma diferença de 7 vezes; na tarefa de captura de tela, a diferença é de 4,7 vezes.
Com os números da captura de tela, uma estimativa grosseira indica que 1 GiB de memória comporta cerca de 17 sessões do Kitesurf, contra apenas 3 a 4 com o Chromium. Em uma implantação real ainda é preciso considerar a sobrecarga de agendamento e os picos, então essa proporção deve ser vista como um teto. A própria Cloudflare diz que memória e CPU é que definem a fatura; no tempo de relógio, o Chromium é de 1,7 a 1,8 vez mais rápido, com a diferença concentrada em rasterização e codificação de imagem, e novas otimizações virão.
As limitações também estão claras: por ora o Kitesurf não reproduz vídeo, não renderiza WebGL e não usa uma impressão digital TLS real para passar por verificações antibot. Entre as páginas que a Cloudflare lista como renderizadas corretamente estão a Wikipédia, o Hacker News e o TodoMVC em várias versões de frameworks. Para desenvolvedores na China, com o código aberto é possível implantá-lo na própria conta do Workers, sem passar pelas cotas do Browser Run, mas a compatibilidade com sites complexos precisa ser testada por conta própria.
Fontes: blog oficial da Cloudflare, Phoronix, CocoLoop, H2S Media; as medianas de CPU, memória e tempo no conjunto de testes de 14 endereços e o número de aprovações no WPT foram conferidos no blog da Cloudflare.