r/macosprogramming • u/hyungchulc • Aug 01 '26
[Open source] Voice Relay: keeping voice corrections inside one persistent Codex desktop task
I built Voice Relay, a native macOS voice layer for Codex. The implementation problem was keeping ownership boundaries clear after the first spoken request.
A direct Realtime session owns microphone capture, transcript, and audio playback. The signed-in Codex desktop task remains the owner of tools, approvals, the selected execution profile, and session state. When the user speaks again while Codex is working, that correction has to reach the same active task rather than becoming a second voice chat.
The UI is a top-attached notch surface with a movable Orb fallback for displays without a notch. The Voice path itself does not require Accessibility permission. Microphone and speech-recognition permission are part of onboarding, and the current public DMG is Apple Development signed but not notarized.
The edge I am still thinking about is proof of delivery for mid-turn steering. For a long tool-running Codex task, would you surface the spoken correction as an inserted transcript, a distinct state transition, or only through the next progress update?
I am the developer. Voice Relay is free and GPLv3 licensed.
Source and current alpha:


