Skip to main content

Comet-Bridge (Cursor browser automation)

Comet-Bridge is a CDP-based browser automation orchestrator used by Cursor agents for persistent, authenticated browser sessions. It connects to the Perplexity Comet browser via Chrome DevTools Protocol and provides multi-step workflow execution, tab-group management, and identity-aware ownership enforcement. Comet-Bridge is distinct from the Equabot-managed browser. Use Comet-Bridge for persistent authenticated sessions (QBO, Mercury, Google) and multi-step playbooks. Use the Equabot browser for quick in-IDE checks and ephemeral validation.

Architecture

Channel routing

The browser-automation-routing rule selects the channel by intent: When Comet MCP is unavailable, agents fall back to the comet CLI wrapper. The safety protocol (identity, ownership) is enforced on both paths.

Run lifecycle

Every Comet browser run has a lifecycle tracked by the Command Center lifecycle store.

States

Transition table

completed, aborted, and failed are terminal (no further transitions). Operations are idempotent from terminal states.

Operations

Identity fields

In multi-agent mode, both taskThreadId and agentId are required. Single-agent runs may omit agentId.

Graceful degradation

Lifecycle sync to Command Center is best-effort on both execution paths: On failure (timeout or non-2xx response), the sync function logs a [lifecycle-sync] warning and returns null. The run itself continues uninterrupted. A local JSON backup (auto-{timestamp}.json) is always written regardless of whether the sync succeeds, so run data is never lost. The endpoint URL can be overridden via the COMET_CC_LIFECYCLE_URL environment variable.

MCP tools

Comet-Bridge exposes tools via its MCP server (comet-mcp):

Tab ownership

In multi-agent mode, tabs are owned by a single identity (agentId or taskThreadId). Ownership is marked via the document title prefix [comet-agent:<id>] and enforced at three tiers:
  1. Entry gate — identity required before browser work begins
  2. Page-level — tab assigned to the requesting identity
  3. Action-level — every sensitive action (click, fill, navigate) verifies ownership
Cross-identity access is blocked with a deterministic OwnershipError.

See also