A native, read-only macOS PDF viewer — keyboard-first, Vim-flavored, with native tabs and a minimal interface.
modeleaf-readme-demo.mp4
- Read-only. No annotations, editing, or saving. The source PDF is never modified.
- Keyboard-first. Inspired by Sioyek, SumatraPDF, Vimium, and the Markdown TUI Leaf, while staying deliberately focused on reading.
- Configurable. Most commands and reader behavior can be remapped in one TOML file.
- Keyboard-first navigation, search, link hints, and embedded-outline TOC
- Native tabs and a recent-file picker
- Command palette and seven built-in themes
- Fit, zoom, rotation, history, and system printing
- TOML-configurable commands and reader behavior
brew tap DS-argus/tap
brew trust DS-argus/tap
brew install --cask modeleafRequires macOS 14 (Sonoma) or newer.
This build is ad-hoc signed and not yet Apple-notarized. On first launch, allow it in System Settings → Privacy & Security → Open Anyway.
brew upgrade --cask modeleafIf Homebrew has stale metadata:
brew update --force
brew upgrade --cask modeleafModeleaf checks GitHub Releases at launch but never updates itself.
| Action | Key |
|---|---|
| Scroll / large scroll | h j k l / d u |
| Previous / next page | p / n |
| First / last page | gg / G |
| Go to page | g, number, Enter |
| Back / forward | Ctrl+o / Ctrl+i |
| TOC / move / jump | t / J K / number |
| Search / next / previous result | / / Enter / Shift-Enter |
| Link hints / indicator settings | f / I |
| Fit width / page | w / F |
| Zoom / rotate | = - / [ ] |
| Copy PDF path / reveal in Finder | yy / of |
| Open / close / print / quit | ⌘o / ⌘w / ⌘p / ⌘q |
| Previous / next tab | P / N |
| Split / focus pane | Ctrl-b | Ctrl-b - / Ctrl-h/j/k/l |
| Theme / palette / help | T / : / ? |
Modeleaf reads an optional TOML config:
~/.config/modeleaf/config.toml
Keys use D (Command), C (Control), A (Option), and S (Shift). Use Write Default Config, Reload Config, or Reset Config from the command palette. See CONFIG.md for every action, default, and validation rule.
APP=$(Tools/build_release_app.sh | tail -n 1)
open "$APP"For development, use swift run Modeleaf. Run Tools/verify.sh full before opening a pull request.
Modeleaf is available under the MIT License.
Theme palette attributions: ThemeAttributions.md