
2025/12/25 2:49
Show HN:Vibium ― AIと人間向けのブラウザ自動化(Selenium創設者による)
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Vibiumは軽量でGoベースのブラウザ自動化ライブラリで、AIエージェントが最小限のオーバーヘッドでChromeを制御できるようにします。単一の約10 MBバイナリとして配布され、WebDriver BiDiプロトコルとMCPサーバーを使用してブラウザを管理し、自動待機、要素ポーリング、ビューポートスクリーンショット(PNG)、不可視実行などの機能を提供します。開発者は
npm install vibium でインストールでき、ライブラリは同期 (browserSync) と非同期 (browser) の両方のJavaScript/TypeScript APIを公開し、一般的なブラウザ操作に対応しています。
Claude Codeエージェントは次のように一歩でブラウザ制御を追加できます:
claude mcp add vibium -- npx -y vibium; これによりセットアップ時にChromeも自動ダウンロードされます。ツールはLinux x64、macOS Intel x64、macOS Apple‑Silicon arm64、およびWindows x64をサポートし、Chromeとchromedriverをローカルにキャッシュしますが、VIBIUM_SKIP_BROWSER_DOWNLOAD=1 を設定するとダウンロードをスキップできます。
主要なエージェントツールは次の通りです:
browser_launchbrowser_navigatebrowser_findbrowser_clickbrowser_typebrowser_screenshotbrowser_quit
VibiumはApache 2.0ライセンスでオープンソース化され、2025‑12‑22にnpmへ公開されました。将来計画(Roadmap V2)にはPython/Javaクライアント、Cortexメモリ/ナビゲーションレイヤー、Retina録画、動画キャプチャ、およびAI駆動のロケータが追加予定です。開発ガイドラインは
CONTRIBUTING.md に、ロードマップ詳細は V2-ROADMAP.md に記載されています。このライブラリはAIエージェント向けにブラウザ自動化を簡素化し、開発者、テスター、およびデータ抽出ワークフローの利便性を高めることを目指しています。本文
Vibium
ドラマなしのブラウザ自動化。
概要
Vibium は AI エージェント向けに設計されたブラウザ自動化インフラストラクチャです。
単一バイナリで以下を処理します:
- ブラウザライフサイクル
- WebDriver BiDi プロトコル
- MCP サーバ(Claude Code など任意の MCP クライアント用)
これにより、エージェントはセットアップ不要でブラウザを操作でき、AI エージェント・テスト自動化・その他ブラウザ依存タスクに最適です。
クイックリファレンス
| コンポーネント | 目的 | インターフェース |
|---|---|---|
| Clicker | ブラウザ自動化、BiDi プロキシ、MCP サーバ | CLI / stdio / WebSocket :9515 |
| JS Client | 開発者向け API | npm パッケージ |
アーキテクチャ図
┌───────────────────────────────────────┐ │ LLM/Agent │ │ (Claude Code, Codex, Gemini, など) │ └───────────────────────────────────────┘ ▲ MCP プロトコル (stdio) │ ▼ ┌─────────────────────┐ │ Vibium Clicker │ │ │ │ ┌───────────────┐ │ │ │ MCP Server │ │ │ └───────▲───────┘ │ ┌──────────────────┐ │ │ │ │ │ │ ┌───────▼───────┐ │WebSocket│ Chrome Browser │ │ │ BiDi Proxy │ │◄───────►│ (BiDi) │ │ └───────────────┘ │ :9515 │ │ └─────────────────────┘ └──────────────────┘ ▲ WebSocket BiDi :9515 ▼ ┌───────────────────────────────────────┐ │ JS/TS Client │ │ npm install vibium │ │ │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ Async API │ │ Sync API │ │ │ await vibe.go() │ │ vibe.go() │ │ └─────────────────┘ └─────────────────┘ └───────────────────────────────────────┘
コンポーネント
Clicker
約10 MB の単一 Go バイナリで、以下をすべて実行します:
- ブラウザ管理 – BiDi が有効な Chrome を検出/起動。
- BiDi プロキシ – コマンドをブラウザへルーティングする WebSocket サーバ。
- MCP Server – LLM エージェント用 stdio インターフェース。
- Auto‑Wait – 要素が利用可能になるまでポーリング。
- スクリーンショット – ビューポートを PNG で取得。
設計目標: バイナリは見えないようにし、JS 開発者は
npm install vibium だけで動作させることができる。
JS/TS Client
// オプション1: CommonJS(REPL に最適) const { browserSync } = require('vibium'); // オプション2: 動的インポート(Node REPL with --experimental-repl-await) const { browser } = await import('vibium'); // オプション3: 静的インポート (.mjs または .ts ファイル) import { browser, browserSync } from 'vibium';
Sync API
const fs = require('fs'); const { browserSync } = require('vibium'); const vibe = browserSync.launch(); vibe.go('https://example.com'); const png = vibe.screenshot(); fs.writeFileSync('screenshot.png', png); const link = vibe.find('a'); link.click(); vibe.quit();
Async API
const fs = await import('fs/promises'); const { browser } = await import('vibium'); const vibe = await browser.launch(); await vibe.go('https://example.com'); const png = await vibe.screenshot(); await fs.writeFile('screenshot.png', png); const link = await vibe.find('a'); await link.click(); await vibe.quit();
エージェントとの連携
Claude Code にブラウザ制御を追加するにはワンコマンド:
claude mcp add vibium -- npx -y vibium
手動ステップは不要で、セットアップ時に Chrome が自動ダウンロードされます。
ツールコマンド
| Tool | 説明 |
|---|---|
| ブラウザを起動(デフォルトで可視) |
| URLへ移動 |
| CSS セレクタで要素検索 |
| 要素をクリック |
| テキスト入力 |
| ビューポート取得(base64 または でファイル) |
| ブラウザ終了 |
人間向け
-
あなたのプラットフォーム用に Clicker バイナリをインストール。
-
Chrome + chromedriver をキャッシュへダウンロード:
- Linux:
~/.cache/vibium/ - macOS:
~/Library/Caches/vibium/ - Windows:
%LOCALAPPDATA%\vibium\
- Linux:
手動でブラウザを設定する必要はありません。
別途ブラウザ管理を行う場合はダウンロードをスキップ:
VIBIUM_SKIP_BROWSER_DOWNLOAD=1 npm install vibium
プラットフォーム対応
| Platform | Architecture | ステータス |
|---|---|---|
| Linux | x64 | ✅ 対応済み |
| macOS | x64 (Intel) | ✅ 対応済み |
| macOS | arm64 (Apple Silicon) | ✅ 対応済み |
| Windows | x64 | ✅ 対応済み |
クイックスタート
ライブラリとして使用
import { browser } from 'vibium'; const vibe = await browser.launch(); await vibe.go('https://example.com'); const el = await vibe.find('a'); await el.click(); await vibe.quit();
Claude Code で利用
claude mcp add でインストール後、単に
「example.com に行って最初のリンクをクリック」
と指示するだけです。
コントリビューション
セットアップとガイドラインは CONTRIBUTING.md をご覧ください。
ロードマップ
- V1 – Core loop: MCP と JS クライアントによるブラウザ制御。
- V2 – 予定機能:
- Python & Java クライアント
- Cortex(メモリ/ナビゲーション層)
- Retina(録画拡張)
- ビデオ録画
- AI 搭載ロケータ
更新履歴
| 日付 | 備考 |
|---|---|
| 2025‑12‑22 | Day 12 – npm 公開 |
| 2025‑12‑21 | Day 11 – ポリッシュ & エラーハンドリング |
| 2025‑12‑20 | Day 10 – MCP Server |
| 2025‑12‑19 | Day 9 – Actionability |
| 2025‑12‑19 | Day 8 – Elements & Sync API |
| 2025‑12‑17 | Halfway There |
| 2025‑12‑16 | Week 1 Progress |
| 2025‑12‑11 | V1 発表 |
ライセンス
Apache 2.0