# RoughDraft
Open-source, local-first Markdown reviewer built for the era of coding agents. Tagline: *"Markdown reviews for coding agents."* Open any `.md` file, leave comments, suggest edits via [CriticMarkup](http://criticmarkup.com/), feed the review back to whichever agent wrote the draft. MIT-licensed, written in TypeScript (~96% of the codebase), built by [[Nathan Baschez]] under his company's `Lex-Inc` GitHub org. ~260 GitHub stars at time of writing.
## The bet
Agents now produce drafts faster than humans can produce them. The bottleneck has moved from *writing* to *reviewing*. Code already has a mature review surface (GitHub PRs, inline comments, suggested changes). Prose written by agents — articles, specs, READMEs, manuscripts — has none. RoughDraft tries to be that surface, but markdown-native and local-first so the artifact stays a `.md` file that any editor can open.
## How it works
- **CriticMarkup** is the substrate: inline insertions, deletions, substitutions, comments, and highlights using a standard syntax that any editor or agent can parse
- **Local-first** — no cloud account, no proprietary container. Files live on disk and remain plain Markdown after review
- **Web UI over a background server** — `roughdraft start` runs a local server; `roughdraft open <file>` opens a file in the browser-based reviewer
- **Agent-compatible** — the CLI is the interface agents call to round-trip a draft: write, review, accept/reject suggestions, hand back
## Install & use
```bash
npm i -g roughdraft
roughdraft open /absolute/path/to/file.md
# Or background-server mode for multiple files:
roughdraft start
roughdraft open ./path/to/my-essay/draft.md
```
## Architecture
pnpm-workspace monorepo with three packages: CLI, web frontend, background server. Core code lives in TypeScript; minimal CSS/JS surface.
## Why it matters
Two structural reasons to track this:
1. **Markdown-first beats document-first for agent collaboration.** Agents write Markdown, IDEs already render Markdown, version control already diffs Markdown. A review tool that adds a layer to Markdown instead of forcing a translation step (to Google Docs / Notion / Word) is the natural fit. Most "AI writing" tools have this backwards.
2. **CriticMarkup as the open standard for AI suggested edits.** If reviewing AI drafts becomes a daily practice, the markup format used for suggestions becomes load-bearing. RoughDraft betting on an established open standard (rather than inventing a proprietary one) is the right move for ecosystem leverage.
## Trade-offs
- TypeScript Node CLI — easy to install if you have `npm`; nothing for non-developers
- Local-first means no built-in collaboration. Two reviewers on the same draft need to coordinate via git or shared storage
- Young project: 260 stars, small ecosystem, no IDE plugins yet
- "For coding agents" framing positions it primarily for technical users — translating the same idea for non-developer writers would be a separate product
## References
- Website: https://www.roughdraft.md/
- GitHub: https://github.com/Lex-Inc/roughdraft
- Author: [[Nathan Baschez]] / lex.page / `@nbaschez`
- CriticMarkup spec: http://criticmarkup.com/
## Related
- [[Nathan Baschez]]
- [[Claude Code]]
- [[Codex CLI]]
- [[Hermes Agent]]
- [[OpenHands]]