アップデート一覧に戻る
New releaseJul 26, 2026

kuri v0.4.14

ブラウザ自動化、Webクローリング、iOSおよびAndroidデバイス制御をAIエージェント向けに提供。Zigネイティブ、トークン効率の良いCDPスナップショット、HAR記録、ネイティブなadbワイヤープロトコルクライアント、そしてスタンドアロンフェッチャー。

共有

Kuri

Kuri 🌰

Stable release License Zig node_modules status

インストール```sh

curl -fsSL https://kuri.trilok.ai/download | sh

macOS arm64/x86_64 および Linux x86_64/arm64。単一バイナリ、ランタイム依存関係なし。

直接ダウンロード: [macOS arm64](https://kuri.trilok.ai/download/v0.6.0/kuri-v0.6.0-aarch64-macos.tar.gz) · [macOS x86_64](https://kuri.trilok.ai/download/v0.6.0/kuri-v0.6.0-x86_64-macos.tar.gz) · [Linux x86_64](https://kuri.trilok.ai/download/v0.6.0/kuri-v0.6.0-x86_64-linux.tar.gz) · [Linux arm64](https://kuri.trilok.ai/download/v0.6.0/kuri-v0.6.0-aarch64-linux.tar.gz)

---

**AIエージェントのためのブラウザ自動化&Webクローリング。Zig製。Node.jsゼロ。**

CDP自動化 · A11yスナップショット · HAR記録 · スタンドアロンフェッチャー · 対話型ターミナルブラウザ · エージェント型CLI · セキュリティテスト · iOS + Androidデバイス制御

[クイックスタート](#-quick-start) · [ベンチマーク](#-benchmarks) · [kuri-agent](#-kuri-agent) · [セキュリティテスト](#-security-testing) · [API](#-http-api) · [スキル](#-skills) · [変更履歴](https://github.com/justrach/kuri/blob/main/CHANGELOG.md)

> **Kuriに乗り換えるチームの理由:** 現在のApple Silicon向け`ReleaseFast`ビルドはバイナリあたり2MB未満を維持しており、2026-04-23に実行したGoogle Flightsの最新再実行では、`kuri-agent`のフルループ(`go→snap→click→snap→eval`)で**3,392トークン**と測定されました。パーセンテージを引用する前に、クロスツール間の差分は同じ環境で再実行してください。

---

## Kuriがエージェントに選ばれる理由

ほとんどのブラウザツールはQAエンジニア向けに作られています。Kuriはエージェントループ向けに作られています。ページを読み、トークンコストを低く抑え、安定した参照に対して操作し、次へ進む、という流れです。

- **135のHTTPエンドポイント** — React inspectionからCore Web Vitalsまで、agent-browserおよびbrowser-useと完全な互換性。
- **agent-browserより7〜12%少ないトークン** — 実際のページでの数値で、`@eN`参照形式とゼロプレフィックスレンダリングによる効果です。
- **44倍軽量な観測** — 同じGoogle Flightsページで`/page/state`(48トークン)はフルスナップショット(2,124トークン)と比較して44倍軽量。
- **バッチ実行** — `POST /batch`はN個のコマンドを1回のHTTP呼び出しで送信し、N-1回のラウンドトリップとN-1回のLLMターンを排除します。
- **React互換** — 信頼できるCDPマウスイベントと1文字単位のキーイベントがReact 18/19の`onClick`と`onChange`を発火。

### スナップショットトークン: Google Flights `SIN → TPE`

このワークスペースで2026-05-24に再実行した最新結果。`wc -c`と`chars/4`近似で測定。

| ツール / モード | 文字数 | ~トークン | 備考 |
|---|---:|---:|---|
| `kuri snap`(フル) | 8,499 | **2,124** | 全ノード + インタラクティブ参照 |
| `kuri snap`(インタラクティブのみ) | ~3,000 | **~750** | エージェントループに最適 |
| `kuri /page/state` | 190 | **48** | 軽量な観測(url、タイトル、スクロール%、カウント) |
| agent-browser snap(推定) | ~9,183 | **~2,295** | `[ref=e0]`形式のオーバーヘッド |

### トークン効率: kuri vs agent-browser

| ページ | kuriトークン | agent-browserトークン | 削減率 |
|---|---:|---:|---|
| example.com | 40 | 35 | -13%(単純なページ。agent-browserはルートをスキップ) |
| Hacker News | 386 | ~440 | **12%削減** |
| Google Flights SIN→TPE | 2,124 | ~2,295 | **7%削減** |

削減はkuriのコンパクトな形式によるものです:
- `@e0`参照(3文字) vs `[ref=e0]`(9文字)
- 行ごとの`- `プレフィックスなし(行数 × 2文字の削減)
- 同じインデント、同じノードフィルタリング

### フルワークフローコスト: `go → snap → click → snap → eval`

| ツール | サイクルあたりのトークン |
|---|---:|
| **kuri-agent** | **~3,400** |
| 2回目のスナップの代わりに`/page/state`を使用 | **~1,700** |
| `POST /batch`を使用(すべて1回の呼び出しで) | **~1,700**(同じトークン、5回ではなく1回のHTTP呼び出し) |

### kuri vs libretto

[libretto](https://github.com/saffron-health/libretto)(Playwright + Node)は、ステップごとのトークンコストで最も近い競合です。2026-07-04に同じChrome、同じタブで直接比較測定し、実際の`tiktoken` `o200k_base`カウントを使用しました(完全な方法論と再現手順: **[benchmarks/libretto_comparison.md](https://github.com/justrach/kuri/blob/main/benchmarks/libretto_comparison.md)**)。正直な内訳は以下の通りです:

| 軸 | 勝者 | 詳細 |
|---|---|---|
| 呼び出しあたりのレイテンシ | **kuri** | 4〜117ms vs 1,344〜1,500ms(**13〜376倍高速** — 常駐サーバー vs コマンドごとのNode) |
| スナップショットトークン(一般的なページ) | **kuri** | シンプルなページ 61 vs 151(2.5倍)、記事 265 vs 363(1.37倍)— よりコンパクトな文法 |
| スナップショットトークン(大きなリスト) | 分かれる | kuriはデフォルトで4,424 vs 813 — kuriは259個すべての参照を出力し、librettoはデフォルトで切り詰めます。`limit=5`の場合、kuriは555トークンをレンダリング(**librettoの1.46倍少ない**)、34個の参照 + `… +45 more`マーカー |
| トラジェクトリ(フィード、9クリック) | **kuri**(僅差) | 898 vs 939トークン(`limit=5`ベース + 差分ループ vs 実行ループ)— 同等から僅かに優勢。朝の5.1倍の劣勢は、切り詰めていないベースが原因 |
| 繰り返し実行 | **libretto** | トラジェクトリをPlaywrightスクリプトにコンパイル → 0トークンでリプレイ。kuriは実行のたびにループのコストを再び支払う |

**kuriがlibrettoの研究から得たもの**(すべてこのリリースで導入済み):差分ファーストのループ(`take_snapshot_diff`、ステップあたり約38トークン);ナビゲーション時に`! page replaced`ヘッダー付きのフルスナップショットへフォールバックする適応型差分;IDのみの削除行;スクリーンショットのディスク書き込み(パスが返され、バイトがコンテキストに入ることはありません);MCP上の`get_page_state`;そして`parseA11yNodes`を実際のDFSツリーウォークとして書き直した後 — **オプトインのリスト切り詰め**(`/snapshot?limit=N`、上限到達ランごとに`… +K more`を1行)、**スコープ指定の再キャプチャ**(`scope=@ref`)、**階層インデント**。これらはMCPの`take_snapshot`でも`uid`/`limit`として公開されています。単純なフル再スナップショットで44,285トークンかかっていた9クリックのフィードトラジェクトリは、切り詰めベース + 差分で**898**トークン — 49倍安く、librettoの939をも下回ります。

> 上記の古い表は`chars/4`トークン近似を使用しています。librettoとの比較では実際の`tiktoken`カウントを使用しています。パーセンテージを引用する前に、ご自身の環境でクロスツールの数値を再実行してください。

### バイナリサイズとメモリ

Apple M4 Pro、macOS 26.4.1で測定。現在のバイナリは`-Doptimize=ReleaseFast`でビルドされています。

| バイナリ | 現在のサイズ |
|---|---:|
| `kuri` | 1,093,840 B (1.04 MiB) |
| `kuri-agent` | 629,904 B (615 KiB) |
| `kuri-browse` | 1,089,120 B (1.04 MiB) |
| `kuri-fetch` | 2,063,488 B (1.97 MiB) |

### Zig 0.16移行後もRSSは横ばい

現在の`v0.4.3` `ReleaseFast`ビルドを`/usr/bin/time -l`で測定。

| コマンド | `v0.4.3`平均最大RSS |
|---|---:|
| `kuri-fetch --version` | ~2.45 MiB |
| `kuri-browse --version` | ~2.45 MiB |
| `kuri-fetch --quiet --dump markdown http://example.com/` | ~9.17 MiB |

