Skip to main content

Cursor IDE Bridge (Legacy)

Beta This page documents the deprecated local Cursor IDE bridge. It is still available for migration and backward compatibility, but it is no longer the current ccs cursor product surface.
Use ccs cursor --auth for the current Cursor provider path. The commands on this page now live under ccs legacy cursor ....
Beta Feature — Use at Your Own Risk
  • Uses Cursor’s internal ConnectRPC API (reverse-engineered, may break on IDE updates)
  • Tokens expire every 24h and must be re-imported
  • Windows users must use manual auth (--manual flag)

Quick Start

Older ccs cursor <subcommand> invocations are still shimmed for a migration window, but they print a deprecation warning and forward to the legacy bridge. On macOS and Linux, auto-detect requires sqlite3 in your PATH. Windows does not support auto-detect.

Authentication

CCS auto-detects credentials from Cursor’s local SQLite database.
Credentials are stored at ~/.ccs/cursor/credentials.json (mode 0o600).
Auto-detect uses the sqlite3 CLI on macOS and Linux. If sqlite3 is missing, use manual import.
Token validation: access token must be >50 chars, machine ID must be exactly 32 hex characters. Tokens expire after 24h (or per JWT exp claim).

CLI Subcommands

Configuration

Available Models

Model list is discovered dynamically from api2.cursor.sh/v1/models with a 5-minute TTL cache. The list below reflects typical available models, but may change as Cursor updates their offering.
GPT-5.3 Codex (default), GPT-5.2, GPT-5.1, GPT-5, GPT-5 Fast, GPT-5 Mini
Claude 4.6 Opus, Claude 4.5 Sonnet, Claude 4.5 Haiku
Gemini 3 Pro, Gemini 3 Flash, Gemini 2.5 Flash, Grok Code
Model fallback: If the requested model is unavailable in Cursor’s catalog, CCS falls back to the catalog-resolved default model for the current available model list and logs a debug message.

Dashboard Controls

Open ccs config, then navigate to the Deprecated Cursor IDE bridge page if you still rely on the local daemon workflow.
  • Import auth automatically or manually
  • Start/stop the daemon
  • Save runtime config (port, auto-start, ghost mode)
  • Use searchable model pickers for large live catalogs
  • Edit raw ~/.ccs/cursor.settings.json when needed

Daemon Management

The daemon spawns as a detached process and uses a settled-once pattern for startup — health is polled until the daemon signals ready or the timeout is reached (30s). Proper 413 (payload too large) responses are returned for oversized requests, and the daemon aborts cleanly on client disconnect. Daemon API surface:
  • POST /v1/chat/completions for OpenAI-compatible clients
  • POST /v1/messages for Anthropic-compatible clients
  • GET /v1/models for dynamic model discovery
Stop behavior: sends SIGTERM, waits 5s, escalates to SIGKILL if still running. Health check: GET /health — expects { "service": "cursor-daemon" } in response.

Dashboard API

The CCS dashboard exposes REST endpoints for managing the integration:

Troubleshooting

Ensure Cursor IDE has been launched and logged in at least once. The SQLite DB is only created after first login. On macOS/Linux, confirm sqlite3 is installed and in PATH. Try ccs legacy cursor auth --manual if auto-detect continues to fail.
Check if port 20129 is in use: lsof -i :20129. Change cursor.port in config.yaml if needed, then restart with ccs legacy cursor start.
Tokens expire every 24h. Re-run ccs legacy cursor auth to refresh credentials from your local Cursor installation.
Auto-detect is not available on Windows. Use manual import:
Find your token in Cursor’s developer tools or Keychain equivalent.

Current Recommendation

Use the legacy bridge only when you specifically need the reverse-engineered local Cursor daemon path. For new setups:
  • use Cursor Provider for ccs cursor --auth
  • keep this page only for ccs legacy cursor ...