Skip to content
Conduit

skill

openclaw-cursor

Unofficial HTTP proxy that lets OpenClaw use Cursor models through the cursor-agent CLI; OpenAI-compatible API with SSE streaming. Go.

menezmethod/openclaw-cursorcommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/menezmethod/openclaw-cursor itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 26, 2026

OpenClaw-Cursor Proxy

HTTP proxy that enables OpenClaw to use Cursor Pro models via the cursor-agent CLI. A single static Go binary with no runtime dependencies.

Architecture

OpenClaw --> POST /v1/chat/completions --> openclaw-cursor proxy (:32125)
                    |
                    v
            cursor-agent (spawned per request)
                    |
                    v
            Cursor API (HTTPS)
  • Accepts OpenAI-compatible requests
  • Spawns cursor-agent --output-format stream-json per request
  • Streams NDJSON responses as OpenAI SSE
  • Supports thinking blocks and tool calling (OpenClaw-owned loop)

Prerequisites

  • Go 1.22+ (for building)
  • cursor-agent - curl -fsSL https://cursor.com/install | bash

Installation

Build from source

git clone https://github.com/menezmethod/openclaw-cursor.git
cd openclaw-cursor
make build
# Binary at bin/openclaw-cursor

Install script

./scripts/install.sh

Cross-compile

make cross
# Outputs to dist/openclaw-cursor-{linux,darwin}-{amd64,arm64}

Quick Start

# 1. Authenticate with Cursor (opens browser)
openclaw-cursor login

# 2. Start the proxy
openclaw-cursor start

