Cursor

Cursor Cloud Agents · Live

Hand the change off. Lumen reviews what comes back.

Lumen can delegate small code changes to a Cursor Cloud Agent, then auto-review the PR it opens. Paste your Cursor API key, point the agent at a GitHub repo, and describe the change.

Auth
Cursor API key
Access
Delegate · Follow up · Cancel
Plan
Every plan
Freshness
Live — delegations open real PRs on your repo
Available on
Every plan

Examples

Questions teams actually ask.

The tools it pulls from are shown inline — every answer in Lumen cites the underlying records it read.

Engineering

Delegate a fix to the `lumen-app` repo: the `/api/agent` route is mis-handling cancellation when the client disconnects. Open a PR.

pullsstartDelegation
Refactor

Delegate: in `lumen-app`, every file in `lib/operations/` should use the new `defineOperation` helper. Migrate them all, one commit per file.

pullsstartDelegation
Follow up

On delegation `del_abc123`, ask it to also add a Vitest unit test covering the edge case.

pullsgetDelegationfollowUp
Review

What's the status of every Cursor delegation I've kicked off this week?

pullslistDelegations
Stop

Cancel delegation `del_abc123` — I want to rethink the approach.

pullsstopDelegation

Preview

See what the answer looks like.

Toggle the tools Lumen is allowed to use. The plan, answer, and cited sources update to match.

Tools
Write (delegation)
You

Fix the agent cancellation bug in lumen-app and open a PR.

Plan
  1. cursor.listModels — confirm `composer-2` is available, use it
  2. cursor.startDelegation — repo=org/lumen-app, prompt=full task description, autoCreatePr=true
  3. cursor.getDelegation with refresh=true — poll until FINISHED
  4. when PR opens, Lumen auto-reviews via webhook
Answer

Delegation `del_9b2f...` finished in 6m 12s. Cursor opened PR #512: `fix: abort agent streams on client disconnect`. Lumen's auto-review posted a REQUEST_CHANGES flagging one missing test case — nothing blocking the core fix. Review both at cursor.com/... and github.com/org/lumen-app/pull/512.

Sources
  • [1]cursor.startDelegation — delegation created, cursorAgentId=ag_..., model=composer-2
  • [2]cursor.getDelegation — polled 3 times, status transitions CREATING → RUNNING → FINISHED
  • [3]webhook — Cursor POST'd final result, PR URL stored, Lumen review triggered

Scope

What Lumen sees. What it can change.

Read is on by default. Every write is a separate toggle, capped per user, and logged.

Read

What Lumen reads

Lumen tracks every delegation you open — the prompt, the status, the PR URL, and any follow-ups. Read operations let you query that history.

  • List delegations

    Filter by conversation, status (CREATING, RUNNING, FINISHED, ERROR, STOPPED), or unbounded

  • Get a delegation

    Full state including Cursor agent ID, repo, ref, prompt, PR URL. Optional `refresh: true` force-syncs with Cursor's API

  • List available models

    composer-2, claude-4-opus, claude-3.5-sonnet, gpt-4o, gemini-2.5-pro

Write · opt-in

What Lumen can write

Delegation is the core write surface. The agent can launch new changes, follow up on running ones, and cancel if needed. Every write is scoped to repos your GitHub install grants access to.

  • Start a delegation

    Kicks off a Cursor Cloud Agent against a repo. Optional branch name and model; `autoCreatePr: true` by default

  • Follow up on a delegation

    Send additional instructions to an in-flight or recently-finished delegation

  • Stop a delegation

    Admin-only. Cancels an in-flight delegation before it finishes

Every delegation is logged with user, repo, prompt, model, and the resulting PR URL. Follow-ups and stops are logged against the same row. Exportable as CSV.

Install

Connect in under a minute.

No keys, no call, no app marketplace fine print.

  1. Generate a key
    01

    Create a Cursor API key

    At cursor.com/dashboard/integrations, generate an API key for the Cloud Agents API. Lumen stores it encrypted.

  2. Connect
    02

    Paste the key into Lumen

    In Settings → Integrations → Cursor, paste the key. Cursor also needs GitHub access — if you haven't installed Cursor's GitHub app, do that in their dashboard. Lumen uses your Lumen GitHub install to resolve repo names.

  3. Delegate
    03

    Hand off the first change

    Start small: a bug fix with a clear reproduction or a focused refactor. The agent will pick the right model, kick off the delegation, and poll for completion. When the PR opens, Lumen reviews it automatically.

Questions

Frequently asked.

How is this different from using Cursor directly?
Same underlying Cloud Agent — the difference is orchestration. In Lumen, delegation happens inside a conversation that already has your context (what you were debugging, what the logs said, which PRs matter). When Cursor opens the PR, Lumen auto-reviews it using the same GitHub integration.
Can the agent open a PR without my involvement?
Yes — `autoCreatePr: true` is the default. You can flip it off and let Cursor push to a branch without opening a PR, which is useful if you want to eyeball the diff first.
Which models are available?
Whatever Cursor's Cloud Agent API exposes. The agent will call `cursor.listModels` to see the current list before delegating. As of this writing: composer-2 (default), claude-4-opus, claude-3.5-sonnet, gpt-4o, gemini-2.5-pro.
What happens when the delegation finishes?
Cursor POSTs to a webhook Lumen generates per delegation. The webhook updates the status, stores the PR URL, and triggers Lumen's auto-review on that PR — which uses `codebase.reviewPR` under the hood.
Can I cancel a delegation mid-run?
Yes, via `cursor.stopDelegation` — admin-only. The in-flight agent stops, any branch it was pushing to is left in whatever state Cursor last committed.
What repos can the agent delegate to?
Any repo your Lumen GitHub install has write access to. If the install is scoped to 3 repos, Cursor can only open PRs on those 3.
Does Lumen store the webhook secret?
Yes — encrypted at rest, decrypted only to verify the webhook signature when Cursor posts back. The secret is generated per-delegation.
What if Cursor's webhook is delayed?
Call `cursor.getDelegation` with `refresh: true` — Lumen will pull the latest state from Cursor's API directly instead of trusting its cached copy.

Connect Cursor. Delegate the small stuff.

API key. Write-opt-in per delegation. Admin-only cancel.