<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/how-to-use-cf-the-new-cloudflare-cli-qqlloiwsc" -->

---
title: How to use cf, the new Cloudflare CLI | daily.dev
description: A hands-on walkthrough of cf, Cloudflare's new command line tool announced September 28, 2026 as an open beta, built to eventually replace Wrangler. Generated...
canonical: https://daily.dev/posts/how-to-use-cf-the-new-cloudflare-cli-qqlloiwsc
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: How to use cf, the new Cloudflare CLI | daily.dev
og:description: A hands-on walkthrough of cf, Cloudflare's new command line tool announced September 28, 2026 as an open beta, built to eventually replace Wrangler. Generated...
og:url: https://daily.dev/posts/how-to-use-cf-the-new-cloudflare-cli-qqlloiwsc
og:image: https://api.daily.dev/og/posts/qqlloiwsc.png
og:image:alt: How to use cf, the new Cloudflare CLI
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# How to use cf, the new Cloudflare CLI

**[Flavio Copes](https://daily.dev/sources/flaviocopes)** · 18 min read · 6 upvotes · 0 comments

## Summary

A hands-on walkthrough of cf, Cloudflare's new command line tool announced September 28, 2026 as an open beta, built to eventually replace Wrangler. Generated from the Cloudflare OpenAPI schema, cf covers over 2,900 commands (versus Wrangler's roughly 280), ships JSON output by default, includes a natural-language cf cli search command, and uses a TypeScript cloudflare.config.ts instead of wrangler.jsonc. The guide covers installation, authentication, creating and deploying a Worker with a KV-backed visitor counter, staging/production modes, migrating an existing Wrangler project with cf migrate (including pitfalls like bundler requirements and module type errors), using cf with coding agents, and gaps that remain during the beta such as missing live-tail logs and single-secret commands.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://flaviocopes.com/cloudflare-cf>

## Questions this post answers

### What is the cf CLI and is it replacing Wrangler for Cloudflare Workers?

cf is Cloudflare's new command line tool, announced September 28, 2026 as an open beta, and it is set to replace Wrangler. It covers the entire Cloudflare API with over 2,900 commands generated from the OpenAPI schema, versus Wrangler's roughly 280 hand-written commands. When the beta ends, Cloudflare will ship a final major Wrangler version pointing to cf and keep maintaining Wrangler for 18 months afterward.

_Track how Cloudflare's tooling shift from Wrangler to cf affects your Workers workflow on daily.dev._

### How do I migrate an existing Wrangler project to the cf CLI?

Run cf migrate --dry-run followed by cf migrate inside the Wrangler project folder; running cf dev, cf build, or cf deploy directly in a project with only wrangler.jsonc can produce a broken Worker. Migration keeps the Wrangler bundler unless Vite is already used, requires Wrangler 4.100.0 or newer for generating wrangler.config.ts, and needs package.json set to 

_Planning a Wrangler to cf migration? Find practical gotchas like this on daily.dev before you hit them._

### Why does cf print JSON output for every command instead of tables like Wrangler?

cf sends results to standard output as JSON by default and routes progress messages and errors to standard error, so any command can be piped straight into jq without extra flags. Wrangler, by contrast, prints tables for many commands and only some accept --json, which is why coding agents habitually append --json to Wrangler commands and parse the output with jq.

_Scripting against Cloudflare's API? Compare CLI output behavior like this on daily.dev before automating._

## Similar posts on daily.dev

- [Building a CLI for all of Cloudflare](https://daily.dev/posts/building-a-cli-for-all-of-cloudflare-g1wqazat0) · Cloudflare · 4 upvotes · 0 comments
- [Wrangler: the Cloudflare Workers command line tool](https://daily.dev/posts/wrangler-the-cloudflare-workers-command-line-tool-ekroapocz) · Flavio Copes · 0 upvotes · 0 comments
- [Cloudflare Workers: your first serverless function](https://daily.dev/posts/cloudflare-workers-your-first-serverless-function-zkqoxjdgf) · Flavio Copes · 0 upvotes · 0 comments

---

Tags: [#cli](https://daily.dev/tags/cli), [#cloudflare](https://daily.dev/tags/cloudflare)

[View this post on daily.dev](https://daily.dev/posts/how-to-use-cf-the-new-cloudflare-cli-qqlloiwsc)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"How to use cf, the new Cloudflare CLI","url":"https://daily.dev/posts/how-to-use-cf-the-new-cloudflare-cli-qqlloiwsc","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/how-to-use-cf-the-new-cloudflare-cli-qqlloiwsc"},"datePublished":"2026-10-11T12:28:23.037Z","dateModified":"2026-10-11T12:29:41.671Z","description":"A hands-on walkthrough of cf, Cloudflare's new command line tool announced September 28, 2026 as an open beta, built to eventually replace Wrangler. Generated...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/fb2ad64039e702a11fbd8ca725966230?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/fb2ad64039e702a11fbd8ca725966230?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Flavio Copes","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Flavio Copes","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/1f2dbd275797411bbd37bfdaaf0951a9","url":"https://daily.dev/sources/flaviocopes"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/how-to-use-cf-the-new-cloudflare-cli-qqlloiwsc","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":6},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"cli,cloudflare","timeRequired":"PT18M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Flavio Copes","item":"https://daily.dev/sources/flaviocopes"},{"@type":"ListItem","position":3,"name":"How to use cf, the new Cloudflare CLI"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/how-to-use-cf-the-new-cloudflare-cli-qqlloiwsc#faq","mainEntity":[{"@type":"Question","name":"What is the cf CLI and is it replacing Wrangler for Cloudflare Workers?","acceptedAnswer":{"@type":"Answer","text":"cf is Cloudflare's new command line tool, announced September 28, 2026 as an open beta, and it is set to replace Wrangler. It covers the entire Cloudflare API with over 2,900 commands generated from the OpenAPI schema, versus Wrangler's roughly 280 hand-written commands. When the beta ends, Cloudflare will ship a final major Wrangler version pointing to cf and keep maintaining Wrangler for 18 months afterward. Track how Cloudflare's tooling shift from Wrangler to cf affects your Workers workflow on daily.dev."}},{"@type":"Question","name":"How do I migrate an existing Wrangler project to the cf CLI?","acceptedAnswer":{"@type":"Answer","text":"Run cf migrate --dry-run followed by cf migrate inside the Wrangler project folder; running cf dev, cf build, or cf deploy directly in a project with only wrangler.jsonc can produce a broken Worker. Migration keeps the Wrangler bundler unless Vite is already used, requires Wrangler 4.100.0 or newer for generating wrangler.config.ts, and needs package.json set to  Planning a Wrangler to cf migration? Find practical gotchas like this on daily.dev before you hit them."}},{"@type":"Question","name":"Why does cf print JSON output for every command instead of tables like Wrangler?","acceptedAnswer":{"@type":"Answer","text":"cf sends results to standard output as JSON by default and routes progress messages and errors to standard error, so any command can be piped straight into jq without extra flags. Wrangler, by contrast, prints tables for many commands and only some accept --json, which is why coding agents habitually append --json to Wrangler commands and parse the output with jq. Scripting against Cloudflare's API? Compare CLI output behavior like this on daily.dev before automating."}}]}
```

