インフラ・DevOps
Cf: Cloudflare APIのためのエージェント対応CLI
Cf: The Agentic CLI for the Cloudflare API (blog.cloudflare.com)
要約
Cloudflareは、エージェントによる利用が急増しているWrangler CLIに代わる新しいCLIツール「cf」を発表しました。cfは、Cloudflareの3,000以上のAPI操作すべてに対応し、エージェントが自然言語でコマンドを検索・実行できるように設計されています。JSON出力をデフォルトとし、TypeScriptベースの設定ファイル、Viteの統合など、エージェントの効率と開発者の生産性向上を目指した機能が搭載されています。
全文翻訳
過去1年間で、エージェントによるWranglerの使用量が急増しました。
2026年3月には、エージェントはWrangler使用量の4分の1を占め、前年の単桁パーセンテージから増加しました。
先週、エージェントの使用率は48%に達しました。
エージェントはより多くのユーザーであり、1日あたりのユニークコマンド使用量がほぼ2倍で、6つ以上のコマンドを使用する可能性がほぼ4倍です。
エージェントはCLIを好みます。
しかし、Wranglerはわずか約280の操作に対するコマンドしか提供しておらず、Cloudflareは数千もの操作を提供しています。
今年の初めに、この問題をどのように解決するつもりかをほのめかしましたが、今日、新しいCLIであるcfを導入することで、エージェントがすべてのCloudflare製品を使用できるようにします。
cfは、次世代のソフトウェア開発のために構築されたCLIです。
エージェントは、カスタム検索とステアリングによって、やりたいことをすべて行うために必要なコマンドを見つけることができます。
JSONはデフォルトのインターフェイスであり、人間向けには pretty printed、エージェント向けには最大限のコンテキスト節約のために圧縮されています。
cloudflare.config.ts は、Workersから始まり、TypeScriptの安全性と精度をあなたとあなたのエージェントの言語サーバープロトコル(LSP)にもたらす、Cloudflare全体の新しい設定フォーマットです。
Viteがデフォルトになり、最高のローカル開発サーバーと、開発者およびフレームワーク作成者向けのプラグインスイートが提供されます。
今日からグローバルでオープンベータ版をインストールし、どこからでも実行できます。
npm i -g cf
コピープロンプト
コピープロンプト
プロンプトがコピーされました!
cfはエージェントにCloudflare API全体へのアクセスを提供します
もしあなたのエージェントがCloudflareができるすべてを実行できるとしたらどうでしょうか?
それが今年初めに私たちの興味をそそった質問でした。エージェントはますます強力になっていましたが、CloudflareのCLIでできることは依然として限られていました。
Wranglerは、各製品チームが独自のコマンド開発者エクスペリエンスへのアプローチを貢献・採用して手作業で構築されました。
チーム間でパターンを強制することは、約280のコマンドパスであっても、事実上不可能でした。
d1 info、hyperdrive get、workflows describeのように、各チームが異なる時期に独自のプラクティスを考案したため、用語に一貫性がありませんでした。
一部のチームは、数千行のコードにわたる完全にカスタムなエクスペリエンスを構築しましたが、それはごくまれに使用されることが判明し、チームは同じ問題を解決するために異なるアプローチを考案しました。
私たちは、既存のものを標準化すると同時に、大規模な拡張を一度に行いたいと考えていました。
Forge — Cloudflareの新しい統一API生成パイプライン — は、APIドキュメントとSDK生成を支えるAPIスキーマから直接CLIコマンドを生成するというアイデアに基づいて、これを可能にしました。
私たちが提供するすべてのものにはOpenAPIスキーマがあり、これに少し追加情報で注釈を付けるだけで、ForgeにCLIを作成するためのソースとして使用できます。
これにより、cfをWranglerが時間をかけて構築した約280の機能から、Cloudflare APIサーフェスの3,000以上の操作全体をカバーするように拡張できます。
これで、エージェントにcfを与えて、ワーカーの設定、デプロイ、監視、観察、Cloudflare Accessによる保護、ドメインの購入、Cloudflare WAFによるフロントエンド化をすべて単一のツールから実行するように依頼するのが簡単になりました。
cfを一度も使用したことのないエージェントのために構築する
cfは、ソフトウェアエンジニアリングの軌道のために構築されており、エージェント開発はソフトウェアの構築とデプロイの方法を劇的に変えています。
今年、私たちはこのシフトをサポートするためのツールを提供することに焦点を当てており、cfはその集大成です。
cfは、エージェントを念頭に置いてゼロから構築されており、エージェントが将来的に標準になると考えるであろう、エージェントコマンド発見のための新しいツールが含まれています。
Wranglerには、長年のドキュメント、ブログ、サードパーティ製ガイドがLLMのトレーニングプロセスに吸収されているという利点がありました。
それは同じ欠点も持っていました。Wranglerの動作を変更することは、学習された行動に反するため、私たちが望む改善の規模を考えると、大幅な変更が避けられませんでした。
エージェントが一度も見たことのない新しいCLIを導入することは、大きな破壊的な変化のように聞こえますが、実際には最もクリーンなことです。
私たちが下した設計上の決定、行うことができるコンテキストインジェクション、および追加できるAGENTS.mdファイルのおかげで、この方法での切り替えは、エージェントが使い慣れたツールの2つのバージョンの大きな違いをコンテキスト化するよりも、実際には混乱が少なくなります。
私たちは、エージェントに焦点を当てた機能のいくつかとともに起動しており、さらに多くの機能が追加される予定です。
エージェントはテーブルではなくJSONをフィルタリングする必要があります
エージェントがWranglerを使用するとき、彼らは実行するすべてのコマンドに--jsonを追加し、その後、フィールドのサブセットを抽出するためにjqで出力をフィルタリングすることがよくあります。
しかし、Wranglerでは--jsonをサポートするコマンドは一部だけで、多くのコマンドはターミナルで出力を確認する人間向けに設計されたUnicodeテーブルを返していました。
エージェントはこれらを理解できますが、jqフィルターよりも時間とトークンを多く消費します。
cfでは、逆のスタンスを取っています。エージェントはJSONを必要とするだけで、エージェントがこのツールの将来の主要ユーザーである場合、それがデフォルトであるべきです。
ほとんどのコマンドは人間がアクセスすることはめったにないため、これは明らかに正しい判断です。
あなた、CLIの人間の顧客は、実際にはそれを使用する一歩手前です。
エージェントが結果を簡単にフィルタリングし、そのフィルタリングされたリストを要求された形式で返すことができることは、あなたが直接読むことはまずないであろうテーブルを提供することよりも望ましいです。
しかし、ドメインの購入のように、実際の個人的な入力が必要なことをしたい場合はどうでしょうか?
エージェントが長い、扱いにくいシーケンスで名前付きパラメータを連鎖させてアクセスできるコマンドの場合、フォームに記入するだけで済みます。
CfはAPIの要件を検証済みの入力のシリーズに分解するため、複雑な要件を持つドメインの購入でさえ、フォローするのは簡単です。
または、どうしてもというなら、エージェントにそれを実行するように依頼してください。
エージェントは自分で正しいコマンドを見つけることができます
CLIを介して3,000の可能なルートがある場合、コンテキストを肥大化させることなく、エージェントは必要な正しい操作をすばやく見つけることができますか?
このため、cf cli searchも追加しました。
このコマンドにより、エージェントは自然言語でやりたいことを尋ねることができ、小さな検索インデックスが、APIの説明とパラメータに基づいて、適切なコマンドのリストを提供します。
--helpを実行したときに、このコマンドについてエージェントに自動的に通知します。
エージェントのタイプチェックを行う設定
新しい設定フォーマットはTypeScriptに基づいており、人間とエージェントが解析しやすく、プログラムで設定を記述できます。
型付き設定はエージェントにとって非常に役立ちます。
プログラム可能な設定フォーマットに関する事前のコンテキストがなくても、エージェントはオンデマンドで設定を簡単に識別および編集できることがわかりました。
これは、Wranglerの同じ名前の機能から劇的に変更されたenvなどの要素を横断する場合でも同様です。
Claude CodeやCodexなどのLSPプラグインを使用するすべてのエージェントは、コンテキスト内で設定ファイルフォーマットについてより多くのことを解釈し、その結果、より正確な提案を行うことができます。
アクセス可能なスキーマがないTOMLや、エージェントがほとんど使用しなかったリンクされたスキーマを持つJSONCと比較してください。
Cloudflare内のいくつかのWrangler設定ファイルは、開発者ごとのカスタム環境が多く、5,000行以上あったものが40%削減され、各開発者の設定をより効率的に構築するファクトリファイルになりました。
これは、Wranglerで一般的だったenvブロックをコピーするのではなく、同じユニバーサルベースから各環境をプログラムで定義することによって達成されます。
複数の環境を持つ単純なWorkerは、Viteネイティブモード引数を切り替えるだけで、1つの設定セットから別の設定セットに切り替えることができます。
これを実行する単純な設定は、次のようになります。
import { bindings, defineConfig } from "cf/config";
import * as entrypoint from "./index.js" with { type: "cf-worker" };
export default defineConfig(({ mode }) => ({
worker: {
name: "example-worker",
entrypoint,
compatibilityDate: "2026-09-27",
env: {
Environment: bindings.text(`This is