Dual-mode voice for exact Codex Desktop tasks, plus a multi-provider TTS library
SpeakEasy is the voice interface for the Codex task you are already using. It combines local speech recognition, exact-task routing, and controllable narration without creating a second conversation.
Use the native macOS app when you want to:
Start with Listening mode or the Codex installation page.
Requirements: an Apple silicon Mac running macOS 14 or newer and the current Codex Desktop app. The packaged app is self-contained; Bun, Node, Xcode, and a source checkout are not required.
Use @arach/speakeasy when an application, script, or agent hook needs
provider-independent text-to-speech.
bun add @arach/speakeasy
import { say } from '@arach/speakeasy';
await say('The build is ready.');
await say('Use the configured OpenAI voice.', 'openai');
Library requirements: Node.js 22.12 or newer, or Bun 1.0 or newer. Native system playback is macOS-only; cloud providers require their own API keys.
If task identity, ownership, or turn correlation cannot be proven, SpeakEasy fails closed instead of selecting another task.
The signed 0.3.0 build is the first complete dual-mode release. It includes
the paired-HTTPS browser/PWA Deck alongside exact-task dictation and narration
on the Mac. The native iPad shell remains a developer preview.
See the GTM control plan for the launch sequence and the second-Mac checklist for the proof gate.
Run speakeasy --doctor for library and provider diagnostics. For the native
app, open SpeakEasy → Settings → Deck and use Open log when a
readiness check fails.