Beta · macOS

Policy beats prompts.

Gambit is the browser. Gambit MCP is a local stdio sidecar. A connected model reads the page through named tools. MCP sessions may request read-only, supervised, or Autopilot mode. On agent profiles, click, type, and fill wait for native approval unless Autopilot is granted. Personal is never model-driven.

macOS 13+ Apple silicon. This beta is Apple-notarized. Google Docs, Sheets, and Slides open in Chromium; other pages stay WebKit.

Interface

The model uses the browser.

gambit-mcp is a client-launched stdio sidecar. The model calls named tools. The host authenticates, binds a session, and accepts or denies each call.

  1. Browser

    Gambit stays the browser.

    Tabs, profiles, the page you can see. The model uses this window through Gambit MCP.

  2. Gambit MCP

    The interface runs beside it.

    Sessions, tabs, browser_snapshot, find, navigate. Then click, type, fill, scroll, open or close a tab — on agent profiles. Choose read-only, supervised, or Autopilot when the session starts.

  3. Policy

    Policy stays in the host.

    Isolated profiles and an audit trail. Banking and mail origins deny. Password fields refuse fill.

Pair an outside client next. Connect Cursor, Claude, Codex, or Gemini CLI.

Setup

Pair a client on this Mac.

Cursor, Claude Desktop, Claude Code, ChatGPT desktop, Codex CLI, and Gemini CLI launch gambit-mcp over stdio. They do not replace Ask or Agent Research. Pairing, sessions, policy, and approval stay in Gambit.

Pairing

Settings writes the snippet. The host keeps the token.

  1. Download Gambit and keep the app open.
  2. Settings → Connections → Generate token. Name the client, for example “Cursor on this Mac”.
  3. Leave tab metadata only, or enable page-text export. Page text goes to that client and to whatever model it uses 1.
  4. Copy the token and snippet. GAMBIT_MCP_TOKEN is shown once. Settings copies Cursor, Claude, Codex, and Gemini CLI snippets. Revoke in Connections ends every session for that client.
  5. Paste that snippet into Cursor or Claude Desktop. For Codex or Gemini CLI, put the same command, args, and GAMBIT_MCP_TOKEN in that client’s file. Restart the client. The model then calls session_start with read_only, supervised, or autopilot; Allow the native grant sheet. In supervised mode, click, type, and fill wait for a later approval sheet. Autopilot skips those prompts after the grant (uploads still ask).

Typical Applications path: /Applications/Gambit.app/Contents/MacOS/gambit-mcp with --stdio. Settings uses the real bundle path if you installed elsewhere. Gambit does not edit another app’s config.

Cursor

Project or user mcp.json.

~/.cursor/mcp.json or .cursor/mcp.json. Same keys Settings copies.

{
  "mcpServers": {
    "gambit": {
      "type": "stdio",
      "command": "/Applications/Gambit.app/Contents/MacOS/gambit-mcp",
      "args": ["--stdio"],
      "env": { "GAMBIT_MCP_TOKEN": "<pairing token shown once>" }
    }
  }
}

Claude

Desktop JSON or Claude Code.

Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json. Same mcpServers object as Cursor. Then fully quit and relaunch Desktop.

claude mcp add --transport stdio gambit \
  --env GAMBIT_MCP_TOKEN='<pairing token shown once>' \
  -- /Applications/Gambit.app/Contents/MacOS/gambit-mcp --stdio

ChatGPT / Codex

Desktop and Codex CLI.

ChatGPT desktop, Codex CLI, and the Codex IDE extension share ~/.codex/config.toml.

codex mcp add gambit \
  --env GAMBIT_MCP_TOKEN='<pairing token shown once>' \
  -- /Applications/Gambit.app/Contents/MacOS/gambit-mcp --stdio
[mcp_servers.gambit]
command = "/Applications/Gambit.app/Contents/MacOS/gambit-mcp"
args = ["--stdio"]

[mcp_servers.gambit.env]
GAMBIT_MCP_TOKEN = "<pairing token shown once>"