## 問題

すべてのブラウザ自動化ツールはPlaywright(約300MB)、Node.jsランタイム、そして大量のnpm依存関係を引き込みます。AIエージェントがやりたいのは、ページを読み、ボタンをクリックし、次へ進むことだけです。
**Kuriは単一のZigバイナリです。** 4つのモード、ランタイムゼロ:```
kuri           →  CDP server (Chrome automation, a11y snapshots, HAR)
kuri-fetch     →  standalone fetcher (no Chrome, QuickJS for JS, ~2 MB)
kuri-browse    →  interactive terminal browser (navigate, follow links, search)
kuri-agent     →  agentic CLI (scriptable Chrome automation + security testing)

📦 インストール

ワンラインインストール(macOS / Linux)```sh

curl -fsSL https://raw.githubusercontent.com/justrach/kuri/release-channel/stable/install.sh | sh

あなたのプラットフォームを検出し、適切なバイナリをダウンロードして、`~/.local/bin` にインストールします。
ダウンロードはKuriの自己管理型`release-channel`ブランチから取得されます。macOSバイナリはDeveloper ID証明書でローカル署名されています。GitHub Releaseのアセットはこれらと同じtarballをミラーリングしています。

### bun / npm```sh
bun install -g kuri-agent
# or: npm install -g kuri-agent

インストール時に、お使いのプラットフォームに適したネイティブバイナリをダウンロードします。

リリースチャンネル

Kuri の安定版バイナリは release-channel ブランチに置かれ、GitHub の raw URL から直接配信されます。

  • 安定版インストーラ: https://raw.githubusercontent.com/justrach/kuri/release-channel/stable/install.sh
  • 安定版マニフェスト: https://raw.githubusercontent.com/justrach/kuri/release-channel/stable/latest.json
  • ブランチ表示: https://github.com/justrach/kuri/tree/release-channel/stable
  • 直接ダウンロード形式: https://raw.githubusercontent.com/justrach/kuri/release-channel/stable/<version>/kuri-<version>-<target>.tar.gz

手動

お使いのプラットフォーム用の tarball を 安定版リリースマニフェスト または GitHub Releases ページ からダウンロードし、$PATH に展開します。

安定版インストール URL:```sh curl -fsSL https://raw.githubusercontent.com/justrach/kuri/release-channel/stable/install.sh | sh

マニフェストには、`aarch64-linux`、`x86_64-linux`、`aarch64-macos`、`x86_64-macos` の正確なアセットURLとSHA-256チェックサムが含まれています。

### 対応プラットフォーム

カテゴリ