產業脈動 2026 年 9 月 29 日

2026-09-29 — cf CLI 上線,取代 wrangler.toml 設定

primary=https://blog.cloudflare.com/cloudflare-cf-cli-launch/ primary=https://github.com/cloudflare/cf

cf CLI 上線,取代 wrangler.toml 設定

Cloudflare Blog · 2026-09-28

過去要幫一個 Worker 加上 KV、D1、R2 三種綁定,得在 wrangler.toml 裡手動堆區塊,換一個環境就整段 [env.production] 複製貼上一次;要管網域、WAF 規則或 Access 控管,Wrangler 完全碰不到,得切去 Dashboard 或另外串 API。Cloudflare 在 2026 年 9 月 28 日發布的新 CLI 工具 cf,把設定檔改成一份可以型別檢查、可以用函式產生內容的 cloudflare.config.ts,同時把指令涵蓋範圍從 Wrangler 的約兩百八十個指令,擴大成整個 Cloudflare API 的三千多項操作。

背景

Wrangler 的 wrangler.toml/wrangler.json 只覆蓋 Workers 相關的一小塊 API,其餘的網域、WAF、Access 這類資源長期沒有對應的 CLI 入口,團隊得混用 Dashboard、curl 打 API、或另寫腳本。TOML/JSON 格式也沒有邏輯能力,多環境設定只能整段複製,Cloudflare 內部文件因此一路膨脹到「超過五千行」。另一個壓力來自使用型態的改變:官方統計 agent 已佔 Wrangler 每日使用量的 48%(幾年前還是個位數百分比),但 Wrangler 的輸出格式是給人看的文字,指令集也窄,agent 用起來要拼湊、要猜。

核心改動

cf 不是手寫出來的,而是用 Cloudflare 內部的 Forge 產生管線,直接從各服務的 OpenAPI schema 產生指令——官方原話是「只要在 schema 上多加一點標註,就能拿它當 Forge 產生 CLI 的來源」,這也是覆蓋率能從兩百多個指令跳到三千多項操作的原因。設定檔改用 TypeScript 的 defineConfig,搭配 Vite 原生的 mode 參數切換環境,不同環境的綁定值用函式產生而不是複製貼上:

import { bindings, defineConfig } from "cf/config";

export default defineConfig(({ mode }) => ({
  worker: {
    env: {
      API_URL: bindings.text(
        mode === "production"
          ? "https://example.com"
          : "https://staging.example.com",
      ),
      API_TOKEN: bindings.secret(),
      CACHE: bindings.kv({
        id: mode === "production"
          ? "production-namespace-id"
          : "staging-namespace-id",
      }),
      DATABASE: bindings.d1({ name: `example-${mode}-database` }),
      AI: bindings.ai(),
    },
  },
}));

觸發器(fetch、scheduled、queue、email)也改成程式化宣告,例如 triggers.scheduled({ schedule: "0 * * * *" })。輸出預設是 JSON,官方說法是「agent 只需要 JSON,如果 agent 是這個工具未來的主要使用者,JSON 就該是預設值」;人類使用者看到的是美化過的 JSON,agent 拿到的是精簡版。CLI 另外加了 cf cli search,讓 agent 可以用自然語言描述要做什麼,回傳對應指令與參數説明;設定檔本身也因為是 TypeScript,能掛 LSP 讓 agent 直接讀型別定位欄位。

項目Wrangler(既有)cf(新)
設定格式wrangler.toml / wrangler.jsoncloudflare.config.ts(programmatic)
多環境設定整段複製貼上function + mode 參數產生
API 覆蓋約 280 個指令3,000+ 項操作
預設輸出給人看的文字JSON(人類版美化、agent 版精簡)
指令探索翻文件cf cli search 自然語言查詢

影響範圍

現有用 Wrangler 管 Workers 的團隊可以跑 cf migrate 把舊設定轉換過去,不需要馬上手改;純靜態站台部署則維持原樣簡單,cf deploy 不需要額外設定檔。若專案用 esbuild 或 Rust 工具鏈建置 Worker,cf 目前會把建置這段委派回 Wrangler 處理,代表 Wrangler 不會立刻退場。官方表示開放測試(open beta)結束後會發一個最終大版本的 Wrangler,把使用者與 agent 導向 cf,之後仍會維護 Wrangler 十八個月。安裝方式是 npm i -g cf,專案在 GitHub 上以 cloudflare/cf 開源、採 Apache-2.0 與 MIT 雙授權,目前是 open beta 階段。對用 agent 跑自動化部署或維運腳本的團隊,這次真正的改動是輸出格式與指令發現方式:原本要靠人讀文件才知道有哪些指令,現在 agent 可以直接用 cf cli search 找。

原始來源:Introducing cf: the agentic CLI for the entire Cloudflare API、cloudflare/cf on GitHub


End of article
0
Would love your thoughts, please comment.x
()
x