MarkuprPlus
Record your screen, narrate the bug, and hand your AI coding agent structured Markdown - one annotated screenshot per mark. Desktop app, CLI, and MCP server for Claude Code, Cursor, Codex, and Windsurf. On-device Whisper transcription, local-first, MIT.
Install / Use
npx skills add hashfunction/MarkuprPlusInstalls into whichever agent you are using.
Other
Other agent config
Quality Score
Category
Content & MediaSupported Platforms
Skill content
View source on GitHub<p align="center"> <img src="docs/images/markuprplus/target-clean.png" alt="An app under review, unmarked" width="290"> <img src="docs/images/markuprplus/marked-issue-001.png" alt="The same screen with a red freehand ellipse around the problem" width="290"> </p> <p align="center"> <em>Hold <code>Cmd</code>, circle the problem, keep talking. That stroke becomes <code>MX-001</code>.</em> </p>
The Problem
Your coding agent can't see your screen. So you stop working and start transcribing: describe the layout bug in prose, take a screenshot, crop it, drag it into the right place, explain which part matters. You speak at 150 words per minute and type at 60, and the context leaks out on the way.
The Solution
MarkuprPlus is a menu bar app. It records the exact window you point at, listens while you narrate, and lets you draw on the live screen without blocking your clicks. When you stop, it transcribes on-device, aligns your words to each mark, and writes a report your agent can act on — one finding per circle, each with its own annotated frame.
Cmd+Shift+F → talk → Cmd-drag → Cmd+Shift+F → paste into your agent
The Loop
1. Press Cmd+Shift+F and pick your target
<img src="docs/images/markuprplus/popover-ready.png" alt="The MarkuprPlus popover in its Ready To Capture state" width="320" align="right">
The picker opens above every window. Whatever is under your cursor lights up — click it and the recorder locks onto that window alone, and stays locked through moves, resizes, and app switches. Region and full-display modes are one click away when a finding needs a wider frame.
If the window's identity or native geometry ever becomes ambiguous mid-session, capture stops rather than widening to whatever is behind it. You never ship a frame you didn't mean to share.
The whole app lives in this one portrait popover. No window to manage, no dock icon.
<br clear="right">2. Talk while you work
Keep clicking through your app as usual. MarkuprPlus records the window and your microphone together, then transcribes with Whisper on-device after you stop.
The picker, the drawing canvas, and the recording HUD are all excluded from screen capture at the OS level — nothing MarkuprPlus draws ends up in your video. Only your app does, plus the strokes you meant to leave.
3. Hold Cmd and draw
<img src="docs/images/markuprplus/marked-issue-003.png" alt="A red hand-drawn ellipse around the tab bar of the app under review" width="250" align="right">
Command-drag paints straight onto the live screen — freehand, circle, or highlight, in a colour you choose. Let go of the key and your next normal click both reaches the app underneath and saves that mark, clearing the canvas for the next one.
On Windows, hold Ctrl instead.
Three circles means three issues, not one screenshot with three scribbles on it. Each finding carries its own PNG, timestamp, tool, and colour.
<br clear="right">4. Press Cmd+Shift+F again
<img src="docs/images/markuprplus/popover-report.png" alt="The popover showing Report Ready with the markdown path copied to the clipboard" width="320" align="right">
Whisper runs, your narration is aligned to each mark, and the report is written to disk. The markdown path lands on your clipboard the moment it's ready — paste it straight into Claude Code, Codex, Cursor, or anything else that reads a file.
Everything for the session goes in one folder: the report, the screenshots, the session video, the narration audio, and the metadata.
<br clear="right">Quick Start
Desktop app (recommended)
Download from markuprplus.com or the releases page. macOS on Apple Silicon and Intel, plus Windows.
macOS install note: Direct downloads from GitHub Releases are signed, notarized, and stapled. If Gatekeeper rejects an artifact, use MarkuprPlus support so the release can be investigated.
- Press
Cmd+Shift+F(macOS) orCtrl+Shift+F(Windows) and click the window you want. - Narrate what you see. Hold
Cmd/Ctrland drag to mark the live screen. - Release the key, then click normally — that saves the mark and clears the canvas. Repeat for every finding.
- Press the hotkey again to stop. The report path is on your clipboard.
MCP server (for AI coding agents)
npx --yes --package markuprplus markuprplus-mcp
CLI (for recordings you already have)
npx markuprplus analyze ./recording.mov
Compatibility: the public package and commands are
markuprplusandmarkuprplus-mcp. Existing.markuprxproject files, storage paths, and app identifiers remain unchanged so upgrades keep their settings and sessions.
Optional companion for Mac App Store CLI integrations
The sandboxed Mac App Store app can use AI command-line tools already installed and signed in on your Mac through the optional MarkuprPlus CLI Bridge. Local Rules, Ollama, LM Studio, and Anthropic API do not require this companion.
Install and pair it from a Terminal:
npm install -g markuprplus
markuprplus bridge install # installs and starts a per-user LaunchAgent
markuprplus bridge token # paste this value in Settings → Advanced
markuprplus bridge status
The public npm package contains the same versioned CLI and MCP entry points used by the source release.
The service listens only on 127.0.0.1:49647, requires its random pairing token for every provider request, and accepts a fixed structured-report protocol rather than shell text. The App Store app does not run shell commands or launch external tools; the separately installed companion invokes only the provider selected in Settings.
Lifecycle and recovery commands:
markuprplus bridge start
markuprplus bridge stop
markuprplus bridge status
markuprplus bridge token
markuprplus bridge rotate-token
markuprplus bridge uninstall
Rotating the token requires pairing again. Uninstall removes the exact LaunchAgent and bridge configuration owned by MarkuprPlus; it does not uninstall your AI CLIs.
What Lands in Your Folder
One session, one directory:
originplayer-test-iphone-20260818-104731/
├── feedback-report.md # the file you paste
├── feedback-summary.md # counts and duration
├── metadata.json # per-issue capture context
├── processing-trace.json # which provider ran, how long, why it fell back
├── screenshots/
│ ├── marked-issue-001.png # one frame per mark, your stroke composited in
│ ├── marked-issue-002.png
│ └── marked-issue-003.png
├── session-recording.webm # the window, with annotations
└── session-audio.webm # your narration
A real, unedited finding from that session:
### MX-001
- **Timestamp:** 00:08
- **Tools:** freehand
- **Colors:** #ff3b30
#### User Comment
> So there's a search menu and over here by default, if there's been
> previous searches, it should list out all the searches that have
> happened in the past.
#### Marked Evidence

