cursor-plan-preview
Your agent writes a plan. But your team has no idea what it's about to build.
The bottleneck in agentic development isn't writing code anymore. It's getting the plan right.
A bad plan burns tokens, wastes hours, and ships the wrong thing. Team review before execution isn't optional.
Visual plan review for Cursor. Annotate inline, share with your team,
get feedback back to the agent. No backend, no accounts.
Your Agent Plans in the Dark
Cursor's plan mode generates a detailed implementation plan - files to change, architecture decisions, task breakdown. You approve it, the agent starts building. Your teammates find out when the PR lands. Or when something breaks.
There's no review step. No "hey, before you build this, can you check if this makes sense?" moment.
CPR puts the plan in front of your team before a single line of code is written.
- Agent creates a plan, you run
cursor-plan-preview plan-preview-and-share
- Plan opens in a browser UI — you annotate inline (delete, replace, comment, insert)
- Click Share Plan → URL copied with everything encoded in the hash
- Teammate opens the URL, adds their own annotations, shares back
- You export the feedback, the agent reads it on the next prompt
No accounts. No backend. The URL contains everything.
Quick Start
npx cursor-plan-preview --setup
This installs a Cursor rule and a /plan-preview-and-share slash command.
After the agent creates a plan, preview and share it — type /plan-preview-and-share in Cursor chat, or run in terminal:
npx cursor-plan-preview plan-preview-and-share
Auto-detects the latest plan from ~/.cursor/plans/ and opens it in your browser. To preview a specific file:
npx cursor-plan-preview plan-preview-and-share path/to/plan.md
How It Works
Agent generates plan -> saved to ~/.cursor/plans/
|
You run: cursor-plan-preview plan-preview-and-share
|
Plan opens in browser UI
|
You annotate + click Share Plan -> URL copied
|
Teammate opens URL -> adds annotations
|
You click Export Feedback -> -feedback.md written
|
Agent reads feedback -> adjusts plan before building
What You Can Annotate
Select any text in the plan to pick an annotation type:
| Delete (scissors) | Mark text for removal |
| Replace (arrows) | Suggest replacement text |
| Comment (speech bubble) | Add a note to specific text |
| Insert (plus) | Add new text at a point |
| Global Note | Add a note not tied to specific text |
Annotations show as color-coded highlights in the plan body. The sidebar lists all annotations with a count badge.
Sharing
Plans under ~8KB compressed get encoded entirely in the URL hash. Nothing leaves the browser. Your teammate opens the link and everything decodes client-side.
For larger plans, run cursor-plan-preview plan-preview-and-share locally and share your screen, or copy the plan body into a Slack thread.
The Feedback Loop
After teammates annotate and share back:
- Open the annotated URL
- Click Export Feedback
- A
*-feedback.md file appears in ~/.cursor/plans/
- The installed Cursor rule tells the agent to check for feedback before building
- Agent summarizes annotations and asks if you want to incorporate them
What Gets Installed
npx cursor-plan-preview --setup installs one file:
~/.cursor/rules/plan-preview.mdc | Agent rule: suggests plan-preview-and-share after every plan, checks for feedback |
~/.cursor/skills/plan-preview-and-share/SKILL.md | /plan-preview-and-share slash command in Cursor chat |
To remove everything:
npx cursor-plan-preview --uninstall
Commands
cursor-plan-preview plan-preview-and-share [file]
cursor-plan-preview list
cursor-plan-preview --setup
cursor-plan-preview --uninstall
Architecture
cursor-plan-preview/
├── src/
│ ├── cli.ts CLI entry (plan-preview-and-share, list, setup, uninstall)
│ ├── server.ts Local HTTP server (plan API + static files)
│ ├── parser.ts Plan file parser (YAML frontmatter + markdown)
│ └── utils.ts Shared utilities
├── ui/
│ └── src/
│ ├── App.tsx Review UI (React 19 + marked)
│ └── utils/
│ └── sharing.ts Deflate + base64 URL encoding
└── agent-config/
├── setup.mjs --setup handler
└── cursor/rules/ Cursor rule for feedback loop
Tech Stack
| Language |  |
| UI |  |
| Markdown |  |
| Bundler | +  |
| Testing |  |
| CI |  |
Contributing
Contributions welcome. See CONTRIBUTING.md for setup and guidelines.
Author


If this helped you, star the repo, open an issue if something breaks.
License
MIT © Ofer Shapira