> Let agents set their own chat title/status programmatically (e.g. `dev 🔄 active`)

Feature request for product/service

Cursor IDE

Describe the request

I run many agent chats in parallel (multiple worktrees / conversations). I can’t tell at a glance which one is actively working, which is waiting for my input, and which is blocked — nor which role each plays (dev / PM / QA / reviewer). I have to open each chat to know its state.
Request: let an agent set and update a short status label for its OWN conversation, so the chat list / Agents window reflects live state. For example:
dev :counterclockwise_arrows_button: active — candidate api
pm :hourglass_not_done: wait — sprint planning
qa :white_check_mark: done — cv upload tests
auditor :prohibited: blocked — permission migration
Why current options fail (I investigated with a custom extension):

  • Titles are stored in state.vscdb → cursorDiskKV → composerData:.name, but editing the live DB is unsafe and doesn’t refresh the UI.
  • Internal commands (composer.updateTitle, composer.updateStatus, composer.renameChat) reject programmatic calls with “Canceled”; renameChat opens a blocking input box.
  • workbench.action.devGetComposerDataForTesting is gated behind --enable-smoke-test-driver, so an extension can’t even read the current title.
    So there is currently no supported programmatic path for an agent to annotate its own conversation.
    Proposed API (any one would solve it):
  1. MCP/agent tool: cursor_set_chat_status({ title?, status?: “active” | “waiting” | “blocked” | “done” })
  2. Turn/stop hook output field: title? / status?
  3. Allow-listed command cursor.agent.setCurrentChatStatus(status, title?), safe to call while the composer is running.
    Impact: turns the Agents window into a real dashboard (who is active / waiting / blocked) for parallel-agent workflows, instead of opening each chat one by one.
    Related request: Color code chats in agent window

Hey, thanks for the detailed write-up. It’s clear you’ve already dug deep into state.vscdb and internal commands.

I’ll split the request into two parts:

Title. Part of this already works today. In the Agents window, you can just ask the agent to rename its chat right in the prompt, like “rename this chat to dev - candidate api”, and it will do it. The caveat is that this is reactive, only on an explicit request, not ongoing auto updates of status. It also works in the Agents window, not the classic IDE sidebar, so there isn’t a programmatic path via an extension like the one you were looking for.

Structured status (active / waiting / blocked / done). This part, a separate settable status field that would turn the Agents window into a live dashboard, doesn’t exist right now. There’s no MCP tool for it, no hook output, and no command. This is the main new part of your request.

This request has come up a few times already, so I’m leaving links here so votes and discussion don’t get split:

I can’t share a timeline yet, but the idea is clear and it’s been noted.