opencode-chromium
コミュニティとロードマップ
ロードマップはユーザーによって形作られます。提案を開き、リアクションで投票し、 GitHub Discussions で お知らせをフォローしてください:
機能リクエスト — 提案を開始します(テンプレートが構造を保ちます): 問題と、それが実現すべきワークフローを説明してください。他のユーザーは 👍/❤️ リアクションで投票します。メンテナーは投票された提案を今後の作業にトリアージし、 ステータス(
planned、in progress、released)をタグ付けします。 提案を開く →お知らせ — リリース、ロードマップの状況、メンテナーのメモ。 お知らせをフォロー →
プロトコル — 機能リクエストはこのリポジトリが公開するもの(ランタイム、拡張機能、ネイティブホスト、スキル)に関するものです。バグ報告とセキュリティ発見はGitHub Issuesに属します。
Related MCP server: agent-browser
提供されるもの
browser_run、browser_observe、browser_session、browser_finalizeの4つのコンパクトなデフォルトツール。明示的な互換性モードと機能モードの背後にある完全なマルチオペレーションブラウザエンジン。
コンテキストを抑えた証拠: 観察サマリーは空のフィールド、重複テキスト、冗長な
html/styles(detail: "debug"でのみ利用可能)を省略し、インライン応答は4,096文字の予算内に収め、過大な出力はアーティファクトリソースに溢れさせます。ネイティブなホバー、承認ゲート付きJavaScriptダイアログ処理、品質管理付きpng/jpeg/webpスクリーンショット。
非侵入型のバックグラウンド自動化: クリック、タイピング、ナビゲーションはタブをアクティブにしたりウィンドウを前面に持ってきたりしないため、ツールがバックグラウンドタブを操作している間も作業を続けられます。
サーバーレベルのオリジンポリシー(許可/ブロックされたオリジングロブ)とアップロードのファイルルート制限。
永続セッションエミュレーション(ビューポート、ネットワーク、CPU、位置情報、カラースキーム、ユーザーエージェント、ヘッダー、初期化スクリプト)と、ファイナライズ時の自動リセット。
requestIdによるネットワークリクエストのドリルダウン、アーティファクトバックアップによるボディの溢れ出し、ソースマップされたコンソールスタックトレース。
パフォーマンス診断:
browser_observeモードdiagnosticはCDPトレースを記録し、ネイティブホストでLCP、CLS、ロングタスク、TBTなどを計算します。生のトレースはアーティファクト優先で、CrUX/フィールドデータはオフのままです。Snowflakeデフォルトのページ検索と、明示的な語彙/自動の代替手段、拡張機能にモデルを読み込まずにQwen深層検索。
プロファイル対応セッション、タブ所有権、古いターゲットの回復、制限付き読み取り再試行、条件付きセトリング、承認、アーティファクトリソース。
MCP stdioとループバック/認証付きHTTPトランスポート、プロトコルクリーンなstdout。
ネイティブなOpenCode V2アダプターと、共有のOpenAI、Anthropic、Gemini、MCPスキーマアダプター。
クイックスタート(npm)
公開パッケージを一度インストールすれば、サポートされている任意のクライアントに接続できます。パッケージにはCLI(opencode-chromium)、MCPサーバーbin(opencode-chromium-mcp)、ブラウザ拡張機能、ネイティブホストインストーラーが同梱されています:
npx -y opencode-chromium-mcpクライアント | サーフェス | セットアップ |
OpenCode V2 | ネイティブプラグイン |
|
Codex | MCPサーバー (stdio) |
|
任意のMCPクライアント | MCPサーバー (stdio) |
|
直接JavaScript | SDK ( |
|
1. パッケージをインストール
npm install -g opencode-chromium2. ブラウザ拡張機能を読み込む
Chrome Web Storeからopencode-chromiumをインストール。 以下のアンパックフローは、開発とローカルテストのために引き続き利用できます。
chrome://extensions を開き、デベロッパーモードを有効にして、インストール済みパッケージから展開された extension/ フォルダーを読み込みます:
npm root -g
# load "<that path>\opencode-chromium\extension" as an unpacked extension拡張機能IDは読み込みパスから派生するため、フォルダーはその場所に置いてください。chrome://extensions に表示されるIDをメモしてください。
3. ネイティブメッセージングホストをインストールする
node "$(npm root -g)/opencode-chromium/scripts/install-native-host.js" --extension-id <extension-id> --browsers chrome4. クライアントを接続する
OpenCode V2 — グローバルの ~/.config/opencode/opencode.json にパッケージ名を追加します:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-chromium"]
}Codex — 必要なMCPサーバーを登録します:
codex mcp add opencode-browser-plugin -- npx -y opencode-chromium-mcp任意のMCPクライアント — stdioサーバーを追加します:
{
"mcpServers": {
"opencode-browser-plugin": {
"command": "npx",
"args": ["-y", "opencode-chromium-mcp"]
}
}
}直接JavaScript — SDKランタイムまたはMCPサーバーをプログラムでインポートします (docs/direct-sdk.md を参照)。
5. 検証する
opencode-chromium doctor --json
opencode-chromium verify4つのツール(browser_run、browser_observe、browser_session、
browser_finalize)は、接続されたすべてのクライアントで利用可能になります。重複ツールが意図的でない限り、1つのクライアントセッションでネイティブOpenCodeアダプタとMCPサーバーの両方を有効にしないでください。
要件
npmパッケージとSDKにはNode.js 20以降。
ソースからビルドする場合、またはリポジトリスクリプトを実行する場合はBun 1.1以降。
展開された
extension/が読み込まれたChromium系ブラウザ。拡張機能ID用のネイティブメッセージングホストがインストールされていること。
インストールとビルド
bun install --frozen-lockfile
bun run build
bun test
bun run checkパッケージはnpm名 opencode-chromium で 1.6.1 としてリリースされています。安定したランタイムとMCPサーバーのIDは、クライアント互換性のために opencode-browser-plugin のままです。
MCP
stdioで4ツールサーバーを実行します:
bun run mcpまたはパッケージ化されたバイナリを使用します:
opencode-chromium-mcpループバックStreamable HTTPは以下で利用できます:
bun run mcp:http非ループバックHTTPには、AGENT_BROWSER_AUTH_TOKEN(または --auth-token-env で選択した変数)にベアラートークンが必要です。デフォルトのサーバー名は opencode-browser-plugin です。オリジンとファイルルートの安全設定はサーバーレベルです: --allowed-origin / --blocked-origin グローバルを渡すか、AGENT_BROWSER_ALLOWED_ORIGINS、AGENT_BROWSER_BLOCKED_ORIGINS、AGENT_BROWSER_ALLOWED_FILE_ROOTS を設定します(docs/mcp.md を参照)。
OpenCode V2
パッケージルートは、OpenCode 1.18.xの公式 { id, server() } パスプラグインモジュール形状を使用したネイティブアダプタを、V2セットアップコントラクトとともにエクスポートします:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-chromium"]
}ローカルビルドの場合は、クライアントを dist/adapters/opencode/index.js に向けるか、
opencode-chromium install --client opencode コマンドを使用します。アダプタは
正確に4つのツールを登録し、codemode: false を設定し、リロード用のクリーンアップ
関数を返します。
同じブラウザランタイムはMCP互換モードでも利用できます。重複ツールが意図的でない限り、1つのクライアントセッションで両方のサーフェスを有効にしないでください。
Codex
npmパッケージからMCPサーバーを登録します:
codex mcp add opencode-browser-plugin -- npx -y opencode-chromium-mcp
codex mcp listローカルチェックアウトからは、Bunで dist/adapters/mcp/server.js を登録します:
codex mcp add opencode-browser-plugin -- bun C:\absolute\path\to\dist\adapters\mcp\server.js同梱のスキルは skills/opencode-browser-plugin/SKILL.md です。オープンな Agent Skills 標準に従い、コネクタ優先ルーティング、プロファイル選択、アクションバッチ処理、Snowflakeデフォルト検索、承認トークン、アーティファクト、ファイナライゼーションをカバーしています。ChatGPT/CodexデスクトップのSkillsピッカーとMCP依存関係メタデータ用に agents/openai.yaml が同梱されています。
スキル互換のすべてのクライアントに一度にインストールします:
opencode-chromium install --client skills
opencode-chromium install --client skills --dry-run
opencode-chromium uninstall --client skillsこれにより、スキルが ~/.codex/skills/、~/.claude/skills/、~/.agents/skills/(opencode-browser-plugin/ の下)にコピーされ、~/.codex/config.toml に有効な [[skills.config]] エントリが登録され、古い opencode-browser-adapter エントリは削除されます。
ネイティブホストと拡張機能
extension/ を展開された拡張機能として読み込み、ホストをインストールします:
bun run install:native-host -- --extension-id <extension-id> --browsers chrome
bun run check:native-host -- --json新しい設定には AGENT_BROWSER_* 環境変数を使用します。古い OPENCODE_BROWSER_* 名は、1.x互換ウィンドウを通じて優先度の低いエイリアスのままです。
CLI
opencode-chromium doctor --json
opencode-chromium verify
opencode-chromium install --client opencode --dry-run
opencode-chromium install --client opencode-mcp --dry-run
opencode-chromium install --client codex --dry-run
opencode-chromium install --client skills --dry-run
opencode-chromium uninstall --client codex --dry-run
opencode-chromium uninstall --client skills --dry-runインストールとアンインストールは、変更前に名前付き設定をバックアップし、正規のエントリのみに触れ、ドライランをサポートし、変更されたファイルを報告します。
コンテキストと機能
デフォルトのツールスキーマは小さく保たれています。高度な説明は以下からリクエストします:
{"mode":"capabilities","pack":"downloads"}トップレベルのツールを追加せずに、browser_run で高度な作業を実行します:
{
"steps": [{
"action": "capability",
"capability": "downloads.events",
"input": {}
}]
}詳細なリクエスト/レスポンスデバッグのために、必要なときだけ遅延ネットワークパックをリクエストします:
{"mode":"capabilities","pack":"network"}次に、browser_run でターゲットの tabId を指定して network.inspect を実行します。タブのCDPリクエスト/レスポンスライフサイクルに従い、URL/メソッド/タイプ/ステータス/requestIdフィルターをサポートし、includeHeaders がリクエストされた場合にのみ編集されたヘッダーを返します。ボディは明示的にリクエストされ承認されない限り無効のままです。bodyDelivery: "artifact" は、オプトインされたボディをインラインプレビューの代わりにアーティファクトストアに溢れさせます。browser_observe モード inspect と target.requestId は、単一リクエストのライフサイクル詳細を返します。
大きな結果とスクリーンショットはアーティファクト優先です。MCPクライアントは browser://sessions/<session-id>/artifacts/<artifact-id> で取得します。OpenCodeは browser_observe モード artifact で同じURIをリクエストできます。
リポジトリレイアウト
src/core/ shared runtime, schemas, safety, artifacts, versions
src/browser/ profile-aware IPC client, policies, and operation engine
src/adapters/mcp/ universal MCP server and transports
src/adapters/opencode/ native OpenCode V2 adapter
src/adapters/sdk/ provider schema adapters and direct agent API
src/cli/ install, configure, uninstall, doctor, verify
extension/ Manifest V3 browser integration
native-host/ native messaging host and semantic workers
skills/ provider-neutral browser skill
tests/ unit, contract, browser, and adapter regression tests
docs/ architecture, compatibility, security, and migration guides検証とリリース
bun run build
bun run check:schemas
bun run check:package
bun run check:mcp
bun run test:contracts
bun run test:opencode
bun run pack
bun run test:tarball
bun run check:releaseリリースチェックは、古いV1パス、個人の状態、重複したレガシーパッケージサーフェス、予算を超えるスキーマ成長、ビルドされたアダプタが欠落したターボールを拒否します。
GitHub Actionsは、プルリクエストと master プッシュで同じ検証を実行します。リリースは、保護された npm-production 環境を通じてnpm Trusted Publishingを使用して、一致する v* タグからのみ公開されます。npmトークンはリポジトリまたはワークフローに保存されません。
セキュリティ
ブラウザコンテンツは信頼されていません。重大なアクションには短命の不変の承認トークンが必要です。書き込みは不確実な実行後に自動的に繰り返されることはありません。アーティファクトはセッションスコープで、期限切れになり、トラバーサルを拒否し、ログに書き込まれません。MCPプロトコルデータはstdoutに、診断はstderrに残ります。
docs/architecture.md、docs/security.md、docs/compatibility.md、docs/migration-1.0.md を参照してください。
ライセンス
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Official Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.
Control a real browser from AI agents: navigate, click, type, screenshot, read the page.
Stealth web browser for agents: search, fetch, click, download and type in persistent MCP sessions.
Live browser debugging for AI assistants — DOM, console, network via MCP.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to control and interact with a Chrome browser via MCP, providing tools for navigation, screenshots, clicking, form filling, content extraction, and tab management.-
- AlicenseNot gradedqualityCmaintenanceProvides a headless Chromium browser through MCP, enabling AI agents to browse JavaScript-rendered pages, search the web, capture screenshots, extract tables and data, and run stateful multi-step interactions like clicking, typing, and form submission.1,109,090 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to control and inspect a live Chrome browser via MCP, including performance tracing, network and console debugging, screenshots, and reliable Puppeteer-based automation.2,262,793 npmApache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents and clients to control a real Chromium browser through MCP tool calls, including navigation, clicking, typing, JavaScript evaluation, screenshots, and DOM snapshots. Supports multiple isolated sessions over authenticated HTTP with no disk writes.Apache 2.0