chromium-sidecar

chromium-sidecar

Enables local AI agents to operate the user's existing browser session via a Manifest V3 extension and native messaging, supporting tabs, DOM snapshots, clicks, form input, JavaScript, screenshots, cookies, network capture, and Arc Spaces.

Category
Visit Server

README

Chromium Sidecar

Chromium Sidecar lets a local AI agent operate the browser session you already use. It combines a Manifest V3 extension, a local Native Messaging host, a command-line client, and a Codex plugin in one repository.

The portable core uses Chromium extension APIs for tabs, DOM snapshots, clicks, form input, JavaScript, screenshots, cookies, and filtered network capture. Optional providers add browser-specific features; the included Arc provider can list and focus Spaces on macOS.

Install

Requirements:

  • macOS
  • Node.js 20 or newer
  • Arc, Chrome, Chromium, Brave, Edge, or Vivaldi
  • Codex CLI, if the Codex plugin is wanted

Clone this repository, then run:

git clone https://github.com/nextster/chromium-sidecar.git
cd chromium-sidecar
npm run setup

The setup command:

  1. Copies the extension to ~/.chromium-sidecar/extension.
  2. Installs the Native Messaging runtime under ~/.chromium-sidecar.
  3. Registers it for the supported Chromium browsers.
  4. Adds this repository as a local Codex marketplace and installs the chromium-sidecar plugin when Codex is available.
  5. Opens the installed browser's extensions page.

Chromium requires one manual step for an extension that is not store-published:

  1. Enable Developer mode on the extensions page.
  2. Choose Load unpacked.
  3. Select ~/.chromium-sidecar/extension.
  4. Open the extension details and enable Allow User Scripts if the browser shows that toggle.
  5. Reload Codex so it discovers the new plugin.

Run npm run setup again to update all installed components. Once version 0.4.0 is loaded, setup also asks the running extension to reload itself. Useful options are --no-open, --no-codex, and --dry-run:

npm run setup -- --no-open

What It Exposes

The Codex MCP server provides:

  • Browser status and provider discovery
  • Tab listing, background tab creation, navigation, and guarded cleanup
  • Compact DOM snapshots with stable element refs
  • Click, fill, select, wait, and JavaScript execution
  • Viewport screenshots
  • Redacted cookie access and filtered network capture
  • Replayable curl generation
  • Arc Space listing and explicit Space focusing on macOS

Agent-created tabs open in the background by default and are tracked for cleanup. Tabs that predate the MCP session cannot be closed without an explicit force flag.

CLI

The installer places the CLI at ~/.chromium-sidecar/bin/chromium-sidecar:

~/.chromium-sidecar/bin/chromium-sidecar status
~/.chromium-sidecar/bin/chromium-sidecar extension-reload
~/.chromium-sidecar/bin/chromium-sidecar tabs
~/.chromium-sidecar/bin/chromium-sidecar eval active 'document.title'
~/.chromium-sidecar/bin/chromium-sidecar arc-spaces
~/.chromium-sidecar/bin/chromium-sidecar capture-start --filter example.com
~/.chromium-sidecar/bin/chromium-sidecar capture-stop
~/.chromium-sidecar/bin/chromium-sidecar curl

Captures are stored with owner-only permissions under ~/.chromium-sidecar/captures. Cookie values, authorization headers, and sensitive request fields are redacted unless raw capture is explicitly requested.

Architecture

Codex plugin or CLI
        |
        | NDJSON RPC over ~/.chromium-sidecar/control.sock (0600)
        v
Native Messaging host <-> Chromium Sidecar extension <-> browser APIs
        |
        +-> optional providers, including Arc Spaces through JXA

There is no HTTP server or listening TCP port. The browser launches the native host and communicates over stdin/stdout; local clients use a private Unix socket.

Compatibility

Version 0.4.0 keeps migration aliases for the former Arc-specific build:

  • ARC_CODEX_* environment variables remain accepted.
  • com.artem.arc_codex_bridge is registered as a legacy Native Messaging host alias.
  • ~/.arc-codex-bridge/control.sock is served as a compatibility socket when available.
  • The extension keeps its original signing key, so its stable ID remains eiffkmiekomnbpgamfchhehdafpnfgco.

New integrations should use CHROMIUM_SIDECAR_*, com.chromium_sidecar.bridge, and ~/.chromium-sidecar.

Development

npm test
npm run setup -- --dry-run --no-codex --no-open
npm run package:extension

Repository layout:

extension/                    Manifest V3 browser extension
native-host/                  Native Messaging host, CLI, providers, and tests
plugins/chromium-sidecar/     Codex plugin, MCP server, skill, and tests
scripts/                      Setup and packaging commands
.agents/plugins/              Local Codex marketplace metadata

npm run uninstall-host removes host manifests and runtime launchers. Captures are intentionally preserved.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured