Reading a paper and want to grab that equation? Screenshot a table from a slide? Copy text from a scanned PDF?
⌘⇧O → select region → text in your clipboard.
Local OCR for macOS. Runs LightOnOCR-2-1B via llama.cpp. Pure bash, nothing leaves your machine.
curl -LsSf https://raw.githubusercontent.com/staghado/better-live-text/main/install.sh | shThen:
- Grant Hammerspoon Accessibility access (System Settings → Privacy & Security → Accessibility)
- Click Hammerspoon menu bar icon → Reload Config
- Press Cmd+Shift+O
- Select a region
- Wait for "✓ Copied"
- Paste with Cmd+V
First run downloads the model (~1GB). Subsequent runs are fast depending on screenshot size.
Edit MODEL and QUANT at the top of src/better-live-text/run.sh. Kill the running server (pkill llama-server) to apply changes.
| Quant | GGUF | Size | Speed |
|---|---|---|---|
Q8_0 |
Q8_0-GGUF |
~1 GB | Slowest, best quality |
Q4_K_M (default) |
Q4_K_M-GGUF |
846 MB | Faster |
Q4_K_S |
Q4_K_S-GGUF |
833 MB | Fastest, lower quality |
- 🖥️ Fully local — no data leaves your machine
- ⚡ Fast — pure bash, no Python startup overhead
- 🎯 Simple — one hotkey (Cmd+Shift+O)
- 🧹 Clean — auto-deletes screenshots
- 🧮 Handles LaTeX equations, tables, and structured content from papers
- 📸 Works on anything on screen — scanned PDFs, slides, code, error messages, diagrams
curl -LsSf https://raw.githubusercontent.com/staghado/better-live-text/main/uninstall.sh | sh- macOS (Apple Silicon)
- Homebrew
The install script will also install:
- llama.cpp — runs the OCR model
- Hammerspoon — hotkey binding
- jq — JSON processing
- Hammerspoon listens for Cmd+Shift+O
- Triggers
screencapture -i(interactive region selection) - Downscales image to fit model's native resolution
- Sends to local LightOnOCR model via llama.cpp
- Copies extracted text to clipboard
- Deletes screenshot
MIT
