Skip to content

RecipesCursor

Cursor agents

Free

Every Cursor cloud agent as a row: repo, task, status, elapsed, plus running and failed counts. Botopticon is not affiliated with Cursor.

Access

Cursor API key, read agents

Required. Env CURSOR_API_KEY. Mode api_key.

  • Agents: Read

In Cursor open Dashboard, then API Keys, and create a key named Botopticon board. Use it only here so you can revoke it without breaking anything else. The agent only lists cloud agents and reads the latest line of running ones. It never starts, stops, or changes an agent.

Optional: a read-only GitHub token (GITHUB_TOKEN) for PR stage on each row.

Botopticon never stores this key. Paste it into the agent, cron host, or MCP config. Revoke it any time.

Board

Sample · not your account.

Agent rows

Sample · Repo, task, status, min

Min
  1. web-app · Add saved searches14
  2. api · Speed up dealer page3
  3. docs · Fix flaky link test40
  4. web-app · Footer links22

Updated just nownowCursor

Running now

Sample · Cloud agents

2agents

Updated just nownowCursor

Latest line

Sample · Running agents

  1. 14mweb-app — Checks are running on the new search page.
  2. 3mapi — Profiling the dealer page before trimming images.
  3. 40mdocs — Stopped before a PR.

Updated just nownowCursor

Command Tiles

Pro

Sample · not your account. The agent puts the ask on the board. You answer there. How Command Tiles work

  • Retry the agent

    Needs you

    Sample data

    Approval · Cursor

    Retry the failed cloud agent on botopticon?

    Updated just nownowCursor

    Needs you
  • Failed agent next?

    Needs you

    Sample data

    Question · Cursor

    One cloud agent failed today. What should it do?

    Updated just nownowCursor

    Needs you

Tiles

  • Agent rows
  • Running now
  • Failed todayneeds you
  • Latest line
  • Agent rows. Row label is repo and task. Row status is the agent state. min is elapsed minutes. No percents.
  • Failed today. Set needs_you true when any agent failed since midnight.

Setup

  1. 01

    Mint a read-only Cursor key

    Create a key that can only read. Never grant write. Keep it in the env var named on this page, on the agent or cron host. Botopticon never stores this key. Paste it into the agent, cron host, or MCP config. Revoke it any time.

  2. 02

    Create a Botopticon token

    In the app, open Connection tokens and create one named after this board. Copy it. It is shown once. That token posts to Botopticon. It is not the source key.

  3. 03

    Optional: connect GitHub for PR stages

    Add a read-only GitHub token with pull request and checks read on the repos you care about. With it, rows move from PR opened to checks running, checks green, and merged.

  4. 04

    Paste the prompt into your agent

    Open the tab for Grok Bot, Muse, MCP, Cursor, Claude, or curl. Replace $BOTOPTICON_TOKEN. The agent fetches the source, maps the fields in the brief, and posts. Do not paste canned sample JSON as live data.

  5. 05

    Wait for the first live post

    These numbers are sample. They flip when your agent posts with the key. Each tile keeps the sample label until that tile is replaced.

Snippets

Same recipe, one tab per platform. Replace $BOTOPTICON_TOKEN with a connection token. The prompt fetches the source and posts. Do not paste the sample numbers as live data.

Grok Bot

Paste this into Grok Bot. Replace $BOTOPTICON_TOKEN with a Botopticon connection token. Connect MCP at https://www.botopticon.com/api/mcp if this client can. If it cannot, POST /api/ingest with curl instead.

Keep the Botopticon board "Cursor agents" current.

Source: Cursor.
You hold CURSOR_API_KEY (Cursor API key, read agents). Botopticon never stores this key. Paste it into the agent, cron host, or MCP config. Revoke it any time.
In Cursor open Dashboard, then API Keys, and create a key named Botopticon board. Use it only here so you can revoke it without breaking anything else. The agent only lists cloud agents and reads the latest line of running ones. It never starts, stops, or changes an agent.
Scopes (read-only): Agents: Read.
Optional: a read-only GitHub token (GITHUB_TOKEN) for PR stage on each row.

What to fetch and how to map it:
Read the current Cursor Cloud Agents docs. The key lists agents and reads the latest line of running ones. Never start, stop, or change an agent.
Agent rows: one stat_table row per agent. Row label is repo and task (Cursor has no text column for task). Row status is working, done, blocked, or needs_you. elapsed is minutes as a number. Cursor does not report percent complete, so do not invent one. Cursor has no cost per agent, so do not show one.
Running now: count of agents in a running state.
Failed today: agents that failed since midnight in your timezone. Set needs_you true when that count is greater than 0.
Latest line: feed of the newest output line from running agents.
Optional GITHUB_TOKEN: if present, append PR stage to the row label (opened, checks running, green, merged). Without it, private repos stop at PR opened.

Tiles:
- Agent rows — bot Cursor, tile agent-rows, type stat_table. Row label is repo and task. Row status is the agent state. min is elapsed minutes. No percents.
- Running now — bot Cursor, tile running-now, type kpi.
- Failed today — bot Cursor, tile failed-today, type kpi. Set needs_you true when any agent failed since midnight. Sample shows needs_you true.
- Latest line — bot Cursor, tile latest-line, type feed.

Post each tile to https://www.botopticon.com/api/ingest with header Authorization: Bearer $BOTOPTICON_TOKEN and Content-Type: application/json. Fields: bot, tile, type, title, subtitle, props, needs_you, ttl_seconds.
If you can call MCP, connect to https://www.botopticon.com/api/mcp with the same Authorization header and call post_tile once per tile. The arguments are those JSON fields.
Do not invent numbers. Do not post the same body again just to keep a tile fresh. Set ttl_seconds to how often the value really changes. A quiet tile should show as stale.
When needs_you is true, say who is asking, what it is about, and the ask.

FAQ

Why are there no progress bars?
Cursor does not report how far an agent is through its work, so the board does not guess. Each row shows real signals: running or done, elapsed minutes, the latest line, and PR stage when GitHub is connected.
Does this run on the Free plan?
Yes. Every tile in this recipe is a Free type. A Free workspace still has one board and 8 live tiles. Using this recipe adds the sample tiles to that board.
Does Botopticon store the Cursor key?
Botopticon never stores this key. Paste it into the agent, cron host, or MCP config. Revoke it any time.
How does the board stay current?
Your agent fetches the source and posts when a number changes. Set ttl_seconds to how often that work really happens, so a quiet tile shows as stale. Use a timer only for data no agent touches, and then at most daily. Never post the same content again just to keep a tile fresh.