Cloudflare's CLI is now 48% agents — so it rebuilt it for them
Cloudflare says agents drove 48% of Wrangler usage last week. Its answer is cf, a new CLI generated from 3,000+ API operations with JSON as the default.
Cloudflare says that last week, 48% of all Wrangler usage came from agents rather than humans. In March 2026 the figure was a quarter. The year before that, single digits. The company also reports that agents run almost twice as many distinct commands per day as humans, and are roughly four times as likely to fire off six or more commands in a session.
On the back of that, Cloudflare has launched cf, a new command-line tool in open beta, installable with npm i -g cf. Wrangler isn't dead — Cloudflare's guidance is to keep using it in projects that already have a wrangler.jsonc, wrangler.json or wrangler.toml file, and to migrate with cf migrate only when asked. But the direction of travel is unambiguous.
How you get from 280 commands to 3,000 without writing them
The stated problem is coverage. Wrangler exposes around 280 operations. Cloudflare's API has over 3,000. Wrangler was hand-built, with each product team contributing its own commands and its own conventions, which is why you ended up with d1 info, hyperdrive get and workflows describe all meaning roughly the same thing. Cloudflare admits some teams wrote thousands of lines of custom command code for features that were then barely used.
cf is generated instead of written. Cloudflare built a pipeline it calls Forge, which takes the OpenAPI schemas that already power its API documentation and SDKs, adds a layer of annotation, and emits CLI commands from them. OpenAPI is just a machine-readable description of every endpoint, its parameters and its responses — the same file that lets you auto-generate client libraries. Point that at a command generator and the entire API surface becomes a CLI, consistently named, for roughly the cost of maintaining the schema you were maintaining anyway.
That is the genuinely new part. The rest of the launch is design decisions that follow from it.
JSON first, and a search index for the machine
Wrangler returned human-readable tables by default, with --json available on some commands but not all. Cloudflare's observation is that agents append --json to everything and then pipe it through jq to pull out fields. So cf inverts the default: JSON always, condensed for agents to save context, pretty-printed for humans. Where a task genuinely needs a person — buying a domain, for instance — cf breaks the API's requirements into a validated form rather than a chain of named flags.
Discovery is the harder problem. No agent can hold 3,000 command paths in context. Cloudflare's answer is cf cli search, a local search index over command descriptions and parameters that takes a natural-language query and returns candidate commands. Running --help for the first time tells the agent this exists. Cloudflare's argument for launching a CLI no model has ever seen is counterintuitive but coherent: a brand-new tool with explicit steering is easier for an agent to learn than a familiar tool whose behaviour has quietly changed.
The config file is now a TypeScript program
Configuration moves to cloudflare.config.ts, with helpers — defineConfig, bindings, triggers — and a mode argument from Vite for switching between environments. The point isn't elegance; it's that TypeScript carries a schema the editor's language server can read, so both you and your agent get autocomplete and type errors instead of guesswork. Cloudflare contrasts this with TOML, which had no accessible schema, and JSONC, which had a linked one agents rarely used. Internally, the company says some Wrangler configs of over 5,000 lines shrank by 40% by generating per-developer environments from a shared base rather than copy-pasting env blocks.
Vite also becomes the default builder and dev server, replacing the esbuild-and-Miniflare stack Wrangler grew up on, with Rolldown handling tree-shaking and hot module replacement out of the box.
Questions You Should Be Asking
- How does Cloudflare actually classify a request as coming from an agent rather than a human, and how much of the 48% is a script in CI that has never seen a model?
- If commands are generated from OpenAPI schemas, what happens to your automation when a schema changes upstream — does a command get silently renamed or dropped?
- Who reviews the 2,700 operations that no human has ever exercised through a CLI before? Generated coverage is not the same as tested coverage.
- What are the blast-radius controls when an agent with cf credentials can buy domains, alter WAF rules and change DNS from the same tool?
- How long will Wrangler be supported, and what does "keep using it unless asked to migrate" mean in two years?
What To Watch Next
Watch whether cloudflare.config.ts actually expands past Workers. Cloudflare says zones, DNS and policies are coming to the same file — that is the claim that turns cf from a better Wrangler into a control plane for the whole account. If that surface is still Workers-only when the beta ends, the ambition was a roadmap slide. If it lands, the interesting question stops being which CLI you use and becomes how much of your infrastructure one agent token can reach.
- 1Keep using Wrangler in any project that already has a wrangler.jsonc, wrangler.json or wrangler.toml, and only run cf migrate when explicitly asked.
- 2Try the new CLI in a throwaway project first with npm i -g cf, since it's still in open beta and behavior may change.
- 3Design your CLI scripts and docs for agent use: expect 6+ command sessions, so favor deterministic flags and machine-readable output over interactive prompts.
Ready to implement AI in your business?
Our team builds the AI systems you just read about. Start with a free 30-minute discovery meeting.
