Markdown viewer and editor · macOS · Local

Work with your agents. Together.

A Markdown viewer and editor, built around agent notebooks. If you run agents, you already read their notebooks to know what is happening. This one keeps the files you care about in one list, wherever they live, and always rendered… so you read them like documents and change them while the agent is still working.

  • Send context, not just text
  • One list, any repository
  • Saves only when you do
Two projects, files from wherever they live. Click through them, then change one in place.

MIT. Free. 0.1.0 is a working prototype.

Why this exists

An IDE is for the engineer. This one is for the PRODUCT BUILDER.

I run several coding agents. Each one keeps a notebook, and those notebooks are the only honest record of what is happening.

For months I read them the only way I could… open the IDE, pick one repository, find the file in a tree, and there it was, raw markup in a source pane. Then the next agent, another repo, another window. And this one, it never got easier.

What I wanted was small. The files I care about, wherever they live, in one list, RENDERED, so I read them like documents and change them while the agent is still working.

Yes, I still flip to the source sometimes. I just never want to start there.

An IDE
main.swiftPackage.swiftSTATUS.md+7
▾ src  core  ui▾ tests▾ docs   STATUS.md▸ node_modules▸ .build▸ vendor
# STATUS — prod_lead ## 2026‑07‑26 **Where we are:** `P` ✅ · `D1` ✅ *Blocked on:* `REQ‑712` - [ ] verify **sanitisation** > note: re‑run the gate
❯ swift test   ·   58 passed

One repository. Raw markup. Everything else competing for the same screen.

MDWatch
PRODUCTINGSTATUS.md prod_leadSTATUS.md prod_llm MDWATCHREQUIREMENTS.md
STATUS · prod_lead

Where we are: P ✅ · D1 ✅

Blocked on: REQ‑712

☐ verify sanitisation

The notebooks you chose, from any repository, read as documents.

The whole point

Send context, not just text.

Highlight a passage, say what you want, and MDWatch assembles the working directory, file path, line numbers and a unified diff. It lands on your clipboard, and you paste it wherever it belongs.

MDWatchREQUIREMENTS.md
REQ-712 · Render Mermaid diagrams inline

User , Diagrams in my notes render as pictures, not code blocks.

Tech , Mermaid via the editor adapter (REQ-708).

lines 118–124Send to Agent
What should the agent do?
Implement REQ-712 behind the editor adapter. Write the test first.
1.4 KB Copy for Agent
Copied ✓
agent , zsh
[MDWatch] REQUIREMENTS.md **Working directory:** `/Users/you/dev/mdwatch` **File:** `REQUIREMENTS.md` **Where:** lines 118–124 **Saved:** 16:44:02 **Instruction:** Implement REQ-712 behind the editor adapter. Write the test first.

MDWatch stops at the clipboard. The paste is yours.

Containers

One list. Any repository.

A container holds files, not a folder. Pull a spec from one repository and an agent's notebook from another into the same list. Each row shows where it came from, so twenty files called STATUS.md read as twenty different things.

MDWatchSTATUS.mdupdated 16:51
PRODUCTING
AGENTS.md producting.ai
STATUS.mdprod_lead
STATUS.md • prod_llm
⚠︎ NOTES.md archive
+ Add File
SPIKES
SPIKE-001.md mdwatch
+ Add File
unsaved  ·  changed on disk since you looked  ·  ⚠︎ missing

Saving

Your file changes when you say so.

Nothing is written until you press ⌘S. No timer, no save on blur. And when an agent writes to a file you have open, it reloads and the sidebar marks what moved.

MDWatchREQUIREMENTS.md saved 16:44
MDPreview
The MDWatch source view with Markdown syntax colouring.
Rendered by default. Flip to coloured Markdown source from the toolbar.

The message

See exactly what you're sending.

The full message is on screen before you copy it. Every field is there because leaving it out makes an agent guess.

[MDWatch] REQUIREMENTS.md

**Working directory:** `/Users/you/dev/mdwatch`
**File:** `REQUIREMENTS.md`  (absolute: `/Users/you/dev/mdwatch/REQUIREMENTS.md`)
**Where:** 3 added, 1 removed · lines 92–96
**Saved:** 2026-07-26 16:44:02

````diff
@@ -92,4 +92,6 @@
 | REQ-711 | Replace the editor engine | P0 | TODO |
-| REQ-712 | *(free)* | — | — |
+| REQ-712 | Render Mermaid diagrams inline | P2 | DRAFT |
````

**Instruction:** Implement REQ-712 behind the editor adapter. Write the test first.

Local by construction

Nothing leaves your Mac.

MDWatch has no way to send anything anywhere. No key, no endpoint, no account to attach one to.

  • No network calls. Every asset loads from inside the app bundle.
  • No account, no API key. It holds no secrets because it has nothing to authenticate to.
  • Plain Markdown on disk. Delete MDWatch and every file is exactly where it was.

The agent you paste into is a separate program with its own network access. The clipboard is the entire connection, which is why you can read every byte of it first.

What it isn't.

Not a knowledge base

No graph, no backlinks, no tags, no sync, no mobile.

Not an IDE

It never wraps, embeds or replaces your terminal.

Not an agent client

It does not discover agents or talk to them. It writes to your clipboard.

A working prototype at 0.1.0. Everything above runs today… the rest is written down and coming.

Next

Direct send, and agent discovery.

Sending is copy and paste today, and that is deliberate. It works with any CLI agent and needs no setup. Next: sending straight to a running session, and discovering the agents already on your machine so you can pick one by name.

CCClaude Code CXCodex GCGemini CLI

Planned integration targets. Copy and paste already works with all three, and with anything else that reads a terminal.

The more of the building agents take, the more THE WORK that stays is reading what they wrote and deciding what happens next. That reading needs a surface. This is the one I built for it.

Install

Drag it in, clear the flag, open it.

MDWatch is unsigned, so macOS quarantines the download and blocks the first launch. One command clears it… better said now than after you decide the app is broken.

MDWatch 0.1.0

macOS 13 or later, Apple Silicon. Under 5 MB. MIT licensed.

Download the .dmg ↗

Or build it from source, which is two commands.

  1. Drag MDWatch to your Applications folder.
  2. Run this once in Terminal:
    xattr -dr com.apple.quarantine /Applications/MDWatch.app
    It removes the attribute macOS adds to downloaded files. It grants the app nothing.
  3. Open it. MDWatch launches to an empty container list.

First five minutes

Make a containerRight-click the sidebar, or ⌘N
Add filesDrag them in from Finder, or + Add File
Read a fileClick it. Markdown opens rendered, ready to edit
See the sourceMD in the toolbar
Save⌘S. Nothing else writes to disk
Send to an agentSelect text, click Send to Agent, or ⇧⌘A
Settings⌘, for theme, autosave and text width
Operating system
macOS 13 Ventura or later
Processor
Apple Silicon, M1 or newer
Size
Under 5 MB. No installer, no background service.