Each finding carries more than pixels:
| What travels with the issue | Example |
|---|---|
| Its own annotated PNG | screenshots/marked-issue-001.png |
| The narration at that moment | transcript-segment-0001 … 0002 |
| How you marked it | freehand · #ff3b30 |
| Where it came from | window:5976:0 · OriginPlayer Test iPhone · darwin |
| Cursor, active app, and focus hints | captured at the instant you drew |
| Trigger metadata | annotation, manual, pause, or voice-command |
Marked issues are numbered MX-001…; items that come from narration alone are FB-001….
Every Surface
<table> <tr> <td width="33%" valign="top"> <img src="docs/images/markuprplus/providers.png" alt="Provider list with live reachability status" width="100%"><br> <strong>Report providers</strong><br> Fifteen ways to turn a session into a report, each showing whether it's reachable <em>right now</em> — CLI version and path, local port, missing key. </td> <td width="33%" valign="top"> <img src="docs/images/markuprplus/review-editor-dark.png" alt="Review editor with editable category and severity chips" width="100%"><br> <strong>Review editor</strong><br> Reorder findings, retitle them, change category and severity, and drop the ones that were just thinking out loud. </td> <td width="33%" valign="top"> <img src="docs/images/markuprplus/markdown-preview.png" alt="Live markdown preview inside the review editor" width="100%"><br> <strong>Live markdown preview</strong><br> See the exact file your agent will read before you save it. Copy it, open the folder, or export. </td> </tr> <tr> <td valign="top"> <img src="docs/images/markuprplus/popover-recent.png" alt="Recent captures list with item and shot counts" width="100%"><br> <strong>Recent captures</strong><br> Every session stays on disk with its item and shot counts. Copy any report path back without hunting through Finder. </td> <td valign="top"> <img src="docs/images/markuprplus/hotkeys-dark.png" alt="Hotkey settings and quick reference" width="100%"><br> <strong>Hotkeys</strong><br> Record, screenshot, and pause are global and rebindable, with the quick reference kept in the panel. </td> <td valign="top"> <img src="docs/images/markuprplus/appearance.png" alt="Accent colour picker with live preview" width="100%"><br> <strong>Appearance</strong><br> Ten accent colours plus a custom picker, previewed live. Light and dark follow theTruncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
77.2kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
ruflo
70.1k🌊 The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
headroom
68.2kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
46.7kOpen-source super AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-model, multi-channel. Lightweight, extensible, one-line install. (formerly chatgpt-on-wechat)
