tome-md
v0.2.0
Published
A local-first presentation engine for Markdown.
Maintainers
Readme
Your Markdown deserves better than a raw text editor or a GitHub preview. Tome turns any .md file into a polished, book-like reading experience in your browser — instantly, locally, with zero configuration.
npm install -g tome-md
tome README.mdThat's it. Your default browser opens with your document beautifully rendered.
Why Tome?
- 📖 Two reading modes — flip through your document page by page (split on
#and##headings, arrow keys to navigate), or read it as one continuous scroll. - 🔄 Live reload — Tome watches your file and refreshes the view the moment you save. Write in your editor, read in Tome.
- 🎨 Light & dark themes — Graphite-style themes that follow your system preference by default.
- ✨ Real syntax highlighting — code blocks rendered with Shiki, the same highlighter that powers VS Code.
- 📋 GitHub-flavored Markdown — tables, task lists, strikethrough, and autolinks all work.
- 🔒 Local-first — a tiny server bound to
127.0.0.1. Your files never leave your machine, and your original Markdown is never touched.
Usage
tome <file.md> [options]| Option | Values | Default | Description |
| --- | --- | --- | --- |
| --mode | pages | scroll | pages | Paged reading or continuous scroll |
| --theme | light | dark | system | system | Color theme |
| --port | number | 4321 | Local server port |
| --no-open | — | — | Start the server without opening a browser |
Examples
tome docs/spec.md # paged mode, system theme
tome docs/spec.md --mode scroll # one continuous page
tome notes.md --theme dark # force dark mode
tome README.md --port 8080 --no-open # serve only, open manuallyKeyboard shortcuts
| Key | Action |
| --- | --- |
| → | Next page |
| ← | Previous page |
How it works
Tome starts a lightweight local HTTP server (no Express, just node:http), splits your document into pages at #/## headings — code fences are never split — and renders it with a React viewer. A file watcher pushes changes to the browser over server-sent events, so the view stays in sync with your editor on every save.
Local development
git clone https://github.com/lumban-stephen/tome-md.git
cd tome-md
npm install
npm run build
node dist/cli/index.js sample.mdnpm run dev <file.md> runs the CLI straight from TypeScript via tsx.
License
MIT © Stephen Lumban
