Native macOS · Markdown + MDX

Review the Markdown your agents write.

Claude Code, Cursor and friends fill your repos with plans, reports and docs. Twain renders them safely, shows exactly what changed, lets you pin notes to the lines that need work, and turns your review into a brief the agent can act on. Native, offline, and it never runs a line of the document's code.

space previews any .md or .mdx in Finder

One-time purchase. No subscription. Free 7-day Pro trial in the app. macOS 14 or later, Apple silicon or Intel.
Launch discount: $19 (normally $29). Limited time offer.

The Twain window in light appearance: a project sidebar on the left, and index.md rendered with a Tip callout and a Where to go table. The same document in Twain's dark appearance, with the project sidebar and the rendered Tip callout and table.
Twain on macOS. One renderer drives the window, Quick Look and the CLI.
space
previews Markdown and MDX in Finder, no app to open
1
renderer shared by the app, Quick Look and the CLI
0
lines of a document's code ever executed
$19
once for Pro. One licence, all your Macs

Everything you want from a Markdown app

The viewer, Quick Look, Show Changes and diagnostics are free. Pro adds the editor, version history, notes and the agent brief, export, and presentation mode. Every card has its own page with the detail.

Markdown viewer Free

GFM tables, tasks, footnotes and alerts, KaTeX maths and highlighted code, rendered offline.

Read more
‹›

MDX viewer Free

Known components become real UI; unknown ones become safe, labelled placeholders.

Read more

Editor Pro

WYSIWYG for Markdown, source with live preview for MDX, and snippets with tab stops.

Read more

Finder Quick Look Free

Press space on any .md or .mdx in Finder and read it fully rendered, no app window.

Read more

Mermaid diagrams Free

Fenced blocks render as real diagrams, in the app and in the Finder preview.

Read more

Version history Pro

Every document keeps its own past versions, git or not, captured only when content changes. Browse them and restore any one as an unsaved edit.

Read more

Show Changes Free

A rendered diff against the last save, git HEAD or any revision, so you review what a reader will see.

Read more

Notes & agent brief Pro

Pin notes to exact source ranges, then fold them and the diagnostics into one line-anchored brief.

Read more

Diagnostics & proofing Free

Unknown components, imports, missing images and broken links with source lines, plus spell, grammar and style checks.

Read more

Workspace & search

Folder sidebar, tabs, project-wide search with line context, and live refresh when a file changes on disk.

Read more

Export & presentation Pro

Clean PDF and print, styled HTML, a self-contained single file, and slides.

Read more
$

CLI & MCP server

twain-md check, render and export, plus a read-only MCP server for agents.

Read more

MDX, without a dev server

MDX is Markdown with components. Plenty of apps will open an .mdx file; they strip the components out or print raw JSX. Twain renders it, safely, and speaks the component names Docusaurus, Mintlify, Nextra and Fumadocs use. Here is the exact difference, not a tick in a table:

guide.mdx — what's in the file
<Callout type="tip">
  Ship the docs, not a dev server.
</Callout>

<PricingTable plan="pro" />
what Twain shows
💡 Ship the docs, not a dev server.
<PricingTable plan="pro" />unknown component: shown safely, never executed

Known components (callouts, tabs, steps, cards, details) map to built-in UI, and a component map teaches Twain new names. Unknown ones become labelled placeholders with their props intact. Imports and expressions are parsed, never executed, so opening a file can't run project code. Rich MDX editing stays source-based; the WYSIWYG editor is for Markdown.

@@ what makes it different

Three things almost nothing else on your Mac does.

MDX that renders, without running the code inside it

MDX mixes prose with framework components. Twain shows the finished document by mapping meaning to safe built-ins, never by executing project code.

  • Known components become real UI. Docusaurus, Mintlify, Nextra and Fumadocs maps cover callouts, tabs, steps, cards and accordions, and a component map teaches it your own set.
  • Unknown components become labelled placeholders, so the document's meaning survives a tag it has never seen.
  • Imports and {expressions} are reported with their source line, so you know what a document assumes. Nothing is run; the output is sanitised.
An .mdx guide open in Twain: Cards and a Disclosure render as real UI, and below them an unrecognised ColorPicker component appears as a labelled placeholder showing its props, with its fallback text intact.
Real output: <Cards> and <Disclosure> become UI; an unknown <ColorPicker> becomes a labelled placeholder, not a crash.
A Finder window with an .mdx file selected, and the Quick Look preview beside it rendering the document with its heading, prose and colour-coded callouts.
The same renderer drives the Finder Quick Look preview. Remote subresources are always blocked there.

Press the space bar. There is your document

Twain installs a real Finder Quick Look preview for Markdown and MDX, so they behave like first-class files on your Mac rather than mystery text.

  • Preview .md and .mdx in place. Select a file, tap space, read it fully styled without opening an app. Almost nothing else on macOS previews MDX at all.
  • Open the folder as a workbench. Browse a whole docs folder in a sidebar, keep documents in tabs, and search the project with ⌘⇧F.
  • Live refresh. When an agent rewrites the open file, the view updates on its own.

The review loop between you and your agents

See what changed, mark what is wrong, keep a private history of every version, and hand a clean brief back to whoever, or whatever, is doing the writing. Show Changes is in the free viewer; notes, history and the brief come with Pro.

  • Show Changes, free. A rendered diff against the last save, a chosen revision or Git HEAD, so you review what a reader will actually see. When an agent rewrites the file you have open, one click shows you what it did.
  • Anchored notes and local history, Pro. Pin a note to a range of source; it re-anchors as text shifts and marks itself orphaned when the quoted text is gone. Every file keeps its own version history, Git or not.
  • Copy Report for Agent, Pro. One action folds your notes and the document's diagnostics into a line-anchored brief: change requests, then questions, then notes.
