Rust macOS automation toolkit — screenshot, OCR, accessibility CLI, break reminder, and more, built on Apple native frameworks via objc2
Rust
98
127 commits
updated Apr 18, 2026
A collection of macOS automation & productivity tools written in Rust, built on Apple native frameworks (CoreGraphics, Vision, AppKit, Accessibility) via the objc2 ecosystem.
Interactive screenshot tool with region selection and text recognition.
Ctrl+Cmd+A global hotkey to activatecargo run --bin picc
Note: axcli is now maintained in a standalone repository: andelf/axcli. The version here may be outdated.
Playwright-style CLI for macOS app automation via the Accessibility API. Supports element locating, clicking, typing, scrolling, screenshots with OCR, and more.
axcli --app Lark snapshot # Print accessibility tree
axcli --app Lark click '.SearchButton' # Click element by locator
axcli --app Lark input '.SearchInput' 'hello'
axcli --app Lark screenshot --ocr -o /tmp/shot.png
axcli --app Lark get AXValue '.SearchInput'
Pomodoro-style break reminder with menubar countdown. Supports LAN sync across multiple devices via UDP broadcast.
cargo run --bin standup -- --work 25 --break 5
cargo run --bin standup -- --solo # Disable LAN sync
Print or interactively browse the accessibility tree of any macOS app.
cargo run --bin ax_print -- --app Lark
cargo run --bin ax_tui -- --app Chrome
Hidden Bar clone — collapse/expand menubar icons by toggling a separator status item.
cargo run --bin hidden
Hold right Command key to dictate speech, recognized text is typed at the cursor. Supports SenseVoice (offline, via sherpa-onnx) and Apple Speech API engines.
# Install Apple Speech-only build
cargo install --git https://github.com/andelf/picc --bin dictation
# Apple Speech API (default, no setup needed)
dictation --engine apple
# Build with SenseVoice support enabled
cargo install --git https://github.com/andelf/picc --bin dictation --features sensevoice
# SenseVoice (offline, model auto-downloaded on first run, ~250MB)
dictation --engine sensevoice
Alternative dictation tool using Fun-ASR-Nano (0.8B LLM-based ASR, 31 languages). Inference is significantly slower than SenseVoice due to the larger LLM-based model. Use dictation --engine sensevoice instead.
# Build with an external sherpa bundle
export DICTATION_NG_SHERPA_DIR=~/.local/share/picc/sherpa-onnx-v1.12.28
cargo run -p dictation-ng
# Model auto-downloaded on first run (~715MB)
If DICTATION_NG_SHERPA_DIR is not set to a valid sherpa-onnx v1.12.28 bundle, the workspace still compiles, but dictation-ng falls back to a stub binary that exits with setup instructions.
Hold right Command to dictate speech; tap then hold to voice-correct existing text using LLM. Combines push-to-talk dictation with voice-driven text correction powered by Kimi API.
# Apple Speech (default)
KIMI_API_KEY=sk-... cargo run --bin voice-correct
# SenseVoice (offline)
KIMI_API_KEY=sk-... cargo run --bin voice-correct --features sensevoice -- --engine sensevoice
Experimental variant of voice-correct with term correction and alternate trigger behavior.
Keep it for evaluation and comparison; do not treat it as the primary speech product shell yet.
Menubar indicator showing Claude Code session status, driven by Claude Code hooks.
cargo run --bin claude_menubar
# All tools (without dictation, fast build)
cargo install --git https://github.com/andelf/picc
# All tools including dictation (slower, compiles sherpa-onnx)
cargo install --git https://github.com/andelf/picc --features sensevoice
MIT/Apache-2.0
127 commits
Rust
100.0%
Rust macOS automation toolkit — screenshot, OCR, accessibility CLI, break reminder, and more, built on Apple native frameworks via objc2
Rust
98
127 commits
updated Apr 18, 2026
A collection of macOS automation & productivity tools written in Rust, built on Apple native frameworks (CoreGraphics, Vision, AppKit, Accessibility) via the objc2 ecosystem.
Interactive screenshot tool with region selection and text recognition.
Ctrl+Cmd+A global hotkey to activatecargo run --bin picc
Note: axcli is now maintained in a standalone repository: andelf/axcli. The version here may be outdated.
Playwright-style CLI for macOS app automation via the Accessibility API. Supports element locating, clicking, typing, scrolling, screenshots with OCR, and more.
axcli --app Lark snapshot # Print accessibility tree
axcli --app Lark click '.SearchButton' # Click element by locator
axcli --app Lark input '.SearchInput' 'hello'
axcli --app Lark screenshot --ocr -o /tmp/shot.png
axcli --app Lark get AXValue '.SearchInput'
Pomodoro-style break reminder with menubar countdown. Supports LAN sync across multiple devices via UDP broadcast.
cargo run --bin standup -- --work 25 --break 5
cargo run --bin standup -- --solo # Disable LAN sync
Print or interactively browse the accessibility tree of any macOS app.
cargo run --bin ax_print -- --app Lark
cargo run --bin ax_tui -- --app Chrome
Hidden Bar clone — collapse/expand menubar icons by toggling a separator status item.
cargo run --bin hidden
Hold right Command key to dictate speech, recognized text is typed at the cursor. Supports SenseVoice (offline, via sherpa-onnx) and Apple Speech API engines.
# Install Apple Speech-only build
cargo install --git https://github.com/andelf/picc --bin dictation
# Apple Speech API (default, no setup needed)
dictation --engine apple
# Build with SenseVoice support enabled
cargo install --git https://github.com/andelf/picc --bin dictation --features sensevoice
# SenseVoice (offline, model auto-downloaded on first run, ~250MB)
dictation --engine sensevoice
Alternative dictation tool using Fun-ASR-Nano (0.8B LLM-based ASR, 31 languages). Inference is significantly slower than SenseVoice due to the larger LLM-based model. Use dictation --engine sensevoice instead.
# Build with an external sherpa bundle
export DICTATION_NG_SHERPA_DIR=~/.local/share/picc/sherpa-onnx-v1.12.28
cargo run -p dictation-ng
# Model auto-downloaded on first run (~715MB)
If DICTATION_NG_SHERPA_DIR is not set to a valid sherpa-onnx v1.12.28 bundle, the workspace still compiles, but dictation-ng falls back to a stub binary that exits with setup instructions.
Hold right Command to dictate speech; tap then hold to voice-correct existing text using LLM. Combines push-to-talk dictation with voice-driven text correction powered by Kimi API.
# Apple Speech (default)
KIMI_API_KEY=sk-... cargo run --bin voice-correct
# SenseVoice (offline)
KIMI_API_KEY=sk-... cargo run --bin voice-correct --features sensevoice -- --engine sensevoice
Experimental variant of voice-correct with term correction and alternate trigger behavior.
Keep it for evaluation and comparison; do not treat it as the primary speech product shell yet.
Menubar indicator showing Claude Code session status, driven by Claude Code hooks.
cargo run --bin claude_menubar
# All tools (without dictation, fast build)
cargo install --git https://github.com/andelf/picc
# All tools including dictation (slower, compiles sherpa-onnx)
cargo install --git https://github.com/andelf/picc --features sensevoice
MIT/Apache-2.0
127 commits
Rust
100.0%