Cloud & DevOpsDeveloper Tools

Cloudflare Replaces Wrangler With cf CLI — Migrate Now

Cloudflare cf CLI replacing Wrangler for Workers developers

Cloudflare shipped cf on September 28 — a new command-line tool that officially supersedes Wrangler after five years as the Workers standard. The new CLI covers 3,000+ API operations versus Wrangler’s 280, defaults to JSON output, and introduces a TypeScript configuration format built for type-safe, agent-compatible workflows. Wrangler is not dead. But it is on a maintenance clock, and the migration path for Vite-based projects is already automated.

Why cf and Not Wrangler v3

Cloudflare chose a new tool name deliberately. Nearly half of all Wrangler commands are now issued by AI coding agents — that number was 25% in March 2026 and climbed to 48% in recent weeks. Agents run twice as many distinct commands as humans and are four times more likely to chain six or more commands in a single session.

The problem: Wrangler was built for human terminals. It rendered unicode tables, required --json appended to every command (and some commands did not even support it), and used a configuration format that agents could not introspect. Changing Wrangler’s output format would break every agent trained on its patterns. A new tool with a new name sidesteps that entirely.

The result is a CLI generated directly from Cloudflare’s full OpenAPI surface: 2,936 generated commands plus 49 hand-written ones across 163 namespaces. JSON is the default output. A new cf cli search command lets agents — and developers — describe what they want in plain English and get the right command without consulting docs. The source is open on GitHub.

The Configuration Change That Matters

wrangler.jsonc is out. cloudflare.config.ts is in. The new format is TypeScript, which means full LSP support, editor autocomplete, and type-checked bindings. Cloudflare reports some of their own internal configs that had grown past 5,000 lines shrank by 40% in the new format.

Bindings are now declared with typed helpers:

import { bindings, defineConfig } from "cf/config";
import * as entrypoint from "./index.js" with { type: "cf-worker" };

export default defineConfig(({ mode }) => ({
  worker: {
    name: "my-worker",
    entrypoint,
    compatibilityDate: "2026-09-27",
    env: {
      DB: bindings.d1(),
      CACHE: bindings.kv(),
      STORE: bindings.r2(),
    },
  },
}));

Triggers follow the same pattern — triggers.fetch(), triggers.scheduled(), triggers.queue(), triggers.email() — all typed, all discoverable in your editor. Vite replaces esbuild as the default bundler, with Rolldown providing Rust-based tree-shaking and HMR support for local development.

How to Migrate

If you are on a Vite-based project, migration is automated:

npm i -g cf
cf migrate

That generates cloudflare.config.ts for platform configuration, wrangler.config.ts for build configuration, and updates your package.json. It requires a clean git state — use --force to override. Review the output before deploying.

If you are on esbuild, cf migrate still runs but delegates builds back to Wrangler. The CLI changes; the bundler does not. Cloudflare is explicit that the build system migration is optional and separate from the command-line migration. A few things cf migrate does not handle: Workflow bindings, Containers configuration, and framework build pipelines that rely on custom scripts. One developer migrating an Astro blog found that cf skipped CSP headers and package.json build scripts entirely. Run the migration on a test branch first.

What the Beta Is Still Missing

cf 1.0.0-beta.5 is real software, but some Wrangler capabilities are absent:

  • No log streaming equivalent to wrangler tail
  • Cannot set individual secrets — only bulk operations
  • No worker rollback command
  • Requires Node.js v22 or higher; no Bun support
  • Service environments replaced by the --mode flag (behavior change, not just syntax)

If any of those affect your workflow, stay on Wrangler. The 18-month maintenance window is there for a reason.

When Does Wrangler Actually Die

Not soon. The sequence: open beta ends → final major Wrangler version ships that redirects users to cf → 18 months of maintenance support after that. No end date for the open beta has been announced. New Workers projects should start with cf. Existing projects can migrate on their own timeline — there is no hard cutoff today.

Telemetry: Reset It

cf collects telemetry by default, including the text of your cf cli search queries as typed. If you disabled telemetry in Wrangler, you need to do it again in cf: run cf cli search telemetry disable, or set DO_NOT_TRACK=1 in your environment.

The Bottom Line

For Vite-based Workers projects: migrate now. The automation works, the TypeScript config is genuinely better, and starting ahead of the wave is easier than scrambling when the beta closes. For esbuild or framework builds: run cf migrate on a branch, verify the output, and decide. For production static sites with non-trivial pipelines: wait a few more beta cycles.

The name cf will conflict with someone’s existing shell alias. That is unavoidable. The tool itself is solid — and if nearly half your Cloudflare API calls are already coming from agents, building the CLI around them first is the right call. Cloudflare’s full announcement covers every detail of the open beta.

ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to cover latest tech news, controversies, and summarizing them into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *