OpenAICloudflare2026/04/13 14:29

Building a CLI for all of Cloudflare

要点だけを先に読めるように短く再構成したセクションです。

元記事

Quick Digest

要約

要点だけを先に読めるように短く再構成したセクションです。

openaijamodel: gpt-5-mini-2025-08-07

Cloudflare全製品対応CLI「cf」技術プレビュー

Key Points

  • cf テクニカルプレビュー
  • TypeScript スキーマで自動生成
  • Local Explorer ローカルAPI鏡像

Summary

CloudflareはAPI表面が非常に広いため、新しいCLI「cf」(次世代Wranglerの一部として)を技術プレビューとして公開しました。TypeScriptベースのスキーマからコマンド・設定・バインディング・OpenAPIなどを自動生成する仕組みにより、CLI・SDK・ドキュメント間で一貫したインターフェースを維持します。ローカル開発向けにLocal Explorerを提供し、ローカル環境をAPI鏡像として扱えるようになりました。

Key Points

  • 新CLIの試用方法: npx cf または npm install -g cf で技術プレビューを起動。
  • 生成基盤: OpenAPIに加え、より表現力の高いTypeScriptスキーマでCLIコマンド・引数・コンテキストを定義してコード生成。
  • 一貫性ルール: コマンド/フラグ命名のガードレール(常に get--force--json など)をスキーマレイヤで強制。
  • ローカルとリモートの整合性: --local フラグでローカルAPI鏡像へリクエスト可能。Local ExplorerでKV/R2/D1/Durable Objects/Workflows等を直接確認・操作できる。
  • Local Explorer API: 開発中のアプリは /cdn-cgi/explorer/api でローカルのOpenAPI仕様にアクセス可能。エージェントはこのエンドポイントを参照してローカル資源を操作できる。
  • 目的: 全Cloudflare製品をCLIで操作可能にし、エージェントと人間双方に使いやすい出力とデフォルトを提供。

Action for Engineers

  • 今すぐ試す: npx cf を実行して技術プレビューを評価。
  • ローカル確認: WranglerまたはCloudflare Viteプラグインでアプリを起動し、Local Explorer(ショートカット e)を開く。
  • フィードバック: DiscordのCloudflare Developersで欲しいCLI機能や改善点を共有する。

Notes

  • 技術プレビューは初期段階で、Wranglerの既存機能とは今後統合予定。
  • スキーマはOpenAPIにも変換可能で、SDKやTerraform等既存生成物との整合性を保てる設計です。

Full Translation

翻訳

原文の流れを保ったまま読める翻訳セクションです。

openaijamodel: gpt-5-mini-2025-08-07

Cloudflare 全体向け CLI の構築

公開日: 2026-04-13 — 著: Matt “TK” Taylor、Dimitri Mitropoulos、Dan Carter — 読了時間: 約6分

概要

Cloudflare は広大な API サーフェスを持っています。100 を超えるプロダクトと、ほぼ 3,000 の HTTP API 操作があります。近年、エージェントが私たちの API の主要な利用者になっています。開発者は自分のコーディングエージェントを使って、Cloudflare にアプリケーションやエージェント、プラットフォームを構築・デプロイし、アカウントを設定し、分析やログのために API を問い合わせます。

私たちはすべての Cloudflare プロダクトを、エージェントが必要とするあらゆる方法で利用できるようにしたいと考えています。たとえば、Cloudflare の全 API を単一の Code Mode MCP サーバーで利用可能にしており、そのサーバーは 1,000 トークン未満で動作します。ただしカバーすべき領域はまだ多くあります: CLI コマンド、Workers バインディング(ローカル開発とテストのための API を含む)、複数言語向け SDK、設定ファイル、Terraform、開発者向けドキュメント、API ドキュメントと OpenAPI スキーマ、Agent Skills などです。

今日、多くのプロダクトはこれらすべてのインターフェースで利用できるわけではありません。特に CLI(Wrangler)はそうです。多くの Cloudflare プロダクトは Wrangler に CLI コマンドを持っていません。そしてエージェントは CLI を好みます。そこで私たちは Wrangler CLI を再構築し、Cloudflare 全体の CLI にする作業を進めています。これにより、すべての Cloudflare プロダクト向けのコマンドを提供し、infrastructure-as-code を使ってまとめて設定できるようにします。

今日は次期 Wrangler の技術プレビューの早期バージョンを共有します。非常に初期段階ですが、私たちは公開の場で作業することで最良のフィードバックを得られると考えています。技術プレビューは今日から npx cf を実行するか、グローバルにインストールするには npm install -g cf を実行して試せます。

現時点で cf はごく一部の Cloudflare プロダクトに対するコマンドしか提供していません。私たちは既に Cloudflare API サーフェス全体をサポートする cf のバージョンをテストしており、各プロダクトについて出力がエージェントと人間の双方にとって使いやすいように意図的に見直しと調整を行っていきます。

この技術プレビューは次期 Wrangler CLI の一部に過ぎません。今後数か月で、皆さんが知っていて愛用している Wrangler の機能とこれらを統合していきます。


なぜ新しいシステムが必要だったか

製品開発の速度に同期しながらこれを構築するには、コマンド、設定、バインディング API などを生成できる新しいシステムが必要でした。

スキーマとコード生成パイプラインを根本から再考

私たちは既に OpenAPI スキーマに基づいて Cloudflare API SDK、Terraform プロバイダ、Code Mode MCP サーバーを生成しています。しかし CLI、Workers バインディング、wrangler.jsonc 設定、Agent Skills、ダッシュボードやドキュメントの更新は依然として手作業でした。これではエラーが起きやすく、やり取りが多く、次期 CLI で Cloudflare API 全体をサポートするにはスケールしません。

OpenAPI スキーマは REST API を記述しますが、私たちにはローカル開発と API リクエストを組み合わせる複数のアクションを含む対話的な CLI コマンドや、RPC API として表現される Workers バインディング、そしてこれらを結びつける Agent Skills やドキュメントが必要でした。OpenAPI だけでは表現できないことが多かったのです。

Cloudflare では TypeScript を多用しています。TypeScript はソフトウェア工学のリンガフランカであり、多くの場合 API を TypeScript で表現する方がうまくいきます(Cap n’ Web、Code Mode、Workers プラットフォームに組み込まれた RPC システムなどでの実例があります)。そこで、API、CLI コマンドと引数、任意のインターフェースを生成するために必要なコンテキストの全範囲を定義できる新しい TypeScript スキーマを導入しました。

このスキーマ形式は、慣習、リンティング、ガードレールを備えた一連の TypeScript 型に過ぎません。しかし自社フォーマットであるため、今日あるいは将来必要になるどんなインターフェースにも容易に適応でき、同時に OpenAPI スキーマを生成することもできます。

現在、私たちの注力点の多くはこのレイヤーの構築にあります——必要な機械を作ったことで、長年欲しかった CLI やその他のインターフェースの構築をいよいよ始められるようになりました。


エージェントと CLI — 一貫性とコンテキストエンジニアリング

エージェントは CLI の一貫性を期待します。たとえばあるコマンドがリソース情報取得の構文として <command> info を使い、別のコマンドが <command> get を使うと、エージェントは一方の形式を期待して存在しないコマンドを呼んでしまいます。

数百〜数千人規模の大きな組織で多数のプロダクトがあると、レビューだけで一貫性を手動で強制するのは不十分です。CLI レイヤーで強制すればよいかというと、CLI、REST API、SDK の命名が食い違ってしまい、問題がむしろ悪化することもあります。

そこで私たちは、スキーマ層でルールとガードレールを定義して強制することを始めました。

  • 常に getinfo ではない)
  • 常に --force--skip-confirmations ではない)
  • 常に --json--format ではない)、かつ全コマンドでサポート

Wrangler CLI はまた独特の点があります。ローカルでシミュレートしたリソースと、D1 データベース、R2 ストレージバケット、KV ネームスペースなどのリモートリソースの両方で機能するコマンドと設定を提供することです。つまり、一貫したデフォルトがさらに重要になります。

もしエージェントがリモートデータベースを操作していると思っているのに、実際はローカルデータベースにレコードを追加していた場合、開発者がリモートバインディングを使ってローカル開発していると、エージェントはなぜリクエスト時に新しいレコードが見つからないのか理解できません。デフォルトの一貫性と、コマンドがローカルかリモートかを明確に示す出力があれば、エージェントに明示的な指示を与えられます。


Local Explorer — リモートでできることはローカルでもできる

