本文へスキップ

Cloudflare Kitesurfとは?AI向け新ブラウザの導入・使い方

codeagent.jp編集部 更新 約11分

結論:Cloudflareは本当に新しいブラウザを作った

Cloudflare Kitesurfは、2026年8月6日に発表された、AIエージェント向けの新しいブラウザです。ただし、ChromeやEdgeの代わりに人間がPCへインストールする製品ではありません。Cloudflare WorkersのV8 isolate上で必要なときだけ起動し、AIやコードがWebページを読み、DOMを調べ、クリックし、HTML・PDF・スクリーンショットを得るためのクラウド型ヘッドレスブラウザです。

面白いのは、Chromiumを小さくしたのではなく、ブラウザをエージェント目線で組み直したことです。タブ、テーマ、拡張機能、滑らかな60fps描画を優先せず、分離、構造化されたDOM、Chrome DevTools Protocol(CDP)互換、CPU・メモリ効率へ振り切っています。まずは無料の公開Playgroundで対象サイトを開き、使えそうならREST API、MCP、Puppeteerへ進むのが最短です。

この記事は、Kitesurfを「話題の名前」で終わらせず、次の順に実際に試せるところまで案内します。

  • 何が新しく、従来のBrowser RunやChromiumと何が違うのか
  • CPU・メモリを減らせた仕組みと、その代わりに失ったもの
  • インストール不要のPlaygroundから、REST API、MCP、Puppeteerまでの導入手順
  • 料金、利用上限、トークン管理、実運用で詰まりやすい点

Kitesurfとは何か:Browser Runの中で選べる新エンジン

まず製品名の関係を整理します。

名前役割2026年8月時点の位置づけ
Browser RunCloudflareのブラウザ自動化サービス全体Quick Actions、CDP、Puppeteer、Playwright、MCPなどを提供
ChromiumBrowser Runの既定ブラウザエンジン互換性、長いセッション、動画・WebGLなどを優先
KitesurfBrowser Runから選べる軽量エンジンAI向け、ステートレス、ベータ、対応サイトでは低CPU・低メモリ

つまり「Browser RunからKitesurfを使う」が正確です。Quick ActionsやCDP endpointへ browser=kitesurf を加えると、既定のChromiumではなくKitesurfが選ばれます。

Cloudflareが従来提供していたBrowser Run(旧Browser Rendering)は、コンテナでChromiumを起動するサービスです。Kitesurfは別物で、ブラウザそのものがWorkers上の複数コンポーネントとして動きます。Cloudflareの発表によると、着手から発表まで約12週間。AIエージェントも実装を加速し、人間がアーキテクチャとレビュー、Web Platform Tests(WPT)による合格条件を担当した点も、このプロジェクトを象徴しています。

AI開発の前提から知りたい方は、先にAIエージェント入門を読むと位置づけをつかみやすくなります。

なぜAI専用ブラウザが必要なのか

人間とAIでは、ブラウザに求めるものが違います。

人間は複数タブを開き、拡張機能を使い、動画を見て、ピクセル単位の見た目や滑らかなスクロールを気にします。一方、エージェントが欲しいのは「見出しは何か」「購入ボタンはどの要素か」「Consoleにエラーがあるか」「このページをMarkdownやJSONへ変換できるか」といった機械可読な状態です。

それでも、単純なHTTP取得だけでは足りません。現代のサイトはJavaScript実行後に本文やボタンが現れ、クリック、フォーム入力、Cookie、CORS、iframeまで含めて初めて「ページ」として成立します。Kitesurfは、Chromiumの人間向けオーバーヘッドを抱えず、このエージェントに必要な部分を実装する狙いです。

3.8×減
HTML抽出のCPU
Kitesurf 229ms / Chromium 877ms
7.0×減
HTML抽出のメモリ
39.4MiB / 273.7MiB
4.7×減
撮影時のメモリ
57.8MiB / 271.0MiB
1.7×遅い
HTML抽出の完了時間
820ms / 472ms
Cloudflare公式Docsの14 URL・各5回の中央値。軽さと応答時間は同時には勝っていない。

この数値はCloudflare自身のベンチマークであり、独立した第三者検証ではありません。しかも比較対象のChromiumはwarm pool、Kitesurfはcold software rendererです。結論は「常に高速」ではなく、CPUとメモリは大幅に少ないが、現在の実時間はChromiumより遅いです。大量の短い処理を並べるサービスには魅力的ですが、1件の待ち時間を最優先する用途ではChromiumが勝つ可能性があります。

どう動くのか:3つの中核と1つの出口

Kitesurfは大きく、Engine、PageScript、PageRenderer、SandboxOutboundに分かれます。

コンポーネント主な仕事分離設計の意味
EngineCDP WebSocketとREST APIを受け、セッション状態を持つ外部クライアントから見える唯一の入口
PageScriptHTMLをDOMへ変換し、CSS・JavaScript・Wasmを処理ページや別プロセスiframeごとに新しいisolateを作る
PageRenderer計算済みページをPNG、JPEG、PDFへ描画状態をほぼ持たず、失敗時に捨てて再起動できる
SandboxOutboundHTML、画像、CSS、フォントなどを外部取得他コンポーネントの直接通信を止め、CORS・Cookie・応答を制御する

HTMLとCSSの解析にはRust製のBlitzとFirefox由来のStylo、描画には blitz-paint、Workersが直接許可していない eval の処理にはRust製JavaScriptエンジンBoaが使われています。Rust部分はWebAssemblyへコンパイルされ、ページのJavaScriptはV8 isolate内で動きます。

重要なのは、単に軽量ライブラリを寄せ集めたのではなく、**「すべてのページは信頼できない入力」「セッションは毎回まっさら」**を設計原則にしたことです。ページごとにCookie jarを分け、ネットワーク出口をSandboxOutboundへ集約し、失敗した描画コンポーネントは使い捨てます。これは、未知のサイトを次々に開くAIエージェントの脅威モデルに合っています。

ただし、分離されたブラウザでも、ページ内の文章によるプロンプトインジェクションや、エージェントが誤って購入・送信する問題までは自動で消えません。書き込み操作には人間の確認を残し、APIトークンや秘密値の扱いはAIエージェントの秘密情報保護と同じく最小権限で設計してください。

Web互換性はどこまであるか

公式Docsは、2026年8月7日更新時点で23万5,000超のWPT subtestに合格したとしています。発表Blogにある21万5,000超から、公開直後も対応が増えた形です。主要分野の掲載値は次の通りです。

分野WPT subtest coverage
Selection99%
Encoding99%
DOM97%
SVG97%
HTML96%
CORS95%
XHR95%
URL83%

数字は高く見えますが、WPTはWeb標準への適合度を測るもので、実在する全サイトが正しく動く保証ではありません。Cloudflareが動作例として挙げるのは、TodoMVCの各実装、Wikipedia、Hacker News、Cloudflare Blog、Cloudflare Dashboardの多くの部分です。

逆に、現時点でKitesurfを選ばない方がよい条件も明確です。

  • 動画再生やWebGLが必要
  • 本物のTLS fingerprintを使ったbot challengeのhandshakeが必要
  • 認証状態を保った長時間セッションが必要
  • スクリーンショットやPDFでピクセル単位の一致が必要
  • 未実装のCDP commandへ依存する

この場合はBrowser Runの既定Chromiumを使います。Kitesurfは「Chromiumの完全互換・完全上位版」ではありません。

導入方法1:Playgroundならインストール不要

最初に試す場所は公式Kitesurf Playgroundです。

  1. Playgroundを開く
  2. 調べたい公開URLを入力する
  3. Kitesurfでの表示を確認する
  4. DevToolsでDOM、Console、Networkを確認する
  5. Memory panelでisolateとframeのWebAssembly使用量を見る

ここで重要なのは、見た目だけで合否を決めないことです。AIが本文抽出に使うならDOMに必要な情報があるか、操作に使うなら対象ボタンが取得できるか、ConsoleやNetworkに失敗がないかを確認します。

Playgroundで崩れるサイトへ、いきなり自動化コードを書く必要はありません。そのサイトだけChromiumへ戻すルーティングを最初から用意した方が堅実です。

導入方法2:REST APIでスクリーンショットを撮る

単発のスクリーンショット、PDF、HTML・Markdown抽出にはBrowser RunのQuick Actionsが向きます。Workerをデプロイする必要はなく、HTTPS APIを1回呼ぶだけです。

事前準備

  1. Cloudflareアカウントを作る
  2. DashboardでAccount IDを確認する
  3. Custom API Tokenを作り、Browser Rendering - Edit 権限だけを与える
  4. トークンを環境変数へ保存する

PowerShellでは、現在のターミナルだけに値を入れて試せます。実値は記事、Git、チャット、スクリーンショットへ貼らないでください。

PowerShellでKitesurfのスクリーンショットを保存
$env:CF_ACCOUNT_ID = "<ACCOUNT_ID>"
$env:CLOUDFLARE_API_TOKEN = "<API_TOKEN>"
$headers = @{
Authorization = "Bearer $env:CLOUDFLARE_API_TOKEN"
"Content-Type" = "application/json"
}
$body = @{ url = "https://example.com" } | ConvertTo-Json
$uri = "https://api.cloudflare.com/client/v4/accounts/$env:CF_ACCOUNT_ID/browser-run/screenshot?browser=kitesurf"
Invoke-WebRequest `
-Method Post `
-Uri $uri `
-Headers $headers `
-Body $body `
-OutFile "screenshot.png"
# 試し終えたら現在のPowerShellセッションから消す
Remove-Item Env:CF_ACCOUNT_ID
Remove-Item Env:CLOUDFLARE_API_TOKEN

成功すれば、現在のフォルダに screenshot.png ができます。Kitesurfを選ぶ本質は、URL末尾の browser=kitesurf です。これを外すと既定のChromium経路になります。

Quick Actionsにはスクリーンショット以外にも、HTML、PDF、Markdown、snapshot、accessibility tree、selector指定のscrape、AIによるJSON抽出、link一覧、crawlがあります。ただしKitesurfとの組み合わせで対象サイトが正しく動くかは、個別に確認してください。

導入方法3:MCPでClaude CodeやCursorから使う

Kitesurfの面白さが出るのは、AIエージェントが直接ブラウザを操作するときです。Browser RunはCDP endpointを公開し、chrome-devtools-mcp がMCPのtool callをCDP commandへ変換します。

公式の一般MCPガイドはClaude Desktop、Claude Code、Cursor、OpenCodeを対象にしており、KitesurfのページはOpenCode用例を掲載しています。Claude CodeやCursorでも、mcpServers 形式のendpointをKitesurf用に差し替える考え方は同じです。

前提は次の3点です。

  • Node.js 20.19以上
  • MCP対応クライアント
  • Browser Rendering - Edit だけを持つ専用APIトークン
Claude Desktop / Claude Code / Cursor系の設定例
{
"mcpServers": {
"kitesurf": {
"command": "npx",
"args": [
"-y",
"chrome-devtools-mcp@latest",
"--wsEndpoint=wss://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/browser-run/devtools/browser?browser=kitesurf",
"--wsHeaders={\"Authorization\":\"Bearer <API_TOKEN>\"}"
]
}
}
}

設定ファイルの場所はクライアントごとに異なります。一般ガイドでは、Claude Desktopは claude_desktop_config.json、Claude Codeは ~/.claude.json、Cursorは ~/.cursor/mcp.json が案内されています。Windowsでは ~ がユーザープロファイルを指します。

この公式形式はトークンを設定ファイルへ入れるため、そのファイルをGit管理せず、端末を共有せず、Kitesurf専用の最小権限トークンを使ってください。漏えいが疑われたら、設定から消すだけでなくCloudflare側で即時ローテーションします。MCP自体が初めてなら、MCP入門ガイドも併せて確認してください。

接続後は、たとえば次のように依頼できます。

https://example.com を開き、ページタイトルと主要見出しを取得してください。
Console errorと失敗したNetwork requestを一覧にし、読み取りだけで原因を説明してください。
現在のページをスクリーンショットにして、DOM上のCTA文言と一致するか確認してください。

最初は閲覧、抽出、検査だけに限定してください。フォーム送信、購入、公開、削除などは「実行直前に人間へ確認する」境界をプロンプトとクライアント権限の両方に置きます。

導入方法4:PuppeteerからCDP接続する

決まった手順を再現可能なコードにしたい場合は、MCPよりPuppeteerが向いています。ローカルにChromium本体を入れる必要はなく、CDP clientだけの puppeteer-core を使います。

準備
New-Item -ItemType Directory kitesurf-demo
Set-Location kitesurf-demo
npm init -y
npm install puppeteer-core
$env:CF_ACCOUNT_ID = "<ACCOUNT_ID>"
$env:CF_API_TOKEN = "<API_TOKEN>"
script.mjs
import puppeteer from "puppeteer-core";
const accountId = process.env.CF_ACCOUNT_ID;
const apiToken = process.env.CF_API_TOKEN;
if (!accountId || !apiToken) {
throw new Error("CF_ACCOUNT_ID と CF_API_TOKEN を設定してください");
}
const browserWSEndpoint =
`wss://api.cloudflare.com/client/v4/accounts/${accountId}` +
"/browser-run/devtools/browser?browser=kitesurf";
const browser = await puppeteer.connect({
browserWSEndpoint,
headers: { Authorization: `Bearer ${apiToken}` },
});
try {
const page = await browser.newPage();
await page.goto("https://example.com", { waitUntil: "domcontentloaded" });
console.log({
title: await page.title(),
h1: await page.$eval("h1", (element) => element.textContent?.trim()),
});
await page.screenshot({ path: "example-kitesurf.png" });
} finally {
await browser.close();
}
実行
node .\script.mjs
# 試し終えたら現在のPowerShellセッションから消す
Remove-Item Env:CF_ACCOUNT_ID
Remove-Item Env:CF_API_TOKEN

