A Rust CLI for local meeting recording and transcription on macOS. Native
ScreenCaptureKit capture, local whisper.cpp, no backend.
Default output is human-readable. Use --output json or --output yaml for
machine-stable formats.
Pick one:
| Method | Command / Steps |
|---|---|
| Homebrew (macOS) | brew install donutdaniel/homebrew-tap/scribecli |
| Binary (GitHub Releases) | Download the archive for your platform, extract it, and move scribecli somewhere on your PATH. |
| Cargo / local checkout | cargo install --path . or cargo build --release |
Homebrew and release archives bundle whisper-cli. Raw Cargo or repo builds do
not. For those, install whisper-cpp yourself first, for example:
brew install whisper-cppFor a prod-like local package layout:
./scripts/package_local_release.sh
./dist/local/scribecli-local/bin/scribecli --help- Bootstrap the local runtime:
scribecli setup- Verify capture and model readiness:
scribecli --output json doctor- Record a meeting:
scribecli recordOr use the split lifecycle if an agent wants explicit start/stop control:
scribecli start
scribecli stop| Flag | Description |
|---|---|
--output <format> |
human (default), json, or yaml |
--verbose |
Increase log verbosity. Repeat for more detail |
scribecli setup
scribecli setup --model large-v3-turbo
scribecli setup --model medium-en --force-downloadscribecli model list
scribecli model use small-en
scribecli model use large-v3-turbo --force-download
scribecli model remove small-en
scribecli model remove --allscribecli record
scribecli --output json record --duration-seconds 30
scribecli record --input-mode single-device
scribecli record --input-mode mic-system-mix
scribecli record --display-id 1 --duration-seconds 15scribecli start
scribecli --output json start --session-name weekly-sync
scribecli start --duration-seconds 1800
scribecli stopscribecli transcribe ./meeting.wav
scribecli transcribe weekly-sync-20260326T120000Z-1234
scribecli transcribe ~/Library/Application\ Support/com.scribecli.scribecli/sessions/<session-id>scribecli doctor
scribecli devices list
scribecli config get
scribecli config set input-mode single_device
scribecli cleanup --sessions
scribecli cleanup --allManaged state lives under:
~/Library/Application Support/com.scribecli.scribecli
Important subdirectories:
models/: managed Whisper model filessessions/: recordings, transcripts, and event logsbin/: managedwhisper-cliwrappernative-helper/: compiled native capture helper
brew uninstall scribecli removes the package, but not this app data. To purge
managed state:
scribecli cleanup --all- macOS only.
- Native macOS capture is the only backend.
- Terminal installs show permissions under the terminal app that launched
scribecli(for example, Ghostty). mic-system-mixstill usesffmpegfor post-capture audio mixing.- Speaker labels are heuristic only. They are segmentation hints, not identity.