Home / Works / Muduck

Muduck

A Markdown reader for the reports AI writes
Product, design & build · Solo 2026 macOS · Windows Open source · MIT GitHub

I vibe-code most days, and every AI tool I work with answers in Markdown: audits, plans, progress logs. A code editor shows those files as source. The readers that render them well are paid, and heavier than the job. So I made the tool I was missing — only what reading a report needs, light and fast — plus a Quick Look preview for Finder.

Download for macOS Download for Windows Source on GitHub

Free. macOS build for Apple Silicon. The app is not notarized yet, so macOS asks to confirm the first launch (right-click → Open), and Windows SmartScreen may warn about an unknown publisher.

Muduck on macOS, Paper theme: an AI release audit with an outline on the left, a note callout and a results table

Five themes, three typefaces, adjustable width and zoom. These are the app’s own screens — switch them.

9.6 MB
the whole app on a Mac
3 MB
the Windows installer, no admin rights needed
−59%
main bundle, from 1727 to 705 KB
0
scripts a document can run

Open it while the agent is still writing

A report changes while you read it. Muduck watches the open file and shows each new version — but only when the writer is done: it waits for two identical checks in a row, 400 ms apart, so a half-written table never reaches the screen. If you were editing the file yourself, your edits stay.

Everything an AI report is made of

Tables, GitHub callouts, Mermaid diagrams, formulas, highlighted code with copy and collapse, task lists — drawn the way the model meant them. The outline on the left is built in the same pass as the page, so it never points at the wrong heading.

A Mermaid flowchart of the file watcher and a tip callout with a typeset formula
A Rust code block with language label and copy button, and a warning callout
A task list with done and open items

Read, split, edit

Reading is the default. When a report needs a fix, Split puts the source next to the result and keeps the two scrolled together; Edit is the source alone. Find in document, zen mode and export to PDF sit in the same bar.

Split view: Markdown source on the left, the rendered report on the right

Space bar in Finder

Select a .md file and press Space: the same renderer, inside Quick Look, following the system’s light or dark mode. Most of the time that is all the reading a file needs.

Quick Look as macOS ships it: the same report as raw Markdown source in a monospaced font, with an Open with TextEdit button
Quick Look as macOS ships it: the source
Quick Look with Muduck: the report rendered — heading, paragraphs and a bulleted list in the Paper theme, with an Open with Muduck button
With Muduck: the report

A report is untrusted input

A model can write <img onerror> into a report as easily as a table — and a desktop app can write to disk. So the reader treats every document as a stranger’s.

Small on purpose

The first version ran on Electron. I moved it to Tauri — a native shell around the system’s own web view — and the app became 9.6 MB on a Mac and a 3 MB installer on Windows. The diagram engine loads only when a document has a diagram, and the code highlighter carries about 35 common languages instead of all of them: the main bundle went from 1727 to 705 KB.

Both builds come from one codebase and one Mac: the Windows installer is cross-compiled, not built on a second machine.

Designed, built and shipped by one person — product, interface, icon, Rust backend, renderer, releases.