About Mull Reader
Mull Reader is a lightweight, open-source markdown reader for knowledge created by AI agents — and a place to edit it or write your own. It began as a strict reader; documents turned out to want ticking, correcting, and starting from scratch, so now they can be edited too, while reading stays the heart of it. It installs as a progressive web app, works offline, and has no build step and no frameworks behind it.
The challenge is no longer the availability of knowledge — agents produce it faster than anyone can keep up with. The challenge is understanding it, and understanding cannot be outsourced. Agents share what they know in markdown files, and we read on whatever is at hand: a phone in a queue, a tablet on the couch, a desktop at work. This is a reading environment for exactly that — a place to mull things over.
All documents remain local, always. Files are read directly in your browser; nothing is ever uploaded. See Privacy for the details.
Reading
- Open a file from the sidebar, the welcome screen, or ⌘O — or drag a
.mdfile anywhere onto the window. - Open a folder from the sidebar or ⇧⌘O to browse a whole set of markdown files, and the folder reconnects on your next visit. Dropping a folder onto the window works too.
- Paste markdown straight from the clipboard — useful on a phone, where copying a document out of a cloud app beats hunting for it through a file picker.
- Checklists are live — tap anywhere on a task to tick it; the whole row is the target, sized for thumbs, and the tick is written into the document. In Chrome and Edge it's saved straight back to the file (the browser asks permission once, or ⌘S); everywhere else the tick is kept with the document in Recents, and the save button in the top bar exports an updated copy.
- Add checklist items in place — every checklist ends in a ghost + Add item row. Tap it, type, and ↵ appends a real task line to the document, matching the list's own bullet style and indentation; the input stays open so several items go in one after another.
- Checklist view — a small strip above a document's first checklist counts what's done and offers Hide completed and Completed last. Both change only the view, remembered per document; the file's own order is never rewritten.
- Edit any document — the pencil in the top bar (⌘E) flips between the rendered page and the raw markdown. Edits save the same way ticks do: back to the file in Chrome and Edge, kept in Recents everywhere, exported as a copy on demand.
- Rename a document by tapping its name in the top bar. A real file is renamed on disk (Chrome and Edge); a note or pasted document is renamed where it lives, in Recents.
- Recent documents in the sidebar and on the welcome screen hold the last twelve things you read, so getting back to one is a tap rather than another trip through the picker. Each entry has an × to remove it, and Clear recent empties the list. See the privacy page for what that stores.
- Contents sidebar lists the headings with scroll-spy, above them the file tree when a folder is open; ⌘B toggles it, and you can drag its edge to resize.
- Settings panel slides in from the right with text size, brightness, and colour warmth, all remembered between visits. It stays open while you try things and closes when you touch anything outside it.
- Reader mode hides everything but the page, with a reading progress percentage. Esc exits.
- E-ink mode switches to pure grayscale with no shadows or motion, for e-ink displays.
- Compact spacing tightens the gaps between paragraphs, headings, and list items — agent-written markdown is mostly lists, and at full editorial spacing that turns into a lot of scrolling.
- Find in document — the magnifier in the top bar, or ⌘F, searches the open document; ↵ and ⇧↵ move between matches and Esc closes it. Installed on iOS the app has no browser find bar of its own, so this is the way to search a document on a phone.
- Reading position is remembered for each document, so reopening one puts you back where you stopped rather than at the top.
- Auto-resume reopens the last document you were reading when the app starts, wherever a folder can't be reconnected on its own — like an e-reader opening the book you were in.
- Live refresh re-reads the open file whenever the window regains focus, so edits from an agent still writing show up on their own.
What it renders
GitHub-flavoured markdown: tables, task lists, strikethrough, and autolinks, with syntax highlighting and a copy button on every code block. YAML frontmatter is treated as metadata and hidden. Everything is sanitised before display.
A note about images
Images that point at a web address (https://…) or that are embedded directly in the file as data URIs display normally. Images stored next to your markdown file — the common  form — will not display. Browsers only grant a web page access to the exact file you picked, not to its neighbours, so there is no way for the app to reach them. If you need images to travel with a document, embed them in the file or host them online.
Google Drive and other cloud folders
Documents stay local, so there is no cloud account to connect — instead, cloud storage works through your device. With Google Drive for Desktop (or the OneDrive, Dropbox, and iCloud equivalents), your Drive appears as an ordinary folder that Open folder can browse like any other, edits syncing in the background. On phones and tablets, the system file picker offers Drive as a source when the Drive app is installed, so Open a file reaches it there. Nothing is uploaded either way; the app just reads what your device shows it.
Browser support
Fully featured in Chrome and Edge. Firefox and Safari fall back to standard file and folder pickers, cannot reconnect to a folder automatically, cannot open a file by double-clicking it, and cannot write to or rename files on disk — edits there are kept with the document in Recents and saved as exported copies. Reading, rendering, themes, and offline support all work the same everywhere.
Keyboard shortcuts
- ⌘O / Ctrl+O — open a file
- ⇧⌘O / Shift+Ctrl+O — open a folder
- ⌘B / Ctrl+B — toggle the contents sidebar
- ⌘F / Ctrl+F — find in the open document
- ⌘E / Ctrl+E — edit the document, or return to the page
- ⌘S / Ctrl+S — save changes
- Esc — close the search bar, leave the editor or reader mode, or close the settings panel
Open source
Mull Reader is MIT licensed. Issues and pull requests are welcome at github.com/ramanvir/mull-reader, and if you'd like the app to do something it doesn't, request a feature — a sentence is plenty. The guiding constraints are no build step, no frameworks, no telemetry, and documents that never leave the machine.