Skip to content

Repository files navigation

Modeleaf app icon

Modeleaf

A native, read-only macOS PDF viewer — keyboard-first, Vim-flavored, with native tabs and a minimal interface.

Korean

modeleaf-readme-demo.mp4

Philosophy

  • 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.

Key features

  • 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

Install

brew tap DS-argus/tap
brew trust DS-argus/tap
brew install --cask modeleaf

Requires 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.

Update

brew upgrade --cask modeleaf

If Homebrew has stale metadata:

brew update --force
brew upgrade --cask modeleaf

Modeleaf checks GitHub Releases at launch but never updates itself.

Keys (defaults)

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 / : / ?

Configuration

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.

Build from source

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.

License

Modeleaf is available under the MIT License.

Theme palette attributions: ThemeAttributions.md

About

A native, read-only macOS PDF viewer — keyboard-first, Vim-flavored, with tabs and tmux-style panes.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages