codex-browser-bridge
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 7 GitHub stars
Code Fail
- fs module — File system access in .github/workflows/ci.yml
- process.env — Environment variable access in .github/workflows/release.yml
- fs module — File system access in .github/workflows/release.yml
- child_process — Shell command execution capability in npm/bin/codex-browser-bridge.js
- spawnSync — Synchronous process spawning in npm/bin/codex-browser-bridge.js
- fs module — File system access in npm/bin/codex-browser-bridge.js
- process.env — Environment variable access in npm/scripts/install.js
- fs module — File system access in npm/scripts/install.js
- fs.rmSync — Destructive file system operation in npm/scripts/install.test.js
- fs module — File system access in npm/scripts/install.test.js
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Expose Codex Desktop's Chrome browser bridge as an MCP server for Claude Code and other agents.
codex-browser-bridge
Let Claude Code and other MCP agents control your existing Chrome browser through Codex Desktop's browser bridge.
codex-browser-bridge exposes Codex Desktop's Chrome browser bridge as an MCP server.
It connects to the local Codex browser named pipe, speaks the same length-prefixed JSON-RPC protocol, and provides browser-control tools to Claude Code or any MCP-compatible agent.
Why
Codex Desktop can talk to its Chrome extension through a privileged native pipe. Other agents, such as Claude Code, cannot directly access that internal bridge.
This project reuses the local browser bridge that already exists on your machine and wraps it as an MCP server.
That means an agent can:
- inspect your current browser tabs
- claim an existing tab
- open and close tabs
- navigate pages
- capture screenshots
- read DOM / accessibility snapshots
- click, type, scroll, and evaluate JavaScript
Useful when an agent needs to work with pages that require a real browser session, such as dashboards, logged-in web apps, local development servers, or documentation sites.
Status
Version 1.7.0 is a local Windows tool for Codex Desktop and the Codex Chrome Extension. It supports both known Codex browser pipe name formats:
codex-browser-use-<uuid>codex-browser-use\<uuid>
Run the bridge for local development and controlled automation on a single trusted machine.
The bridge binary is pure Rust. Tagged releases build x64 and arm64 Windows binaries, published to GitHub Releases and npm.
Features
- MCP server over stdio
- Single Windows binary
- No browser profile copying
- Uses your existing Chrome session
- Auto-discovers
codex-browser-use-*named pipes - Talks to Codex Desktop's extension host through JSON-RPC
- Uses Chrome DevTools Protocol commands for page control
- Includes an interactive CLI mode for debugging
Requirements
- Windows
- Chrome
- Codex Desktop running
- Codex Chrome Extension installed and enabled
- Rust 1.85+
The bridge connects to local named pipes created by Codex Desktop. If no pipe is found, start Codex Desktop first and make sure the extension is active.
Installation
Recommended: npm
npm i -g @delicious233/codex-browser-bridge
Alternative: Download a release
https://github.com/DeliciousBuding/codex-browser-bridge/releases
Download codex-browser-bridge.exe and place it somewhere in your PATH.
Alternative: Build from source
git clone https://github.com/DeliciousBuding/codex-browser-bridge.git
cd codex-browser-bridge
cargo build --locked --release
Quick Start with Claude Code
Add the MCP server to your Claude Code settings.
{
"mcpServers": {
"codex-browser": {
"command": "codex-browser-bridge",
"args": ["-mode", "mcp"],
"transport": "stdio"
}
}
}
If you built from source, use the absolute path instead:
{
"mcpServers": {
"codex-browser": {
"command": "D:/path/to/codex-browser-bridge/bin/codex-browser-bridge.exe",
"args": ["-mode", "mcp"],
"transport": "stdio"
}
}
}
Restart Claude Code after editing the settings file.
Then ask the agent things like:
List my open browser tabs.
Open https://example.com in a new tab and take a screenshot.
Claim my current documentation tab and summarize what is visible.
CLI Usage
The binary has three modes.
MCP mode
Default mode. Used by Claude Code or other MCP clients.
codex-browser-bridge -mode mcp
Discover mode
Lists active Codex browser named pipes.
codex-browser-bridge -mode discover
Example output:
[
{
"Name": "codex-browser-use-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"UUID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
]
Interactive CLI mode
Useful for debugging the bridge without an MCP client.
codex-browser-bridge -mode cli
Connect to a specific pipe:
codex-browser-bridge -mode cli -pipe "codex-browser-use-<uuid>"
Available CLI commands:
tabs
create
close <tab_id>
user-tabs
claim <tab_id>
nav <tab_id> <url>
snapshot <tab_id>
screenshot <tab_id>
info
ping
try <method> [json_params]
quit
CLI output can include pipe IDs, tab titles, full URLs, screenshots, and page text from logged-in tabs. Redact that output before posting bug reports or feature requests.
MCP Tools
Tab management
| Tool | Description |
|---|---|
codex_list_tabs |
List tabs managed by the current bridge session |
codex_create_tab |
Create a new browser tab |
codex_close_tab |
Close a browser tab |
codex_user_tabs |
List open tabs across browser windows |
codex_claim_tab |
Claim an existing user tab for automation |
Navigation
| Tool | Description |
|---|---|
codex_navigate |
Navigate a tab to a URL |
codex_navigate_back |
Navigate a tab back one entry in its history |
codex_navigate_forward |
Navigate a tab forward one entry in its history |
codex_reload |
Reload a tab |
codex_wait_for_load |
Poll document.readyState until complete |
Page inspection
| Tool | Description |
|---|---|
codex_screenshot |
Capture a screenshot (returns MCP image). fullPage is reserved for a future release. The current implementation captures the viewport. |
codex_dom_snapshot |
Get an accessibility tree snapshot |
codex_dom_get_visible |
Get a simplified visible DOM tree (human-readable; use codex_dom_snapshot for node IDs usable with codex_dom_click) |
codex_evaluate |
Evaluate JavaScript in the page context |
codex_get_info |
Get backend information from the extension |
Interaction
| Tool | Description |
|---|---|
codex_click |
Click an element by CSS selector |
codex_fill |
Fill an input by CSS selector |
codex_dom_click |
Click a DOM node by accessibility node ID from codex_dom_snapshot |
codex_cua_click |
Click by screen coordinates |
codex_cua_type |
Type text at the current focus |
codex_cua_keypress |
Press keyboard keys |
codex_cua_scroll |
Scroll by coordinates |
Session
| Tool | Description |
|---|---|
codex_name_session |
Assign a human-readable name to the browser session |
codex_finalize |
Finalize the session and clean up tabs |
CDP & Network (new in v1.7.0)
| Tool | Description |
|---|---|
codex_execute_cdp |
Execute any CDP command (allowlist-protected) |
codex_page_assets |
List page resources (images, fonts, CSS, JS) via CDP |
codex_network_cookies |
Get cookies (values redacted by default) |
codex_network_set_cookie |
Set a browser cookie (URL validated) |
Architecture
MCP Client
Claude Code / other agent
│
│ stdio JSON-RPC
▼
codex-browser-bridge
Rust binary
│
│ length-prefixed JSON-RPC frames
▼
Windows Named Pipe
\\.\pipe\codex-browser-use-*
│
▼
Codex Desktop extension host
│
▼
Codex Chrome Extension
│
▼
Chrome tabs
How It Works
- The bridge searches for local named pipes matching
codex-browser-use-*. - It connects to the selected pipe through the Windows named pipe API.
- Every request is encoded as a 4-byte little-endian length prefix followed by a JSON-RPC payload.
- Browser operations are sent to the Codex extension host.
- Page-level operations use Chrome DevTools Protocol commands such as
Page.navigate,Page.captureScreenshot,Runtime.evaluate, andInput.dispatchMouseEvent. - The MCP layer exposes these operations as
codex_*tools.
Security Notes
This tool gives an agent access to your active browser session.
Use it with the same caution you would apply to browser automation tools:
- do not expose the bridge to a network port
- do not run it for untrusted MCP clients
- review agent actions before allowing sensitive operations
- avoid using it on pages containing passwords, payment details, private tokens, or production admin consoles
- remember that claimed tabs may already be logged in
- redact tab titles, URLs, DOM text, screenshots, pipe IDs, and debug logs before sharing output
The project is intended for local development and controlled automation.
Troubleshooting
No pipe found
No codex-browser-use pipes found. Is Codex Desktop running?
Check:
- Codex Desktop is running
- Chrome is running
- Codex Chrome Extension is installed and enabled
- the extension has been initialized by Codex Desktop
Claude Code does not show the tools
Check:
- the binary is in
PATH - the MCP server config points to the correct executable
- Claude Code was restarted after editing settings
codex-browser-bridge -mode discoverworks in a terminal
CDP command fails
Some browser operations require the bridge to attach to the tab before sending CDP commands. If a tab was opened outside the bridge, list user tabs first, then claim the target tab.
Development
git clone https://github.com/DeliciousBuding/codex-browser-bridge.git
cd codex-browser-bridge
cargo check --locked # fast check
cargo test --locked # run all tests
cargo clippy --locked -- -D warnings # lint
cargo build --locked --release # release build → target/release/codex-browser-bridge.exe
Roadmap
See ROADMAP.md for the full project roadmap. Highlights:
codex_fullpage_screenshot— true full-page capture via CDP clip + scroll composecodex_network_monitor— request/response inspection viaNetwork.enablecodex_emulate_device— mobile viewport emulation- Non-Windows transport abstraction (WSL / Unix socket fallback)
License
MIT License.
Project Relationship
Maintained independently from OpenAI, Codex Desktop, Anthropic, Claude Code, Google, and Chrome.
Acknowledgments
Thanks to LINUX DO for the community support and feedback.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found