# 3. Configure OpenClaw - add to ~/.openclaw/openclaw.json:
{
  "models": {
    "mode": "merge",
    "providers": {
      "cursor": {
        "baseUrl": "http://127.0.0.1:32125/v1",
        "api": "openai-completions",
        "models": [
          { "id": "auto", "name": "Cursor Auto", "contextWindow": 200000, "maxTokens": 8192 },
          { "id": "sonnet-4.5-thinking", "name": "Claude 4.5 Sonnet (Thinking)", "reasoning": true, "contextWindow": 200000, "maxTokens": 8192 },
          { "id": "opus-4.6", "name": "Claude 4.6 Opus", "contextWindow": 200000, "maxTokens": 8192 },
          { "id": "opus-4.6-thinking", "name": "Claude 4.6 Opus (Thinking)", "reasoning": true, "contextWindow": 200000, "maxTokens": 8192 }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": { "primary": "cursor/auto" }
    }
  }
}
# 4. Test
openclaw-cursor test

OpenClaw Self-Onboarding

Use the proxy so OpenClaw runs its own onboarding wizard with Cursor models. OpenClaw will use your Cursor subscription to guide you through setup.

Prerequisites: OpenClaw installed (npm install -g openclaw@latest).

# 1. Start the proxy
openclaw-cursor start

# 2. In another terminal, run the onboarding wizard
openclaw onboard --install-daemon

When the wizard reaches Model/Auth, choose Custom Provider and enter:

  • Base URL: http://127.0.0.1:32125/v1
  • Compatibility: openai
  • API key: leave empty (the proxy uses Cursor's auth via cursor-agent)

Important: OpenClaw requires an auth profile for every provider. Add a placeholder entry to ~/.openclaw/agents/main/agent/auth-profiles.json under profiles:

"cursor:default": {
  "type": "api_key",
  "provider": "cursor",
  "key": "placeholder"
}

The proxy ignores this key—it uses Cursor's auth via cursor-agent.

Alternatively, pre-configure Cursor in ~/.openclaw/openclaw.json as shown in Quick Start before running the wizard.

Default model

openclaw models set cursor/auto

Switch models mid-chat

In the Control UI or chat channels, type:

CommandModel
/model cursor/autoCursor Auto
/model cursor/opus-4.6Claude 4.6 Opus
/model cursor/opus-4.6-thinkingOpus with thinking
/model cursor/sonnet-4.5-thinkingSonnet with thinking
/model cursor/gpt-5.3-codexGPT-5.3 Codex

Or run openclaw agent --message "..." after setting your default with openclaw models set cursor/auto.

CLI Commands

CommandDescription
loginLaunch OAuth flow for Cursor
logoutClear local credentials
statusCheck auth and proxy status
startStart proxy (foreground)
start --daemonStart proxy in background
stopStop daemon
modelsList available models
testSend test request
versionPrint version

Configuration

Config file: ~/.openclaw/cursor-proxy.json

{
  "port": 32125,
  "log_level": "info",
  "tool_mode": "openclaw",
  "workspace": "~/Development",
  "timeout_ms": 300000,
  "retry_attempts": 3,
  "default_model": "auto",
  "enable_thinking": true,
  "max_tool_loop_iterations": 10
}

workspace — Directory cursor-agent can access. Dynamic resolution:

  1. x-openclaw-workspace request header (per-request override)
  2. Config workspace or OPENCLAW_CURSOR_WORKSPACE
  3. Default: home directory (~) — full access to all projects under your home

Environment variables (override config):

  • OPENCLAW_CURSOR_PORT - Port (default 32125)
  • OPENCLAW_CURSOR_WORKSPACE - Workspace path (e.g. ~/Development)
  • OPENCLAW_CURSOR_LOG_LEVEL - debug, info, warn, error
  • OPENCLAW_CURSOR_LOG_SILENT - true to suppress logs
  • OPENCLAW_CURSOR_TOOL_MODE - openclaw or proxy-exec
  • OPENCLAW_CURSOR_TIMEOUT_MS - Request timeout
  • OPENCLAW_CURSOR_ENABLE_THINKING - Enable thinking blocks

Models

Run openclaw-cursor models for the full list. Key models:

  • Composer: auto, composer-1.5, composer-1
  • GPT-5.3 Codex: gpt-5.3-codex, gpt-5.3-codex-high, -low, -xhigh, -fast variants
  • GPT-5.2: gpt-5.2, gpt-5.2-codex, gpt-5.2-high
  • Claude: opus-4.6, opus-4.6-thinking, sonnet-4.5, sonnet-4.5-thinking — Claude models overview
  • Other: gemini-3-pro, gemini-3-flash, grok

Operations (Refresh & Version)

One command to rebuild, install, and reload the proxy:

cd ~/Development/openclaw-cursor
make refresh

This builds with the current git version, symlinks to ~/.local/bin/openclaw-cursor, creates/updates the launchd plist, and reloads it. The proxy restarts with the new binary.

Verify the version:

  • Log on boot: tail ~/.openclaw/logs/cursor-proxy.err.log — look for msg="proxy listening (version X)"
  • CLI: openclaw-cursor version
  • Health: curl -s http://127.0.0.1:32125/health | jq .proxy_version

Paths: Binary ~/.local/bin/openclaw-cursor · Plist ~/Library/LaunchAgents/ai.openclaw.cursor-proxy.plist · Logs ~/.openclaw/logs/cursor-proxy.*.log

Agent skill (for RICO / OpenClaw bots)

The repo includes a skill so your agent knows how to operate the cursor-proxy:

mkdir -p ~/.openclaw/skills
cp -r ~/Development/openclaw-cursor/skills/cursor-proxy ~/.openclaw/skills/

Or into workspace: cp -r skills/cursor-proxy ~/.openclaw/workspace/skills/

The agent will then know how to verify the version and suggest make refresh when the proxy needs updating.

Troubleshooting

"cursor-agent not found"
Install: curl -fsSL https://cursor.com/install | bash

"Authentication failed"
Run openclaw-cursor login and complete the flow in your browser.

"Quota exceeded"
Check your Cursor subscription at cursor.com/settings.

"Proxy not reachable"
Ensure the proxy is running: openclaw-cursor start

"No API key found for provider cursor" / chat hangs
OpenClaw requires an auth profile. Add "cursor:default": {"type":"api_key","provider":"cursor","key":"placeholder"} to ~/.openclaw/agents/main/agent/auth-profiles.json under profiles. The proxy ignores the key.

Debug logging
OPENCLAW_CURSOR_LOG_LEVEL=debug openclaw-cursor start

OpenClaw cron: "Delivering to WhatsApp requires target..."
If isolated cron jobs fail with WhatsApp delivery errors, run this once on your machine (writes to ~/.openclaw; automation environments often cannot):

cd ~/Development/openclaw-cursor
node scripts/fix-cron-delivery.js --dry-run   # preview
node scripts/fix-cron-delivery.js             # apply (creates backup first)
  • Fixes: legacy "to" display name (no channel), Telegram without to, and mode: "announce" with no channel/to. Set OPENCLAW_CRON_DEFAULT_TO to your Telegram numeric ID. For legacy display-name replacement, set OPENCLAW_CRON_LEGACY_TO.
  • Backup: ~/.openclaw/cron/jobs.json.bak.<timestamp>. Restore: cp ~/.openclaw/cron/jobs.json.bak.<ts> ~/.openclaw/cron/jobs.json.

Set all cron jobs to cursor/auto (same as heartbeat)
To make every isolated cron job use cursor/auto (or another model), run on your machine:

cd ~/Development/openclaw-cursor
node scripts/set-cron-model.js --dry-run   # preview
node scripts/set-cron-model.js             # set all to cursor/auto
node scripts/set-cron-model.js cursor/opus-4.6   # or another model

API Endpoints

  • POST /v1/chat/completions - OpenAI-compatible chat (streaming and non-streaming)
  • GET /v1/models - List models
  • GET /health - Health check

License

MIT

↑↓ navigate openesc close