LocalVoiceAI runs as a macOS LaunchAgent under the service labelDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/npateriya/LocalVoiceAI/llms.txt
Use this file to discover all available pages before exploring further.
com.localvoiceai.localvoice, making it fully independent of any terminal window, IDE, or shell session. Once loaded, the agent is managed through launchctl — either directly or via the convenience make targets that ship with the project. This page covers every service operation you’ll need.
Command Reference
The followingmake targets wrap the underlying launchctl calls and handle path substitution in the plist automatically.
| Command | What it does | Re-grant permissions? |
|---|---|---|
make install | First-time build + install | Yes (once) |
make start | Start listening | No |
make stop | Stop listening | No |
make reload | Reload plist config (no binary change) | No |
make update | Rebuild + reinstall binary | Yes |
make uninstall | Remove binary + LaunchAgent | — |
make status | Show launchctl service status | No |
make build | Compile binary only (output: ./localvoice) | No |
make clean | Remove the compiled ./localvoice binary | No |
make build and make clean operate on the local build artifact only and do not affect the installed service or LaunchAgent. Use make build when you want to compile without installing, and make clean to remove the resulting ./localvoice binary from the project directory.
After
make update the binary is recompiled and code-signed with a new hash. macOS treats the new binary as a different executable and revokes both Accessibility and Input Monitoring permissions. You must re-add ~/.local/bin/localvoice to both lists in System Settings → Privacy & Security before the service will work again.Direct launchctl Commands
If you installed LocalVoiceAI from a release tarball (using install.sh) rather than building from source, you won’t have the Makefile available. Use launchctl directly:
launchctl list output shows the PID (if running), the last exit code, and the service label. A PID of - means the service is loaded but not currently running.
Checking Logs
All output fromlocalvoice — including recording events, transcription results, and errors — is written to a single log file. This is configured via the StandardErrorPath key in the LaunchAgent plist (~/Library/LaunchAgents/com.localvoiceai.localvoice.plist):
Auto-Start on Login
The LaunchAgent plist ships withRunAtLoad set to false:
~/Library/LaunchAgents/com.localvoiceai.localvoice.plist in a text editor, change <false/> to <true/> under the RunAtLoad key, and reload the agent:
make reload unloads the current plist, writes the updated version, and reloads it — no binary change, so no permission re-grant is needed.
Uninstalling
Remove the binary and LaunchAgent
Run
make uninstall. This unloads the LaunchAgent from launchctl, deletes the plist from ~/Library/LaunchAgents/, and removes the binary at ~/.local/bin/localvoice.Remove the cached Whisper model (optional)
The
ggml-small.bin model (~244 MB) is stored in ~/.cache/localvoice/. If you no longer need it, delete the directory: