Cloudflare のすべての製品を扱うための CLI の構築について

2026/04/14 0:44

Cloudflare のすべての製品を扱うための CLI の構築について

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Cloudflare から次世代の Wrangler CLI(

npx cf
または
npm install -g cf
で利用可能)および Local Explorer の Technical Preview が公開されました。本製品は、人間開発者と自動化コーディングエージェント双方を対象とした統合システムを導入します。このアップデートでは、分散した手動プロセスを、OpenAPI に代わる新たな TypeScript ベースのスキーマを採用して 3,000 以上の API オペレーションを一貫して管理する自動化アーキテクチャへと置き換えます。主な革新点は、Wrangler CLI および Cloudflare Vite プラグイン内でオープンベータとしてリリースされた Local Explorer です。Local Explorer は
/cdn-cgi/explorer/api
で Cloudflare API のローカルミラーを提供し、ネットワークアクセスを必要とせずに D1、KV、R2、Durable Objects、Workflows、DNS レコード、Cache Rules などリソースのシミュレーションをエージェントに可能にします。Miniflare がオフライン環境を-production-ランタイム挙動と完全に一致させることで補完され、この変化は不整合なコマンド構文のような既存の課題に対処し、
--force
--json
などのフラグを標準化などにより統合された構成やインフラストラクチャ即コードとのシームレスな統合を実現します。現時点ではプロダクトの一部に制限されていますが、このツールは将来的に API の表面全体をカバーする予定で、数ヶ月以内にレガリの Wrangler 機能を統合していく見込みです。この標準化されたアプローチを採用することで、企業は複雑なローカル開発ワークフローの簡素化やツールの相互運用性の向上を図ることができます。プレビューでは、フルロールアウト前に能力を洗練させるために、Cloudflare Developers Discord を通じて希望されるワンライン CLI コマンド、構成(DNS レコードや Cache Rules など)、エージェント固有の必要性についての即座のフィードバックを募集しており、Local Explorer プロジェクトへの貢献に対して Emily Shen 氏に特別な謝意を表します。

本文

クラウドフレイヤー CLI の刷新と「ローカル・エクスプローラー」の導入:エージェント指向アーキテクチャの進化

2026 年 4 月 13 日発表(記事閲覧目安:約 6 分)

はじめに

クラウドフレイヤーは膨大な API サークルを備えています。当社は 100 以上の製品を持ち、HTTP API オペレーションは約 3,000 に及びます。ますます、エージェント(AI エージェントやコーディング・エージェントなど)が API の主要な利用者となっています。開発者はコーディング・エージェントをクラウドフレイヤーに取り込み、アプリケーションやプラットフォームの構築・デプロイ、アカウント設定、分析データやログの照会を行います。

われわれは、クラウドフレイヤーの全製品を、エージェントが必要なあらゆる方法で利用可能にしたいと考えています。具体的には、Code Mode MCP サーバーを通じてクラウドフレイヤー全体の API を単一のサーバーとして提供しており、これに必要なトークンは 1,000 トークン未満です。しかし、まだカバーすべき領域は多くあります:

  • CLI コマンド
  • Workers Bindings(ローカル開発・テスト用の API)
  • 複数の言語に対応する SDK
  • 設定ファイル (wrangler.jsonc など)
  • Terraform
  • 開発者ドキュメントと API ドキュメント、OpenAPI スキーマ
  • エージェントスキル

現在、多くの製品がこれらのインタフェースすべてで利用可能ではありません。特に CLI(Wrangler)に関しては顕著です。クラウドフレイヤーの多くの製品は Wrangler コマンドを持っていないため、CLI を愛するエージェントにとっては課題となっています。

その解決策として、「クラウドフレイヤー全体用の新たな CLI」である

cf
を再構築しています。この新ツールは、クラウドフレイヤー全製品の命令を提供し、インフラストラクチャ・アズ・コードによって一元的に設定することを可能にします。今日は、これが未来の Wrangler がどのような姿になるかの技術プレビュー版をお知らせします。非常に初期段階ですが、公開でフィードバックを得るために最善を尽くしています。

技術プレビューの使い方

今日すぐに試すには以下のいずれかを実行してください:

  • npx cf
  • グローバルにインストールする場合は
    npm install -g cf