Gemini

Gemini CLI.

~/.gemini/settings.json or project .gemini/settings.json.

{
  "mcpServers": {
    "gambit": {
      "command": "/Applications/Gambit.app/Contents/MacOS/gambit-mcp",
      "args": ["--stdio"],
      "env": { "GAMBIT_MCP_TOKEN": "<pairing token shown once>" }
    }
  }
}

Any stdio client

Command, args, env.

Server name gambit. Transport stdio only. No loopback HTTP in this product.

command: /Applications/Gambit.app/Contents/MacOS/gambit-mcp
args:    ["--stdio"]
env:     GAMBIT_MCP_TOKEN=<pairing token shown once>

Not supported

Web chats cannot launch the sidecar.

  • ChatGPT web: remote connectors only. Use ChatGPT desktop or Codex CLI.
  • claude.ai connectors: remote HTTP. Use Claude Desktop or Claude Code.
  • Gemini app: no documented local stdio. Use Gemini CLI.

If Gambit is closed, gambit-mcp still answers tools/list. Browser tools return BROWSER_UNAVAILABLE until you open the app. Closing the sidecar does not quit Gambit.

Modes

Read-only. Supervised. Autopilot.

The client picks a mode on session_start. You grant the session in Gambit. Policy stays in the host.

  1. read_only

    Observe the page.

    Snapshots, find, and same-origin navigate inside the grant. No click, type, or fill.

  2. supervised

    Act with approval.

    Same tools as research Ask. Click, type, and fill wait for a native Allow / Deny. Scroll may proceed under policy.

  3. autopilot

    Act after one grant.

    Same actuation catalog as supervised. After you Allow the session, policy ask becomes allow for that grant. Banking and mail origins still deny. Password fields refuse fill. Uploads still open an approval so the file path stays visible. Settings → Connections Autopilot MCP applies the same ask→allow rule to supervised sessions when you turn it on.

Autopilot mode is not the AutoPilot profile. Profile id agent-approved is labelled AutoPilot in chrome. Session mode autopilot is a grant choice on agent-research or agent-approved.

Contract

A bounded slice of agency.

You offer the current page through Gambit MCP. Policy, profiles, and an audit trail keep the rest.

Profiles

Three isolated profiles.

Ids stay personal, agent-research, and agent-approved. Cookies and the vault stay in Personal.

In the beta

What ships. What does not.

Ask and paired clients use the page only through Gambit MCP.

In the build

  • Local-first browser. Policy stays in the host.
  • Gambit MCP (gambit-mcp stdio): sessions, tabs, snapshot, find, navigate
  • Click, type, fill, scroll, open or close a tab on agent-research / agent-approved. Modes: read_only, supervised, autopilot. Supervised uses native approval for click, type, and fill; Autopilot skips those after the grant.
  • Ask via MCP: local Ollama/MLX, or OpenRouter from Settings
  • Downloads manager in Personal
  • WebKit by default. Chromium for Google Docs, Sheets, and Slides, or Use with Chromium
  • Banking and mail origins deny. Password fields refuse fill.

Not this release

  • Unattended cloud agents or connectors that bypass Gambit policy
  • Gmail, Calendar, or other connectors
  • Chrome Web Store extensions running in the host
  • An unsigned or ad-hoc disk image. This beta is notarized.
  • Chromium for every site. Ordinary http(s) stays WebKit; cookie jars do not follow a tab across engines.
  • Touch ID on Google and similar sites until Apple grants the browser passkey entitlement

Passkeys stay in Apple Passwords / iCloud Keychain. Unsigned local builds can request Keychain authorization; third-party sites that require Apple’s browser entitlement will keep offering their usual fallback.

1 Default Ask is local. OpenRouter is a Settings → Models choice. It only receives page text if you enable that session’s export checkbox. A paired MCP client (Cursor, Claude Desktop, Inspector) may send granted tab titles, URLs, and — only if you enable page-text export — sanitized page text to that client’s model.