# Share What Cursor's Agent Produced — A Link, Not a Screenshot of Your Editor

Canonical: https://commareports.com/agents/share-cursor-output
Published: 2026-09-02

> Cursor's agent writes the migration plan, the audit, the test summary — inside your editor, where nobody else can read it. Have it publish to a URL your team can open and comment on.

# Share what Cursor's agent produced

You asked Cursor to audit the dependency tree, or plan the migration, or work
out why the flaky test is flaky. It did a good job. The result is a long,
well-structured answer in a sidebar in your editor, on your laptop.

Everything you do next is a downgrade. Screenshotting the pane loses half of
it and all of the tables. Copy-pasting into Slack loses the structure and
buries it above the next forty messages. Committing it to the repo means the
only people who can read it are the people who clone the repo — not the PM who
asked, not the security reviewer who needs to sign off, not the customer.

## Let the agent publish it

Attach Comma's MCP server to Cursor (see [Cursor setup](/mcp/cursor) — it is a
few lines in `.cursor/mcp.json` and a [scoped token](/docs/api-tokens)), then
tell the agent where finished work goes. A project rule in `.cursor/rules` is
the right place, because it applies to every conversation without you having
to remember:

```md
When you finish a piece of work that a human needs to read — an audit, a
migration plan, a postmortem, a benchmark comparison — publish it to Comma as
an HTML report and reply with the URL. Do not paste the full text into chat.
Keep the report id in `.cursor/comma-report-id` and update that report on
later runs rather than creating a new one.
```

From then on, "audit our dependencies" ends with a link instead of a wall of
text. The agent writes the HTML, calls the publish tool, and returns a URL you
can paste into the thread where the question was originally asked.

## Why a report and not a chat message

- **It renders.** Tables stay tables, charts stay charts, the diff stays
  aligned. The markup is stored verbatim and served inside a sandboxed iframe,
  so what you saw is what your reader sees.
- **Readers need nothing.** No Cursor licence, no editor, no repo access. The
  audience for "here is why the migration is risky" is rarely the set of people
  with a checkout.
- **Comments land on the sentence.** Someone highlights step 4 of the plan and
  says "we can't do that until the vendor contract renews", and the thread
  stays pinned there — see [commenting on HTML](/comment-on-html).
- **The agent can read the replies.** Through the same MCP server, so the next
  prompt can be "address the open comments" rather than you relaying them by
  hand — see
  [letting an agent respond to comments](/agents/let-an-agent-respond-to-comments).
- **Re-running keeps the URL.** Update the same report and the link in the
  thread still resolves, with the previous version in the revision history.

## Worth knowing

- **Scope the token down.** `reports:write` is enough for publishing; a token
  that can also read every report is a bigger blast radius than an editor
  plugin needs. See [scoped tokens for AI agents](/agents/scoped-tokens-for-ai-agents).
- **HTML body: 5 MB**, which is a great deal of prose and a little bit of
  base64.
- **Nothing re-executes.** A published report is a snapshot. If you want it to
  refresh on its own, hand the job to a [routine](/docs/routines).

## Try it

Comma is free — unlimited reports, unlimited commenters, unlimited revision
history.

**[Attach the MCP server →](/mcp/cursor)**

### Related

- [Where should my agent post?](/agents/where-should-my-agent-post)
- [Share HTML an AI chat generated](/agents/share-chatgpt-html-output) ·
  [Give an agent feedback](/agents/give-an-agent-feedback)
- [MCP setup for every editor](/mcp) · [The API](/docs/api)
