jev-use
Say it, and your Mac does it, with no vision model.
A computer-use harness in Swift that reads the screen through the macOS Accessibility API, so there is no screenshot and no vision model in the loop. Jev picks the action from the accessibility tree.
# jev-use Voice and typed computer use for macOS. You say what you want. Jev picks the next on-screen action. macOS performs it. No screenshots: the app reads the screen through the Accessibility tree. ## Quick start Requires macOS 14.2+ and Xcode. No dependencies. ```sh bash build.sh open "$HOME/Applications/Desktop Voice.app" ``` In setup: save your TypeSafe API key (stored in the Keychain), then allow Accessibility, microphone and speech. Hold **Control–Option–Space**, speak, release. Change this combination in **Settings → Choose your voice shortcut → Change shortcut**; press the key and any modifiers you want. Your choice is saved across launches. Escape cancels recording, and a conflicting shortcut leaves the previous choice in place. macOS-reserved combinations and modifier-only shortcuts are not supported. **Escape** cancels. Or type a command in the widget, or from a shell: `scripts/say.sh "Open Finder"`. ## Hands-free widget Click **Start hands-free** in the widget. Speak a command and pause for about 1.5 seconds to submit it. The app waits for Apple's final transcript before acting, pauses its microphone while executing, then listens for your next command. Idle listening sessions renew automatically. Ordinary hands-free mode is off at launch. If wake-word activation is enabled, background wake-word listening starts after setup is ready. Click **Hands-free on · Stop**, press **Escape**, or open Settings to stop the active hands-free session. With wake-word activation enabled, closing the widget or opening Settings returns to background wake-word listening. A microphone, recognition, or command error also stops it and shows the problem. Apple Speech may process audio online, as with hold-to-talk. ### Optional wake phrase Enable **Invoke the widget by