公式Kitesurf Docsは、既存のPuppeteer、Playwright、chrome-remote-interface、MCP/CDP対応エージェントから接続できるとしています。ただしKitesurfが実装するCDPはまだsubsetです。接続方式が互換でも、すべてのCDP commandやページ機能がChromiumと同じとは限りません。

料金と利用上限

Kitesurfは、2026年8月13日時点でベータ中は無料です。ただし公式Docsは「per-account limitsの範囲内」としており、将来の課金体系は未確定です。

一方、Kitesurfが合わないときに戻す通常のChromium版Browser Runには、次の一般料金があります。

項目Workers FreeWorkers Paid
Browser hours10分/日10時間/月を含み、超過分は$0.09/時
同時Browser Sessions3月平均10を含み、超過分は$2.00/ブラウザ
Quick Actions rate limit10秒に1回1秒に10回
新規Browser Sessions20秒に1つ1秒に1つ

Workers Paidの技術上限は同時120 browser/accountですが、料金に含まれる同時数は月平均10です。「起動できる上限」と「追加料金なしの枠」は同じではありません。Quick Actionsの応答には X-Browser-Ms-Used headerが入り、Dashboardと併せて使用時間を追えます。

料金と上限は変更されやすいため、Kitesurfを本番採用する判断は、ベータ終了後の価格が出てから更新するのが安全です。

KitesurfとChromiumの使い分け

迷ったら、次の基準で選べます。

要件KitesurfChromium版Browser Run
公開ページの本文・DOM抽出まず試す互換性問題が出たら切替
単発の画像・PDF生成対応サイトなら有力ピクセル精度が重要ならこちら
大量・バースト型の短時間処理低CPU・低メモリを活かしやすいコスト比較が必要
動画・WebGL不向き選ぶ
bot challenge・実TLS fingerprint不向きこちらでも許可される保証はない
長時間の認証済みsession不向きsession再利用を設計する
CDP全機能への依存subsetを要検証第一候補

実運用では、全面的にどちらかへ寄せるより、Kitesurfを第一経路、互換性エラー時だけChromiumへfallbackする構成が現実的です。ただし自動fallbackは同じ操作を二重実行する危険があります。閲覧・抽出は再試行しても、送信・購入・公開など副作用のある操作は自動再試行しないでください。

