- 21年前にSeleniumを開発した Jason Huggins が、AIエージェントを念頭に置いて再設計したブラウザ自動化オープンソースプロジェクト
- Vibiumは AIエージェント向けのブラウザ自動化インフラで、単一バイナリでブラウザのライフサイクルと WebDriver BiDi プロトコルを管理し、MCP サーバーを公開
- 10MB の単一 Go バイナリ Clicker は Chrome を自動検出・起動し、BiDi プロキシと MCP サーバーを通じてAIモデルや JS クライアントがブラウザを制御できるようにする
- JS/TS クライアントは同期・非同期 API の両方をサポートし、
npm install vibium でインストール後すぐに利用可能
- Claude Code のような LLM エージェントは
claude mcp add vibium コマンド 1 行でブラウザ制御機能を追加可能
- AI 自動化とテスト自動化の両方に適しており、設定不要のブラウザ制御環境を提供
Vibium 概要
- Vibiumは AIエージェントと人間のユーザー向けのブラウザ自動化インフラストラクチャ
- 単一の Go バイナリでブラウザ管理、WebDriver BiDi プロキシ、MCP サーバー機能を統合
- Claude Code、Codex、Gemini などさまざまな LLM モデルと互換
- インストール手順なしですぐ動作する構成で、AIエージェントやテスト自動化環境で活用可能
構成要素
- Clicker: 約 10MB サイズの Go バイナリで、次の機能を実行
- Chrome の自動検出と BiDi モードでの起動
- WebSocket ベースのBiDi プロキシサーバーとしてコマンドを中継
- MCP サーバーを通じて LLM エージェントと通信
- Auto-Wait 機能で要素を待機してから操作
- スクリーンショット取得機能を提供
- JS/TS クライアント: npm パッケージとして提供され、同期(
browserSync)と非同期(browser) API の両方をサポート
vibe.go(), vibe.find(), vibe.click(), vibe.quit() などのシンプルなコマンドでブラウザを制御
- スクリーンショット保存、要素検索、クリックなど基本的な自動化機能を含む
AIエージェント統合
人間のユーザー向けインストール
npm install vibium コマンドで自動インストール
- プラットフォームごとに Clicker バイナリ、Chrome for Testing、chromedriver をキャッシュにダウンロード
- Linux:
~/.cache/vibium/, macOS: ~/Library/Caches/vibium/, Windows: %LOCALAPPDATA%\vibium\
- 環境変数
VIBIUM_SKIP_BROWSER_DOWNLOAD=1 でブラウザのダウンロードを省略可能
プラットフォーム対応
- Linux x64、macOS(Intel/Apple Silicon)、Windows x64 をすべてサポート
クイックスタート
ロードマップ
- V1: MCP と JS クライアントを通じたブラウザ制御に注力
- V2 計画
- Python および Java クライアント
- Cortex(メモリ・ナビゲーション層)
- Retina(録画拡張機能)
- 動画録画、AI ベースの要素検索機能
1件のコメント
Hacker Newsのコメント
Seleniumのおかげでキャリアに大きな変化があった。本当に感謝している
最近はPlaywrightを使っているが、Vibiumの新しいアプローチが気になる
VibiumがJS注入、DOM変更、ネットワークリクエストの監視・変更をサポートするのか気になる。Playwrightを使うときはほぼ常にこれらの機能を使っている
面白い。最近はdev-browserを使ってコンテキスト節約と高速化の恩恵を得ていた。Vibiumもぜひ試してみる予定
10年以上UI自動化で生計を立ててきた立場から、Seleniumには感謝している。今はPlaywrightが事実上の標準だが、Seleniumが元祖ブラウザドライバだった。VibiumがPlaywrightとどう違うのか気になる
以前SeleniumでAtlassianのテスト拡張を手伝っていた者。13〜15年前くらいに会話した記憶がある。いまもこの分野で活動しているのはうれしい
古いSeleniumスクリプトをVibiumに移行したら、**テスト失敗時の自己修復(self-heal)**機能を活用できるのか気になる
エージェントが
browser_screenshotで画面をキャプチャしたあとクリックするには、CSSセレクタをどう見つけるのかが気になる。スクリーンショットだけでは要素タイプを判断しにくいbrowser_evaluateツールを追加し、JSでアクセシビリティツリーを取得してそれを基に探索できるようにした。詳しくはV2ロードマップを参照Claudeのようなツールにブラウザ自動化を自由に使わせるには、特定のURLだけを許可するブラウザロック機能が必要。こうした機能がロードマップにあるのか気になる
browser_navigateフックで簡単に制御できる。ホワイトリスト用スクリプトは5分で設定できる。より複雑なポリシーはcupcakeとRegoで実装できる。参考: Claude Code HooksドキュメントSkyvernに似たものを作ろうと考えていたが、なぜSelenium拡張ではなく新しいVibiumを作ったのかが気になる
ブラウザとLLM間の**コンテキスト肥大化(context bloat)**問題をどう処理しているのか気になる。Playwrightのようにトレーシングファイルを公開したり、JS実行を許可したりする予定があるのかも質問している