Cloudflare cria CLI unificada para toda a linha de produtos
(blog.cloudflare.com)- A Cloudflare está reconstruindo o Wrangler de próxima geração para oferecer mais de 100 produtos e cerca de 3.000 APIs HTTP em uma única CLI unificada (
cf), com prévia técnica já disponível vianpx cf - Como apenas o esquema OpenAPI existente não conseguia representar interfaces diversas como comandos de CLI, bindings de Workers e skills de agentes, a empresa adotou um novo sistema de esquemas baseado em TypeScript
- Seguindo a tendência de agentes usarem a CLI como principal consumidor, a Cloudflare passou a impor em nível de esquema regras de consistência e guardrails de comandos como
get/--force/--json - Foi lançada em beta aberto a funcionalidade Local Explorer, que permite explorar facilmente recursos simulados no desenvolvimento local e inspecionar diretamente dados locais de KV, R2, D1 e outros
- Ao oferecer toda a API da Cloudflare de forma consistente no mesmo formato tanto na CLI quanto no ambiente local, a empresa busca uma experiência de desenvolvimento otimizada para agentes e desenvolvedores
A escala da API da Cloudflare e a mudança para agentes
- A Cloudflare possui mais de 100 produtos e cerca de 3.000 operações de API HTTP
- Agentes estão emergindo como consumidores principais de APIs, e desenvolvedores já usam agentes de programação para criar e implantar aplicações, agentes e plataformas na Cloudflare
- A empresa já disponibiliza toda a sua API em um servidor MCP único do Code Mode com menos de 1.000 tokens, mas ainda precisa cobrir mais interfaces como comandos de CLI, bindings de Workers, SDK, arquivos de configuração, Terraform, documentação para desenvolvedores e Agent Skills
- A CLI Wrangler existente não incluía comandos para muitos produtos da Cloudflare, e agentes tendem a preferir CLI
Reconstrução da CLI Wrangler de próxima geração
- A Cloudflare está reconstruindo a CLI Wrangler como uma CLI para toda a Cloudflare, com comandos para todos os produtos e configuração unificada em estilo infrastructure-as-code
- A prévia técnica pode ser usada com
npx cfou instalada comnpm install -g cf - No momento, apenas alguns produtos são suportados, mas internamente a empresa já testa uma versão que cobre toda a superfície de API da Cloudflare
- Os comandos de cada produto estão sendo revisados e ajustados com saída ergonômica tanto para agentes quanto para humanos
- Nos próximos meses, isso será combinado com os pontos fortes do Wrangler atual
Esquema baseado em TypeScript e pipeline de geração de código
- Antes, a empresa gerava automaticamente API SDK, provider do Terraform e servidor MCP do Code Mode com base em esquemas OpenAPI
- Atualizações de CLI, bindings de Workers, configuração em
wrangler.jsonc, Agent Skills, dashboard e documentação ainda seguiam um processo manual, com erros frequentes e sem escalabilidade - Como o esquema OpenAPI só consegue descrever APIs REST, ele não conseguia representar comandos de CLI interativos que combinam desenvolvimento local e requisições de API, nem bindings de Workers baseados em RPC, Agent Skills e documentação
- Observando que o TypeScript já é uma linguagem comum dentro da Cloudflare, a empresa concluiu em projetos como Cap n' Web, Code Mode e o sistema de RPC da plataforma Workers que expressar APIs em TypeScript era mais eficaz
- Por isso, adotou um novo esquema TypeScript para definir APIs, comandos de CLI, argumentos e todo o contexto necessário para gerar interfaces
- Trata-se de tipos TypeScript com convenções, linting e guardrails aplicados
- Como é um formato próprio, ele oferece flexibilidade para suportar qualquer interface necessária, ao mesmo tempo em que ainda permite gerar esquemas OpenAPI
Consistência entre agentes e CLI, e engenharia de contexto
- Agentes esperam consistência na CLI; se um comando usa
infoe outro usaget, o agente pode acabar chamando um comando que não existe - Em organizações grandes com centenas ou milhares de engenheiros, manter essa consistência apenas via revisão inevitavelmente cria falhas, como no modelo do queijo suíço
- Impor consistência apenas na camada de CLI pode piorar o problema, fazendo com que CLI, API REST e SDK usem nomes diferentes
- Por isso, a Cloudflare aplica regras e guardrails no nível do esquema: sempre
get(nuncainfo), sempre--force(nunca--skip-confirmations), sempre--json(nunca--format) e assim por diante em todos os comandos - A CLI Wrangler tem uma estrutura especial porque funciona tanto com recursos simulados locais quanto com recursos remotos
- Bancos de dados D1, buckets R2 e namespaces KV são suportados tanto local quanto remotamente
- Isso pode causar confusão quando um agente acha que está alterando um banco remoto, mas na prática adiciona um registro ao banco local
- A empresa fornece orientação explícita aos agentes com padrões consistentes e saídas que deixam claro se o alvo é local ou remoto
Local Explorer — exploração local com os mesmos recursos do remoto
- O Local Explorer foi lançado em beta aberto e pode ser usado tanto na CLI Wrangler quanto no plugin Vite da Cloudflare
- Durante o desenvolvimento local, é possível explorar diretamente os recursos simulados usados pelo Worker: KV, R2, D1, Durable Objects e Workflows
- As mesmas ações possíveis na API e no dashboard da Cloudflare podem ser realizadas em um ambiente totalmente local, com a mesma estrutura de API
- A Cloudflare vem investindo há anos em desenvolvimento totalmente local, e até bancos de dados serverless hospedados como o D1 podem rodar integralmente de forma local por meio de bindings, sem configuração nem ferramentas extras
- O Miniflare (emulador de plataforma para desenvolvimento local) fornece a mesma API da produção e usa bancos SQLite locais
- Isso permite escrever e executar testes rapidamente sem acesso à rede, inclusive offline
- Antes, para verificar quais dados haviam sido salvos localmente, era preciso fazer engenharia reversa no diretório
.wrangler/stateou instalar ferramentas de terceiros - Ao executar a aplicação pela CLI Wrangler ou pelo plugin Vite da Cloudflare, aparece um prompt para abrir o Local Explorer, com acesso pelo atalho
e- Ele oferece uma interface local para ver os bindings conectados ao Worker atual e os respectivos dados
- Ao desenvolver com agentes, isso ajuda a entender como eles estão manipulando os dados, além de permitir validação de esquema, seed de registros de teste e reset com
DROP TABLE - A Cloudflare também oferece um espelho da API da Cloudflare que modifica apenas dados locais, permitindo acessar recursos locais com a mesma API usada no remoto
- Como o formato de API é idêntico entre local e remoto, ao passar a flag
--localna CLI a requisição é redirecionada para a API espelhada local e continua funcionando da mesma forma
- Como o formato de API é idêntico entre local e remoto, ao passar a flag
- A API local fica disponível no caminho
/cdn-cgi/explorer/api, permitindo que agentes descubram a especificação OpenAPI nesse endereço e gerenciem recursos locais
Pedido de feedback e próximos passos
- A prévia técnica da CLI de próxima geração já pode ser usada com
npx cfounpm install -g cf - A Cloudflare pede feedback não apenas sobre os recursos atuais da prévia técnica, mas também sobre o que usuários gostariam de ver em uma CLI para toda a plataforma Cloudflare
- Tarefas que hoje exigem vários cliques no dashboard, mas que deveriam funcionar com um comando de CLI de uma linha
- Itens que usuários gostariam de configurar em
wrangler.jsonc(como registros DNS e regras de cache) - Pontos em que agentes ficam travados e comandos que deveriam existir na CLI
- O feedback está sendo recebido no Cloudflare Developers Discord
2 comentários
Seria bom se eles também ajudassem a corrigir o erro que ocorre ao tentar exportar um banco de dados D1 com tabela FTS configurada.
É a parte mais inconveniente ao usar o
wrangler.Comentários do Hacker News
Seria bom se o Wrangler CLI mostrasse antecipadamente as permissões de token de API necessárias durante o desenvolvimento local
Assim daria para saber claramente quais permissões são exigidas antes do deploy, e seria ideal ter um comando como
cf permissions checkpara verificar permissões ausentes ou desnecessáriasGraphQL segue bem os princípios de HATEOAS, então é vantajoso para LLMs explorarem a API
Em vez de problemas causados por versões de documentação incompatíveis, uma estrutura em que a própria API revela suas capacidades é muito melhor
Eu gostaria que adicionassem primeiro controle de permissões no nível de grupo de recursos
Hoje só existem permissões baseadas em zone (domínio), então recursos como workers, que não pertencem a uma zone, podem ter o código substituído ou ser excluídos mesmo com permissões baixas
Seria ainda melhor se suportassem uma estrutura de super account + sub account como no GitHub Enterprise. Ex.: ACME Corp / ACME Corp (Prod)
Ótimo texto, me inspirou bastante. Mas achei curioso TypeSpec não ter sido mencionado
É uma linguagem de schema no estilo TypeScript, que costumo descrever como “como seria se o OpenAPI tivesse sido realmente bem feito”
Imagino que tenham achado que uma implementação própria seria mais simples e flexível. Hoje em dia, com agents, o custo de BYO também caiu bastante
Mas hoje em dia prefiro APIs no estilo aep.dev. Graças aos padrões consistentes, fica fácil usar aepcli imediatamente ou criar o seu próprio
O Terraform também funciona direto, sem provider separado
Ultimamente, esse design CLI-first centrado em AI agents tem sido interessante
Nós também, ao criar ferramentas para desenvolvedores, fizemos primeiro o CLI e a API e só depois acoplamos o dashboard
A ideia do
cf permissions checkmencionada acima é especialmente boaAgents usam bem o CLI, mas são ruins em diagnosticar a causa de erros.
Mensagens de erro claras como “faltando scope X, execute
cf token add --scope X” são muito mais importantesDisseram que dá para testar o preview técnico imediatamente com
npx cf, e tenho algumas dúvidasQueria saber se é open source e se há planos de disponibilizá-lo como binário único, sem Node.js.
Será que poderiam aproveitar algo como o Bun, adquirido recentemente?
Espero que evitem tokens de longa duração.
Em vez disso, seria bom se fosse fácil criar tokens de curta duração e restritos no CLI, gerenciá-los em arquivos ou renová-los automaticamente
Outra opção seria ter um modo proxy, delegando permissão de acesso apenas a um domínio ou bucket específico
Ironicamente, com a era dos AI agents, estamos voltando ao desenvolvimento centrado em CLI
Toda vez que vou limpar o cache da Cloudflare, preciso clicar em várias etapas na UI web, mas seria ótimo simplesmente dar um comando ao OpenClaw agent
O método de autenticação do Wrangler oferece apenas duas opções: OAuth (acesso total) e tokens estáticos criados manualmente no dashboard
Mas isso não se encaixa quando humanos e AI agents precisam ter fronteiras de permissão diferentes
Seria bom poder criar diretamente no CLI tokens com escopo e curta duração
Isso também está em discussão na issue #13042 do GitHub.
Os tokens deveriam ser detalhados não só por tipo de recurso, mas também por ID do recurso e ação
Em 1º de abril, a Cloudflare apresentou o EmDash com suporte a x402, e agora parece estar focando no CLI
Dá a impressão de que a Cloudflare está reconstruindo silenciosamente um ecossistema de desenvolvedores em que agents, e não humanos, são os principais usuários
Disseram que definiram API, comandos CLI, argumentos e contexto com schemas TypeScript,
então fiquei curioso por que essa ferramenta ou framework não foi apresentada aqui
Gostaria de saber se tem uma estrutura parecida com o TypeSpec citado acima