Skip to main content

Installation

What you install depends on what you're here to do. Pick your path and skip the rest.

For Users

You want to use OpenTabs with existing plugins and the built-in browser tools. You need Node.js 22+ and Google Chrome (or any Chromium-based browser).

Install the CLI

npm install -g @opentabs-dev/cli

Start the server

opentabs start

First run creates the ~/.opentabs/ directory, generates an auth secret, and installs the Chrome extension files. It also prints ready-to-copy config blocks for Claude Code, Cursor, Windsurf, and OpenCode with your secret already filled in. Hang onto those for step 4.

Load the Chrome extension

Yeah, you have to manually load it. Chrome doesn't let you distribute Manifest V3 extensions outside the Chrome Web Store for localhost servers. It takes 30 seconds:

  1. Open chrome://extensions/ in Chrome
  2. Enable Developer mode (top-right toggle)
  3. Click Load unpacked and select ~/.opentabs/extension

The extension connects to the server automatically.

Configure your MCP client

Grab the config block that opentabs start printed and paste it into your client's config file. That's it.

For Claude Code, the fastest way is the CLI:

claude mcp add --transport http opentabs http://127.0.0.1:9515/mcp \
  --header "Authorization: Bearer YOUR_SECRET_HERE"

Or merge it manually into ~/.claude.json (under "mcpServers"):

{
  "mcpServers": {
    "opentabs": {
      "type": "streamable-http",
      "url": "http://127.0.0.1:9515/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_SECRET_HERE"
      }
    }
  }
}

Replace YOUR_SECRET_HERE with the secret from the config output.

Install plugins

opentabs plugin search
opentabs plugin install <name>

Verify

opentabs status
opentabs doctor

You're good. Your AI agent can now use all registered plugin tools and the built-in browser tools.


For Plugin Developers

This is the fun part. You need everything from For Users above, plus the scaffolding tools.

Set up the user environment

Follow the For Users section first. You need a working OpenTabs installation to test against.

Scaffold a new plugin

npx @opentabs-dev/create-plugin my-plugin
cd my-plugin
npm install

Build and register

npm run build

This compiles your plugin, generates dist/adapter.iife.js and dist/tools.json, registers the plugin in ~/.opentabs/config.json under localPlugins, and notifies the running server via POST /reload.

Rebuild and reload

The feedback loop is fast. Every time you rebuild, the server picks up your changes automatically:

npm run build   # Compiles, builds adapter, and notifies the server via POST /reload

No server restart. No extension reload. Just build and it's live.

Honest recommendation: build your own plugins rather than installing third-party ones. Plugins run in your browser with your logged-in sessions — you should know what the code does. Point your AI agent at any website and it'll build a plugin for you in minutes. Your agent wrote it, you can read every line. That's a pretty good trust model.

See the Plugin Development guide for a complete walkthrough.


For Contributors

Welcome aboard. You need Node.js (v22+) and Google Chrome.

Clone and build

git clone https://github.com/opentabs-dev/opentabs.git
cd opentabs
npm install
npm run build

Load the Chrome extension

  1. Open chrome://extensions/ in Chrome
  2. Enable Developer mode (top-right toggle)
  3. Click Load unpacked and select ~/.opentabs/extension

Start the dev server

npm run dev

This starts the MCP server with the dev proxy for hot reload. When you rebuild platform packages (npm run build), the dev proxy detects the changes and restarts the worker process. The whole thing is designed so you can edit, build, and see results without restarting anything manually.

Configure your MCP client

Get the auth secret from the auto-generated config:

cat ~/.opentabs/extension/auth.json | jq -r .secret

Add it to your MCP client as shown in the For Users section.

Run the checks

npm run build         # Build all packages
npm run type-check    # TypeScript check
npm run lint          # Biome lint check
npm run knip          # Unused code detection
npm run test          # Unit tests
npm run test:e2e      # E2E tests (Playwright)

All six must exit 0 before committing. No exceptions. See the Development Setup guide for the full contributor workflow.


Next Steps

Last Updated: 10 Mar, 2026