現在のバージョンは、クラウドフレイヤー製品の限られたサブセットのコマンドを提供しています。すでにクラウドフレイヤー API サークルの全体をサポートするバージョンのテストを行っており、各製品に対する命令を精査・調整して、エージェントと人間双方にとって使いやすい出力にチューニングしていきます。本技術プレビューはまだ未来の Wrangler CLI の一部であり、今後数ヶ月以内に、これまでの「Wrangler」の良い部分を統合していく予定です。

急速なペースで開発が進むクラウドフレイヤーにおいてこれを構築するために、命令、設定、バインディング・API など自动生成を可能にする新システムを開発する必要がありました。


スキーマの再考とコード生成パイプラインから第一原理に戻る

すでに OpenAPI スキーマに基づいてクラウドフレイヤー API SDK、Terraform プロバイダ、Code Mode MCP サーバーを生成しています。しかし、CLI、Workers Bindings (

wrangler.jsonc
) 設定ファイル、エージェントスキル、ダッシュボード、ドキュメントの更新は依然として手動プロセスです。これはミスの元になりやすく、大量の往復作業が必要で、次期 CLI でクラウドフレイヤー全体 API をサポートするには拡張性がありませんでした。

これを実現するには OpenAPI スキーマだけでは不十分です。OpenAPI は REST API の記述に向いていますが、われわれの CLI 命令はローカル開発と API リクエストを組み合わせる複数のアクションを含む対話型ものです。また、RPC API として表現される Workers バインディングや、これらを統合するエージェントスキル・ドキュメントも含まれます。

クラウドフレイヤーでは TypeScript がソフトウェア工学の共通言語として広く使われており、Cap'n Web や Code Mode、Workers プラットフォーム内蔵の RPC システムのように、API を TypeScript で表現するのが適切だと考えられています。

そこで、API 命令、引数、コンテキストを定義し、あらゆるインタフェースを生成するための新しいTypeScript スキーマを導入しました。この形式は「単に」一連の TypeScript タイプと慣習、Linting、ガードレール(整合性を保つための制約)ですが、われわれ独自のフォーマットであるため、現在および未来のあらゆるインタフェースに対応しやすく柔軟です。さらに、OpenAPI スキーマを生成することも可能です。

これまでの注目点は「機械の構築」に集中していましたが、これで念願であった CLI や他のインタフェースの提供が可能な段階に達しました。これにより、クラウドフレイヤー全体で標準化できることや、特にコンテキスト・エンジニアリング面においてエージェントのためにより良い CLI を実現する夢が膨らんでいます。


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

エージェントは CLI が一貫することを期待します。例えば、リソース情報の取得に一つの命令では

<command> info
を、別の命令では
<command> get
を使う場合、エージェントは前者を期待し後者を存在しない命令として呼び出します。数百〜数千名のエンジニアを抱える大規模組織で多数の製品を持つ場合に、レビューによって手動で一貫性を強制するのは「スイスチーズ型(抜け穴だらけ)」の弱点があります。CLI レベルで強制できても、CLI と REST API/SDK 間で命名が異なる問題が生じれば事態は悪化します。

まず取り組んだことは、スキーマレベルで強制するルールとガードレールの作成です:

  • 常に
    get
    を用い、
    info
    は使わない
  • 常に
    --force
    を用い、
    --skip-confirmations
    は使わない
  • 常に
    --json
    を用い、
    --format
    は使わない
  • これらは一貫して各命令でサポートする

また、Wrangler CLI は独自の点として、Simulated ローカルリソースと R2 ストレージバケット、KV Namespaces、D1 データベースなどの Remote リソースの両方に対応した設定を提供します。そのため、デフォルトの一貫性はさらに重要です。エージェントはリモートデータベースを改ざんしていると認識しているのに、実際にはローカルデータベースにレコードを追加した場合や、開発者がリモートバインディングを使ってリモートデータベースに対してローカルで開発を行っている場合など、新たなレコードがローカル開発サーバーへのリクエストで表示されない理由を理解できません。

一貫したデフォルト値と、命令がローカルリソースかリモートリソースかを明確に示す出力により、エージェントは明示的なガイダンスを得ることができます。


ローカル・エクスプローラー:遠隔で行えることはすべてローカルで実行可能にする

さらに本日ベータ版としてリリースしたのが**「Local Explorer」**です(Wrangler と Cloudflare Vite プラグインの両方で利用可能)。 Local Explorer は、開発中の Worker が使用するシミュレートされたリソース(KV、R2、D1、Durable Objects、Workflows など)を内部探知します。これらは以前はクラウドフレイヤー API やダッシュボードを通じて行うことができた機能ですが、今ではローカル環境でも完全に実行できます。これはすべて、同じ基盤にある API アーキテクチャによって支えられています。

われわれは長年にわたり「完全なローカル開発」というベッティングを行ってきました(Cloudflare Workers だけでなくプラットフォーム全体に対して)。D1 を使用する場合、ホスティングされているサーバーレスデータベース製品であっても、Miniflare(われわれのローカル開発プラットフォームエミュレータ)により、Worker ランタイムがプロダクションと同じ API をローカル開発で提供し、loal SQLite データベースを使用して同様の機能を提供します。これにより、ネットワークアクセスなしで高速にテストを記述・実行でき、オフラインでも動作します。

しかし以前まで、ローカルに格納されたデータを確認するには

.wrangler/state
ディレクトリの内容を探るか、サードパーティ製ツールを導入する必要がありました。今後は Wrangler CLI または Cloudflare Vite プラグインを実行する際に、ローカル・エクスプローラーをオープンするように求められます(キーボードショートカット:
e
。これにより、Worker に現在バインドされているリソースや、それらに対して格納されたデータが確認できるシンプルなローカルインタフェースが提供されます。

エージェント開発において、Local Explorer を活用するとエージェントがデータをどのように扱っているかを理解しやすく、ローカル開発サイクルをより対話的にします。スキーマの確認やテストレコードの注入、あるいはすべてを消してテーブルを削除(

DROP TABLE
)する際など、必要に応じていつでも Local Explorer に切り替えることができます。

当社のゴールは、リモートリソースで利用されると同じ API でローカルリソースもアクセス可能にし、CLI 命令の出力が両者で一致するようにすることです。将来の CLI で

--local
フラグを渡した際、異なる点はコマンドが Cloudflare API のローカルミラーへのリクエストを行うだけという単純な話です。

本日从这个アドレス開始利用可能です:

/cdn-cgi/explorer/api
このパスは、Wrangler や Vite プラグインによるアプリケーションのいずれに対しても適用されます。エージェントがこのアドレスを指すだけで、エージェント自身の会話を通じてローカルリソースを管理するための OpenAPI 仕様が得られ、自動的に管理できるようになります。


クラウドフレイヤー全体に通用する CLI に対する希望や夢をお聞かせください

必要な「機械」を整えた今、これまでの Wrangler の良い部分を合わせ、現在実現可能な機能を取り込み、クラウドフレイヤーを用いるための最良の CLI を作成する時です。

技術プレビューは以下のいずれかを実行してすぐに試してください:

  • npx cf
  • グローバルにインストールする場合は
    npm install -g cf

この非常に初期のバージョンですが、今日のプレビュー機能以外に、**「クラウドフレイヤー全体プラットフォーム用の CLI に求める希望」**についてフィードバックを求めています。

  • ダッシュボードでは数クリックが必要だったのに、ワンラインで完結したいコマンドは?
  • wrangler.jsonc
    で設定したいが難しい項目(DNS レコードやキャッシュルールなど)は?
  • エージェントが迷子になった箇所は?
  • どの命令があればエージェントに利用されやすいですか?

まずは Cloudflare Developers Discord から、最初に CLI に追加してほしいことをお聞かせください。その後、さらに多くのアップデートが続きますのでご注目ください。

最後に、Local Explorer プロジェクトの立ち上げに貴重な貢献をくれた Emily Shen 氏に感謝します。

同じ日のほかのニュース

一覧に戻る →

2026/04/14 2:54

1 つ、30 の WordPress プラグインを購入し、それぞれにバックドアを埋め込まれた。

## Japanese 翻訳: 元サマリーの原文は明確で正確であり、高レベルの概要として十分に範囲内に収まっており、改行文筆は必要ありません。

2026/04/14 5:36

GitHub で積み上がったプルリクエストを処理する。

## Japanese Translation: 本テキストでは、「Stacked PRs(スタックされたプルリクエスト)」を紹介します。これは、大規模で管理が困難なプルリクエストによる問題、例えばレビューの難易度が高いこと、マージにかかる時間が長いこと、頻繁な衝突などを解決するために GitHub が実装した機能です。開発者は一度に巨額の変更を提出するのではなく、作業を注力し独立した層に分割し、それらが互いに縦方向に積み上げられ、最終的に main ブランチへマージされるまで進めます。 GitHub 本家はこのワークフローを、ナビゲーション用の可視化「スタックマップ(stack map)」UI でサポートしており、ブランチ保護規則がターゲットとなる最終ブランチに対して自動的に適用され、継続的統合(CI)システムが各層ごとに個別にテストを実行し、main ブランチへのマージを想定する manner で動作します。また、ユーザーはスタックの全て、または一部の PR をマージすることができ、残りの PR は自動的にリベースされ、スタック構造が維持されます。 このワークフローをローカル環境で管理するためには、開発者は `gh stack` CLI ツールを使用します。これは、拡張機能をインストール(`gh extension install github/gh-stack`)し、`gs init`、`gs add`、`gs push`、`gs submit` などのコマンドを用いてブランチを作成し、カスケードリベースを管理し、スタックをレビューまたはマージのためにオープン化することを意味します。将来的には、AI コーディングエージェントもこのスタックを自律的に処理できるように、特定のスキルパッケージ(`npx skills add github/gh-stack`)をインストールすることで教育できます。Ultimately(結果として)、Stacked PRs はチームが段階的なレビューを通じてコードの品質を向上させながら、大規模なコードベースを維持するために必要な手動作業を劇的に削減することを可能にします。

2026/04/14 0:31

『何事も起きない:スポーツ市場以外では常に「いいえ」と購入する Polymarket ボット』

## Japanese Translation: 本書では、Polymarket でスポーツ以外の Yes/No マーケットにおける「NO」エントリを取引することを目的に特化して構築された非同期の Python ボット「Nothing Ever Happens」を معرفیしています。本プロジェクトは娯楽目的でのみ提供されるものであり、保証や免責事項は一切適用されません(as-is)として提供されます。ライブフラグが設定されていないデフォルト状態では `PaperExchangeClient` が採用され、シミュレーションテストが行われます。リアルな取引を実行するには、環境変数を明示的に設定する必要があるためです。具体的には、`BOT_MODE=live`、`LIVE_TRADING_ENABLED=true`、`DRY_RUN=false` などを設定することでリアル取引モードを有効化します。また、ライブオーダーの送信を有効にするには、`PRIVATE_KEY`、`FUNDER_ADDRESS`(署名タイプ 1 および 2 の場合)、データベース URL、および Polygon RPC URL などの特定のエントリが必要となります。 ボットのアーキテクチャはモジュール化されており、ランタイムロジック、取引所クライアント、ダッシュボード UI、回復ツール、そしてコア戦略モジュールである「nothing_happens」で構成されています。ローカルでのセットアップでは、`pip install -r requirements.txt` によって依存関係をインストールし、`config.example.json` を `config.json` にコピーして非機密設定をその中で構成し、秘密鍵やフラグは `.env` ファイル(パス:`strategies.nothing_happens`)に保存します。ローカル設定は意図的に git 無視されており、ユーザーは環境変数 `CONFIG_PATH` を通じてランタイムが参照する異なるパスを指定できるようにしています。 Heroku でのクラウドデプロイメントでは、特定のコマンドヘルパー(`alive.sh`、`logs.sh`、`kill.sh`)を使用して、アプリの状態を管理し、ライブ取引の有効化/無効化やロギングを行うことができます。デプロイには、bot モード、プライベートキー、RPC URL、データベースに関する環境変数を `heroku config:set` コマンドを用いて設定する必要があります。-production 環境では、誤って長時間実行タスクを実行してしまうのを防ぐためにワーカーダイノを除外し、ウェブダイノのみを使用するようにスケーリング構成されています。また、`db_stats.py`、`export_db.py`、`wallet_history.py`、`parse_logs.py` などのユーティリティスクリプトは、データベースの点検やログ分析を実行することなく市場の変動を意図的に引き起こさずにこれらの情報を可視化することを可能にするため、透明性を高めています。