Show Changes · since last save
12 ## Installation
13 Run the setup wizard.
13 Run `npm install` then `npm start`.
14 ## Configuration
15 Set the API key in .env first.
   @@ note → confirm the env var name with the API docs
     ▸ 2 blocks added · 1 changed · 1 note
# the loop

Your agent writes the docs.
You catch what is wrong, and hand it back.

A coding agent produces a folder of Markdown and MDX faster than you can open it. Twain is the review surface in between: read it, diff it, annotate it, return a precise brief.

01 · WRITES

The agent ships docs

A folder of Markdown and MDX lands on disk, components and all.

02 · SPACE

You preview it

Press space in Finder, or open the folder in the app. It renders at once.

03 · CHANGES

You see the diff

Show Changes marks every block added, changed or moved since the last version.

04 · ANNOTATE

You mark the lines

Pin notes and change requests to exact ranges of source. They live beside the file.

05 · REPORT

You hand it back

Copy Report folds your notes and diagnostics into one line-anchored brief.

$ one renderer, every surface

The same engine, reachable from the terminal and your agents.

Everything Twain renders and checks runs the identical offline pipeline outside the window too, so what you see and what your CI checks cannot drift apart.

terminal — real output
$ twain-md check release-notes.mdx

release-notes.mdx: 2 finding(s)
  line 51  unknown component  <RoadmapWidget quarter="Q3" status="planned">
  line 55  broken link        ./configuration.md

$ twain-md check docs/ --strict --json
  → line-anchored findings · exit 1 for CI

Built for the way you already work

Point the CLI at a file or a folder for line-anchored findings, JSON output and real exit codes. Give an agent the read-only MCP server so it can review a document without writing to it. Open a file straight from VS Code or Cursor.

The Mac appversion 1.0.0
Finder Quick Lookin the build
CLI · check & renderin the build
MCP server · read-onlyin the build
VS Code & Cursorin the build
iPhone & iPadin development

"In the build" ships inside the app; the CLI, MCP server and editor helpers are not yet separately published. The iPhone and iPad companion is in development and heading to TestFlight; there is no App Store listing yet.

◆ privacy & trust

Your documents stay yours.
Your licence stays yours.

Twain is a native Mac app with a precise, verifiable stance on what leaves your machine.

no identifiers

No account, and nothing that names you

There is no account to create. An anonymous check-in counts installs, versions and editions without storing a device identifier or an IP address, and nothing it answers can affect your licence. The app keeps working if it never connects. The privacy policy spells out exactly what is counted.

quick look

Remote subresources blocked

In the Finder Quick Look preview a WebKit rule blocks every remote subresource, always, so a preview can never load a tracking pixel from someone else's document.

the app

Remote images, visible and controllable

In the app, remote images referenced by your own files load by default, with a one-tap toggle to block them and a running count of what was stopped. You decide, and you can see the decision.

no code execution

Documents cannot run code

MDX is rendered by mapping meaning to safe built-ins and sanitising the result. No import, expression or component from a file is ever executed, so an untrusted document stays inert.

reading is passive

Viewing writes nothing

Version history captures a document only when its content changes, never on a read. Review notes live in a sidecar beside the file, never inside it.

files on disk

Your files stay your files

Twain works directly on the Markdown and MDX already on your disk. No proprietary database, no lock-in, portable the day you arrive and the day you leave.

How it compares

Twain is not the only Markdown app on your Mac. The comparison page weighs it against fifteen of them in three groups, with every fact dated and sourced, and says plainly where a rival is better.

Head to head: vs Bear, vs Typora, vs Peekdown, vs Lettera, vs Obsidian, vs Marked, or the whole field in three groups.

Simple pricing

Free to read. Pay once for the whole workbench. No subscription.

Free
$0
  • View Markdown and MDX
  • Finder Quick Look
  • Maths, Mermaid, GFM, alerts
  • Show Changes and document diagnostics
  • Tabs, outline, project search
Launch discount
Pro
$19 $29 once
Launch discount, limited time offer.
  • Everything in Free
  • WYSIWYG editing for Markdown (MDX stays source-edited)
  • Version history, anchored notes, agent brief
  • PDF and HTML export, print
  • Folder mode, reading themes, presentation
  • One licence, all your Macs
Not sure yet? Download the free viewer and start a 7-day Pro trial from inside the app. No card details, no sign-up.

Prices in USD.

Questions

What is free, and what needs Pro?

Viewing is free: full MDX rendering, Finder Quick Look, Show Changes and the diagnostics panel, including the one-click diff when something rewrites the file you have open. Pro unlocks editing and saving, version history, anchored notes and the agent brief, PDF and HTML export, folder mode, reading themes, and presentation mode. You can try Pro free for 7 days.

Is it a subscription?

No. Pro is a one-time purchase. You own your version, and your licence remains yours, forever.

How does licensing work?

After purchase you receive a licence key by email. Open Twain, choose Enter Licence, and paste it. Your licence remains yours, forever, and Pro keeps working with no internet connection. Lost your key? We will send it again.

Can I use Pro on more than one Mac?

Yes. One Pro licence covers every Mac you own, with no device limit and no activations to use up. You enter the same key on each machine.

Can I get a refund?

Yes. We offer a 14-day money-back guarantee. Purchases are handled by Paddle, our Merchant of Record, who manage VAT, invoices, and refunds. See our refund policy.

What are the requirements?

macOS 14 or later, Apple silicon or Intel.

Download Twain

The free viewer, with a 7-day Pro trial built in.

Version 0.1.0 · about 12 MB · Universal (Apple silicon + Intel) · macOS 14 or later.