14 ポイント 投稿者 GN⁺ 2025-12-25 | 1件のコメント | WhatsAppで共有
  • 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エージェント統合

  • Claude Code にブラウザ制御機能を追加するコマンド:
    claude mcp add vibium -- npx -y vibium  
    
    • Chrome は自動でダウンロードされるため、追加設定は不要
  • 提供コマンド一覧
    • browser_launch: ブラウザ起動
    • browser_navigate: URL へ移動
    • browser_find: CSS セレクタで要素を検索
    • browser_click: 要素をクリック
    • browser_type: テキスト入力
    • browser_screenshot: ビューポートをキャプチャ
    • browser_quit: ブラウザ終了

人間のユーザー向けインストール

  • 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 をすべてサポート

クイックスタート

  • ライブラリ利用例
    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 連携例
    • インストール後、「Go to example.com and click the first link」のような命令でブラウザ操作が可能

ロードマップ

  • V1: MCP と JS クライアントを通じたブラウザ制御に注力
  • V2 計画
    • Python および Java クライアント
    • Cortex(メモリ・ナビゲーション層)
    • Retina(録画拡張機能)
    • 動画録画、AI ベースの要素検索機能

1件のコメント

 
GN⁺ 2025-12-25
Hacker Newsのコメント
  • Seleniumのおかげでキャリアに大きな変化があった。本当に感謝している
    最近はPlaywrightを使っているが、Vibiumの新しいアプローチが気になる

    • PlaywrightはWebSockets+JSONベースの高速なブラウザ制御で大きく前進した。Vibiumはこれに対応するW3C WebDriver BiDi標準を使っている。目標は、Playwrightのような「数クリックで終わる」優れた開発体験を提供すること
    • すでにPlaywrightを使っているなら、Stagehandを試してみることを勧める。APIは似ているが、テスト用ではなく自動化用に設計されている
  • VibiumがJS注入、DOM変更、ネットワークリクエストの監視・変更をサポートするのか気になる。Playwrightを使うときはほぼ常にこれらの機能を使っている

    • まだサポートしていないが、ロードマップには含まれている。Playwrightの長所を取り入れ、それを超えて拡張していくのが目標
    • 個人的にはネットワークリクエストのモニタリングだけでも十分。Flutter + Amazon AppSyncアプリはデバッグがあまりにも難しい
  • 面白い。最近はdev-browserを使ってコンテキスト節約と高速化の恩恵を得ていた。Vibiumもぜひ試してみる予定

    • Vibiumでもこのようなskillベースの拡張性をサポートする計画
  • 10年以上UI自動化で生計を立ててきた立場から、Seleniumには感謝している。今はPlaywrightが事実上の標準だが、Seleniumが元祖ブラウザドライバだった。VibiumがPlaywrightとどう違うのか気になる

    • Playwrightは「速度」の面では先行しているが、Seleniumはいまでも世界中に深く根付いたエコシステムを持っている。Vibiumは、Seleniumユーザーが自然に未来型エージェントコーディングへ移行できる橋を作る計画
  • 以前SeleniumでAtlassianのテスト拡張を手伝っていた者。13〜15年前くらいに会話した記憶がある。いまもこの分野で活動しているのはうれしい

  • 古いSeleniumスクリプトをVibiumに移行したら、**テスト失敗時の自己修復(self-heal)**機能を活用できるのか気になる

    • たとえて言えば、私は今島のリゾートを建てているところ。橋(マイグレーションパス)は後で作る予定。まずリゾートに魅力があれば、橋を架ける理由が生まれる。今はリゾート建設に集中しているが、橋もぜひ作りたい
  • エージェントがbrowser_screenshotで画面をキャプチャしたあとクリックするには、CSSセレクタをどう見つけるのかが気になる。スクリーンショットだけでは要素タイプを判断しにくい

    • 現在のMCPサーバーには完全な自律探索機能が不足している。私のフォークではbrowser_evaluateツールを追加し、JSでアクセシビリティツリーを取得してそれを基に探索できるようにした。詳しくはV2ロードマップを参照
  • Claudeのようなツールにブラウザ自動化を自由に使わせるには、特定のURLだけを許可するブラウザロック機能が必要。こうした機能がロードマップにあるのか気になる

    • Claude Codeを使うなら、browser_navigateフックで簡単に制御できる。ホワイトリスト用スクリプトは5分で設定できる。より複雑なポリシーはcupcakeとRegoで実装できる。参考: Claude Code Hooksドキュメント
    • Claudeの**「blast radius」リスク**はよく理解している。私もVibiumの開発はUTM VMの中で行っている。ネットワークルールの追加も検討中。すでにV2ロードマップは公開しており、V3の草案も準備する必要がありそう
    • 最も確実な方法は、ファイアウォール付きコンテナの中で短いホワイトリストだけを許可すること
  • Skyvernに似たものを作ろうと考えていたが、なぜSelenium拡張ではなく新しいVibiumを作ったのかが気になる

    • Vibium v1発表文で一部説明している。SeleniumやPlaywrightはAI中心の設計ではなかった。Vibiumは最初から**AIベースの「vibe coding」**向けに最適化された構造として設計されている
  • ブラウザとLLM間の**コンテキスト肥大化(context bloat)**問題をどう処理しているのか気になる。Playwrightのようにトレーシングファイルを公開したり、JS実行を許可したりする予定があるのかも質問している

    • ブラウザへの露出は段階的に拡大していく予定。コンテキスト肥大化は、まだどこも完全には解決できていない。長期的には「MCPを使わない方向」が答えになるかもしれない。現在のVibiumはMCPサーバーとJS/TS APIの両方を提供している。JS/TS APIでは任意のJS実行が可能。エージェントがVibiumスクリプトを書いて実行する方式が、コンテキスト肥大化を減らす迂回策になる可能性もある