よくある詰まりどころ

Playgroundでは動くのに自動化が失敗する

描画できることと、使いたいCDP commandが実装されていることは別です。ConsoleとNetworkに加え、selector、待機条件、redirect先を確認します。networkidle は通信が続くサイトで終わらないことがあるため、最初は domcontentloaded と必要要素の待機を組み合わせます。

401または403になる

Account ID、tokenの有効期限、Browser Rendering - Edit 権限を確認します。token値はエラー報告へ貼らず、疑わしい場合は再発行してください。接続先が browser-run か、Kitesurf指定の browser=kitesurf が付いているかも確認します。

見た目がChromiumと違う

現時点では仕様です。WPT coverageが高くてもpixel-perfectではなく、PageRendererの改善は継続中です。視覚回帰テストの基準画像をChromiumと共有せず、Kitesurf専用の許容差を設けるか、画像品質が要件ならChromiumを使います。

ログインやCAPTCHAで止まる

Kitesurfは実TLS fingerprintを使うbot challengeや長時間の認証状態に向きません。また自動化を隠してbot判定をすり抜けるための製品でもありません。対象サイトの利用規約、robots.txt、API提供有無を確認し、正式APIがあるならそちらを優先します。

まとめ:まず5分、Playgroundで触る価値がある

Cloudflare Kitesurfは、ブラウザを人間の画面ではなく、AIエージェントの実行基盤として再設計した試みです。Blitz、Stylo、Boa、WebAssembly、V8 isolate、Workers RPCを組み合わせ、DOM・JavaScript実行・描画・CDP接続をChromiumなしで成立させています。

現時点の評価は明快です。

  • 魅力:CPU・メモリが小さく、短時間・大量・ステートレスなエージェント処理へ向く
  • 互換性:23万5,000超のWPT subtestに合格したが、実サイトとCDPは要検証
  • 弱点:Chromiumより実時間が遅く、動画、WebGL、bot challenge、長時間認証、pixel-perfect描画は不向き
  • 始め方:Playground → Quick Actions → MCPまたはPuppeteerの順なら迷いにくい

最初の一歩はインストールではありません。Kitesurf Playgroundへ、普段AIに読ませたい公開ページを1つ入れてみてください。DOM、Console、Networkまで見て問題がなければ、この記事のPowerShell例で1枚スクリーンショットを取り、その後にMCPへつなぐ。それだけで、この新しいブラウザが自分のワークフローに効くかを判断できます。

関連して読む

この記事の情報・検証メモ
Tags
  • cloudflare
  • kitesurf
  • browser-run
  • ai-agent
  • mcp
  • puppeteer
  • browser-automation
公開日
情報確認
参考リンク
7件
更新性
速報性高め
更新管理

仕様・料金・提供範囲が変わりやすいテーマは、公開日・更新日・情報確認日を分けて管理します。 導入前には必ず記事末尾の一次情報と公式ドキュメントで最新状況を確認してください。

図解を保存・共有

記事の要点を1枚にまとめました。画像は新しいタブで開いて保存できます。

Cloudflare Kitesurfとは?AI向け新ブラウザの導入・使い方 まずPlaygroundで互換性を確認し、単発処理はQuick Actions、対話操作はMCP/CDPで試す Kitesurfの正体:Chrome代替でなく、Workers上で動く。DOM・構造化出力・分離を優先。 軽さと代償:HTML抽出CPUはChromium比3.8分の1。完了時間は約1.7倍遅い。 最短の試し方:PlaygroundでDOMを確認。APIにbrowser=kitesurfを指定。
Cloudflare Kitesurfとは?AI向け新ブラウザの導入・使い方 記事の要約 2026.08.13 入門・導入ガイド
Primary sources

一次情報・参考リンク

About the author
codeagent.jp編集部

Claude Code / Codex / MCP を個人開発サイト運用と公開MCPサーバー開発で試し、一次情報・検証ログ・失敗例をもとに整理します。