本日、Wrangler と Cloudflare Vite プラグインの両方でオープンベータとして利用できる新機能「Local Explorer」をリリースします。Local Explorer により、ローカル開発中に Worker が使用するシミュレートされたリソース(KV、R2、D1、Durable Objects、Workflows など)を検査できます。

これらは Cloudflare の API やダッシュボードで行える操作と同じことが、全てローカルで完結して実行できます。私たちは長年にわたって完全なローカル開発に賭けてきました——Cloudflare Workers に限らずプラットフォーム全体でです。

D1 のようなホスト型 serverless データベースでも、バインディングを使えば余計なセットアップやツールなしに完全にローカルでデータベースを起動してやり取りできます。Miniflare(ローカル開発プラットフォームのエミュレータ)を介して、Workers ランタイムは本番と同じ API をローカル開発でも提供し、ローカルの SQLite データベースで同等の機能を実現します。これにより、ネットワークに依存せず高速に動作するテストを簡単に書いて実行でき、オフラインでも作業できます。

しかしこれまではローカルにどんなデータが保存されているか確認するには .wrangler/state ディレクトリを逆解析したり、サードパーティのツールをインストールする必要がありました。これからは Wrangler CLI や Cloudflare Vite プラグインでアプリを実行するたびに、Local Explorer を開くように促されます(キーボードショートカット e)。Local Explorer は現在アタッチされているバインディングと、それらに対して保存されているデータを確認できるシンプルなローカルインターフェースを提供します。

Agents を使ってビルドする際、Local Explorer はエージェントがデータに対して何をしているのかを理解する良い手段で、ローカル開発サイクルをより対話的にします。スキーマを検証したり、テストレコードを投入したり、最初からやり直して DROP TABLE したりするためにいつでも Local Explorer を使えます。

私たちの目標は、ローカルデータのみを変更する Cloudflare API のミラーを提供することです。こうすることで、すべてのローカルリソースがリモートで使うのと同じ API を通じて利用可能になります。API 形状をローカルとリモートで一致させることで、今後の CLI で --local フラグを渡してコマンドを実行したときに、コマンドがそのまま動作します。違いは、コマンドが Cloudflare API のローカルミラーにリクエストすることだけです。

本日より、この API は Wrangler または Vite Plugin で動作する任意のアプリ上で /cdn-cgi/explorer/api にて利用可能です。このアドレスをエージェントに向けると、エージェントはローカルリソースを管理するための OpenAPI 仕様を見つけ、それだけでリソースを操作できます。


ぜひご意見を聞かせてください

機械を構築した今、Wrangler の優れた部分と今回可能になったことを組み合わせ、Cloudflare 全体を使うためのベストな CLI を作る段階に来ました。技術プレビューは npx cf で試すか、グローバルにインストールするなら npm install -g cf を実行してください。

この非常に初期のバージョンでは、技術プレビューが今日できることだけでなく、Cloudflare 全体のプラットフォーム向け CLI に何を望むかという点でフィードバックを求めています。

  • ダッシュボード上で数クリックかかることを、1 行の CLI コマンドで簡単にできるようにしてほしいことは何ですか?
  • wrangler.jsonc に簡単に設定できるようにしてほしい項目(例: DNS レコードや Cache Rules)は何ですか?
  • エージェントが詰まった箇所や、エージェント向けに CLI に追加してほしいコマンドは何ですか?

Cloudflare Developers Discord に参加して、CLI にまず追加してほしいものを教えてください。今後も多数のアップデートを予定しています。


特に Local Explorer プロジェクトの立ち上げに対する貢献について、Emily Shen に感謝します。

Cloudflare のコネクティビティクラウドは、企業ネットワーク全体を保護し、インターネット規模のアプリを効率的に構築する支援を行い、あらゆるウェブサイトやインターネットアプリを高速化し、DDoS 攻撃を防ぎ、ハッカーから守り、Zero Trust への取り組みを支援します。どのデバイスからでも 1.1.1.1 を訪れて、インターネットをより速くより安全にする無料アプリを始めてください。私たちのミッションや、より良いインターネット構築の支援について詳しく知りたい方はここから始めてください。新しいキャリアを探しているなら、オープンポジションもご確認ください。

タグ: server-island-start、Developers、Developer Platform、Cloudflare Workers、Product News、D1 API、Agents Week