opencode-chromium
Community und Roadmap
Die Roadmap wird von den Nutzern gestaltet – eröffnen Sie einen Vorschlag, stimmen Sie mit Reaktionen ab und verfolgen Sie Ankündigungen auf GitHub Discussions:
Funktionsanfragen – starten Sie einen Vorschlag (die Vorlage hält ihn strukturiert): beschreiben Sie das Problem und den Workflow, den er ermöglichen soll; andere stimmen mit 👍/❤️-Reaktionen ab. Die Betreuer sortieren abgestimmte Vorschläge in die anstehenden Arbeiten ein und kennzeichnen sie mit ihrem Status (
geplant,in Arbeit,veröffentlicht). Vorschlag eröffnen →Ankündigungen – Veröffentlichungen, Roadmap-Status und Hinweise der Betreuer. Ankündigungen folgen →
Vorgehen – Funktionsanfragen betreffen das, was dieses Repository veröffentlicht (Laufzeit, Erweiterung, nativer Host, Fähigkeiten); Fehlerberichte und Sicherheitslücken gehören stattdessen in die GitHub Issues.
Related MCP server: agent-browser
Was enthalten ist
Vier kompakte Standardwerkzeuge:
browser_run,browser_observe,browser_sessionundbrowser_finalize.Die vollständige Multi-Operation-Browser-Engine hinter expliziten Kompatibilitäts- und Fähigkeitsmodi.
Kontextarme Belege: Beobachtungszusammenfassungen lassen leere Felder, doppelten Text und ausführliches
html/stylesweg (nur überdetail: "debug"verfügbar), und Inline-Antworten bleiben innerhalb des 4.096-Zeichen-Budgets, wobei übergroße Ausgaben in Artefakt-Ressourcen ausgelagert werden.Natives Hover, JavaScript-Dialogbehandlung mit Genehmigungssteuerung und PNG/JPEG/WebP-Screenshots mit Qualitätskontrolle.
Nicht aufdringliche Hintergrundautomatisierung: Klicks, Tippen und Navigation aktivieren den Tab nie und holen sein Fenster nicht in den Vordergrund, sodass Sie weiterarbeiten können, während das Werkzeug einen Hintergrund-Tab steuert.
Ursprungsrichtlinie auf Serverebene (erlaubte/blockierte Ursprungs-Globs) und Datei-Root-Beschränkungen für Uploads.
Persistente Sitzungsemulation (Viewport, Netzwerk, CPU, Geolokalisierung, Farbschema, User-Agent, Header, Initialisierungsskripte) mit automatischem Zurücksetzen beim Abschließen.
Netzwerkanfragen-Aufschlüsselung nach requestId mit artefaktgestütztem Body-Überlauf und Quellcode-zugeordneten Konsolen-Stack-Traces.
Leistungsdiagnose: Der
browser_observe-Modusdiagnosticzeichnet CDP-Traces auf und berechnet LCP, CLS, lange Aufgaben, TBT und mehr im nativen Host; rohe Traces sind artefaktorientiert und CrUX/Felddaten bleiben aus.Snowflake-Standardsuche mit expliziten lexikalischen/automatischen Alternativen und Qwen-Tiefensuche ohne Laden von Modellen in der Erweiterung.
Profilbewusste Sitzungen, Tab-Eigentum, Wiederherstellung veralteter Ziele, begrenzte Lese-Wiederholungen, bedingtes Absetzen, Genehmigungen und Artefakt-Ressourcen.
MCP-stdio- und Loopback-/authentifizierte HTTP-Transporte mit protokollsauberer Standardausgabe.
Ein nativer OpenCode-V2-Adapter und gemeinsame OpenAI-, Anthropic-, Gemini- und MCP-Schema-Adapter.
Schnellstart (npm)
Installieren Sie das veröffentlichte Paket einmal und verbinden Sie dann einen beliebigen unterstützten Client. Das Paket enthält die CLI (opencode-chromium), die MCP-Server-Binärdatei (opencode-chromium-mcp), die Browsererweiterung und den Installer für den nativen Host:
npx -y opencode-chromium-mcpClient | Oberfläche | Einrichtung |
OpenCode V2 | Natives Plugin |
|
Codex | MCP-Server (stdio) |
|
Beliebiger MCP-Client | MCP-Server (stdio) |
|
Direktes JavaScript | SDK ( |
|
1. Paket installieren
npm install -g opencode-chromium2. Browsererweiterung laden
Installieren Sie opencode-chromium aus dem Chrome Web Store. Der Ablauf mit entpackter Erweiterung unten bleibt für die Entwicklung und lokale Tests verfügbar.
Öffnen Sie chrome://extensions, aktivieren Sie den Entwicklermodus und laden Sie den entpackten Ordner extension/ aus dem installierten Paket:
npm root -g
# load "<that path>\opencode-chromium\extension" as an unpacked extensionDie Erweiterungs-ID wird aus dem Ladepfad abgeleitet. Behalten Sie den Ordner daher an seinem Speicherort. Notieren Sie die in chrome://extensions angezeigte ID.
3. Nativen Messaging-Host installieren
node "$(npm root -g)/opencode-chromium/scripts/install-native-host.js" --extension-id <extension-id> --browsers chrome4. Einen Client verbinden
OpenCode V2 – fügen Sie den Paketnamen zur globalen ~/.config/opencode/opencode.json hinzu:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-chromium"]
}Codex – registrieren Sie den erforderlichen MCP-Server:
codex mcp add opencode-browser-plugin -- npx -y opencode-chromium-mcpBeliebiger MCP-Client – fügen Sie den stdio-Server hinzu:
{
"mcpServers": {
"opencode-browser-plugin": {
"command": "npx",
"args": ["-y", "opencode-chromium-mcp"]
}
}
}Direktes JavaScript – importieren Sie die SDK-Laufzeit oder den MCP-Server programmatisch (siehe docs/direct-sdk.md).
5. Überprüfen
opencode-chromium doctor --json
opencode-chromium verifyAlle vier Werkzeuge (browser_run, browser_observe, browser_session,
browser_finalize) sind dann in jedem verbundenen Client verfügbar. Aktivieren Sie
nicht sowohl den nativen OpenCode-Adapter als auch den MCP-Server in einer
Client-Sitzung, sofern keine doppelten Werkzeuge beabsichtigt sind.
Anforderungen
Node.js 20 oder neuer für das npm-Paket und das SDK.
Bun 1.1 oder neuer beim Erstellen aus dem Quellcode oder Ausführen der Repository-Skripte.
Ein Chromium-basierter Browser mit geladener entpackter
extension/.Der native Messaging-Host, installiert für die Erweiterungs-ID.
Installieren und Erstellen
bun install --frozen-lockfile
bun run build
bun test
bun run checkDas Paket wird als 1.6.1 unter dem npm-Namen opencode-chromium veröffentlicht. Die stabile Laufzeit- und MCP-Server-Identität bleibt aus Kompatibilitätsgründen opencode-browser-plugin.
MCP
Führen Sie den Server mit vier Werkzeugen über stdio aus:
bun run mcpOder verwenden Sie die gebündelte Binärdatei:
opencode-chromium-mcpLoopback-Streamable-HTTP ist verfügbar mit:
bun run mcp:httpNicht-Loopback-HTTP erfordert ein Bearer-Token in AGENT_BROWSER_AUTH_TOKEN (oder der mit --auth-token-env ausgewählten Variable). Der Standard-Servername ist opencode-browser-plugin. Die Sicherheitskonfiguration für Ursprung und Datei-Root erfolgt auf Serverebene: Übergeben Sie --allowed-origin / --blocked-origin-Globs oder setzen Sie AGENT_BROWSER_ALLOWED_ORIGINS, AGENT_BROWSER_BLOCKED_ORIGINS und AGENT_BROWSER_ALLOWED_FILE_ROOTS (siehe docs/mcp.md).
OpenCode V2
Das Paket-Root exportiert den nativen Adapter unter Verwendung der offiziellen { id, server() }-Pfad-Plugin-Modulform von OpenCode 1.18.x, zusammen mit dem V2-Einrichtungsvertrag:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-chromium"]
}Für einen lokalen Build verweisen Sie den Client auf dist/adapters/opencode/index.js oder verwenden Sie den Befehl opencode-chromium install --client opencode. Der Adapter registriert genau vier Werkzeuge, setzt codemode: false und gibt eine Bereinigungsfunktion für Neuladungen zurück.
Dieselbe Browserlaufzeit ist über den MCP-Kompatibilitätsmodus verfügbar; aktivieren Sie nicht beide Oberflächen in einer Client-Sitzung, sofern keine doppelten Werkzeuge beabsichtigt sind.
Codex
Registrieren Sie den MCP-Server aus dem npm-Paket:
codex mcp add opencode-browser-plugin -- npx -y opencode-chromium-mcp
codex mcp listRegistrieren Sie aus einem lokalen Checkout dist/adapters/mcp/server.js mit Bun:
codex mcp add opencode-browser-plugin -- bun C:\absolute\path\to\dist\adapters\mcp\server.jsDie gebündelte Fähigkeit ist skills/opencode-browser-plugin/SKILL.md. Sie folgt dem offenen Agent Skills-Standard und deckt Connector-First-Routing, Profilauswahl, Aktionsbündelung, Snowflake-Standardsuche, Genehmigungstokens, Artefakte und Abschluss ab. Sie wird mit agents/openai.yaml für die ChatGPT/Codex-Desktop-Skills-Auswahl und MCP-Abhängigkeitsmetadaten ausgeliefert.
Installieren Sie sie für alle Skills-kompatiblen Clients auf einmal:
opencode-chromium install --client skills
opencode-chromium install --client skills --dry-run
opencode-chromium uninstall --client skillsDies kopiert die Fähigkeit nach ~/.codex/skills/, ~/.claude/skills/ und ~/.agents/skills/ (unter opencode-browser-plugin/) und registriert einen aktivierten [[skills.config]]-Eintrag in ~/.codex/config.toml, während ein veralteter opencode-browser-adapter-Eintrag entfernt wird.
Nativer Host und Erweiterung
Laden Sie extension/ als entpackte Erweiterung und installieren Sie dann den Host:
bun run install:native-host -- --extension-id <extension-id> --browsers chrome
bun run check:native-host -- --jsonVerwenden Sie AGENT_BROWSER_*-Umgebungsvariablen für die neue Konfiguration. Die älteren OPENCODE_BROWSER_*-Namen bleiben während des 1.x-Kompatibilitätsfensters Aliase mit niedrigerer Priorität.
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-runInstallieren und Deinstallieren sichern die benannte Konfiguration, bevor sie geändert wird, berühren nur den kanonischen Eintrag, unterstützen Probeläufe und melden geänderte Dateien.
Kontext und Fähigkeiten
Die Standard-Werkzeugschemata bleiben klein. Fordern Sie erweiterte Beschreibungen an über:
{"mode":"capabilities","pack":"downloads"}Führen Sie erweiterte Arbeiten über browser_run aus, ohne Werkzeuge der obersten Ebene hinzuzufügen:
{
"steps": [{
"action": "capability",
"capability": "downloads.events",
"input": {}
}]
}Für ein tiefgehendes Anfrage-/Antwort-Debugging fordern Sie das träge Netzwerkpaket nur bei Bedarf an:
{"mode":"capabilities","pack":"network"}Führen Sie dann network.inspect in browser_run mit dem Ziel-tabId aus. Es folgt dem CDP-Anfrage-/Antwort-Lebenszyklus des Tabs, unterstützt URL-/Methode-/Typ-/Status-/requestId-Filter und gibt geschwärzte Header nur zurück, wenn includeHeaders angefordert wird. Textkörper bleiben deaktiviert, sofern nicht ausdrücklich angefordert und genehmigt; bodyDelivery: "artifact" leitet zugelassene Textkörper an den Artefaktspeicher weiter, anstatt Inline-Vorschauen zu verwenden. Der browser_observe-Modus inspect mit target.requestId gibt die Lebenszyklusdetails einer einzelnen Anfrage zurück.
Große Ergebnisse und Screenshots sind artefaktorientiert. MCP-Clients rufen sie über browser://sessions/<session-id>/artifacts/<artifact-id> ab; OpenCode kann denselben URI mit dem browser_observe-Modus artifact anfordern.
Repository-Struktur
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Überprüfung und Veröffentlichung
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:releaseDie Veröffentlichungsprüfung lehnt veraltete V1-Pfade, persönliche Zustände, doppelte Legacy-Paketoberflächen, Schema-Wachstum über das Budget hinaus und Tarballs ohne die erstellten Adapter ab.
GitHub Actions führt dieselbe Überprüfung bei Pull-Requests und master-Pushes durch. Eine Veröffentlichung erfolgt nur über ein passendes v*-Tag durch die geschützte npm-production-Umgebung unter Verwendung von npm Trusted Publishing; es wird kein npm-Token im Repository oder Workflow gespeichert.
Sicherheit
Browserinhalte sind nicht vertrauenswürdig. Folgenreiche Aktionen erfordern kurzlebige, unveränderliche Genehmigungstokens; Schreibvorgänge werden nach unsicherer Ausführung nie automatisch wiederholt. Artefakte sind sitzungsbezogen, laufen ab, verhindern Pfadumgehungen und werden nicht in Protokollen gespeichert. MCP-Protokolldaten verbleiben in der Standardausgabe und Diagnosen im Standardfehlerkanal.
Siehe docs/architecture.md, docs/security.md, docs/compatibility.md und docs/migration-1.0.md.
Lizenz
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