Jev Voice
Local whisper.cpp for the transcript, then one Jev request picks the action and its typed arguments; code owns execution.
# Jev Voice Talk to your Mac. You speak, it opens apps, types, searches, scrolls, presses keys. Everything runs locally except one ~250 ms call to **Jev** (TypeSafe's System One model), which turns the transcript into a typed action plus typed arguments in a single fan-out request. Jev never generates text; code produces candidate values and Jev *selects*. Code owns execution. ``` mic ─► energy VAD ─► whisper.cpp (Metal, ~100 ms) ─► Jev (1 request, ~250 ms) ─► macOS actions ─► `say` ``` ## Setup (macOS, Apple Silicon) ```sh cp .env.example .env # add your TYPESAFE_API_KEY from console.typesafe.ai ./scripts/setup.sh ``` The script installs whisper-cpp + ffmpeg, downloads the model, syncs the Python env, remaps **Caps Lock → F18** with `hidutil` (persisted by a LaunchAgent so it survives reboots), installs a `jev` launcher in `~/.local/bin`, and opens the three permission panes. Grant the terminal app you launch from (Cursor / Terminal / iTerm) **Microphone**, **Accessibility** and **Input Monitoring**. If a permission is missing at launch, Jev Voice prompts for it and waits. Undo the Caps Lock remap any time: `./scripts/uninstall-capslock.sh`. ## Run ```sh jev # hands-free: "Alfred, open chrome" (or tap CAPS LOCK, then speak) jev --hold # hold CAPS LOCK to talk, release to run; no wake word jev --always-on # open mic, EVERY utterance is a command (no wake word) jev --ptt # push-to-talk in the terminal: Enter start / Enter stop jev --device "RØDE" # pick a mic (uv run python -m sounddevice) jev --text "open chrome and go to youtube" --dry-run # test routing, no mic ``` **Hands-free mode (default):** the mic stays open and