English | 日本語 | User guide | 日本語ガイド | Privacy | プライバシー
HeyCodex is a macOS voice-input app for writing where you already work. Press a global hotkey, speak, and HeyCodex transcribes your voice on-device with Apple SpeechAnalyzer. You can then paste the transcript as-is or use the optional AI Assist flow through a separately installed OpenAI Codex CLI.
- On-device speech-to-text for Japanese and English
- Global hotkey input; the default is the fn key
- Optional AI Assist for cleanup, punctuation, and spoken corrections
- Ask AI mode for voice instructions, with optional selected-text context
- Pasteboard-aware insertion with destination checks and Secure Input protection
- Local settings, history, and personal dictionary under your macOS user account
- English and Japanese app UI, with independent display, speech-recognition, and output-language settings
- macOS 26 (Tahoe) or later
- Swift 6.2 or later; Command Line Tools are sufficient
- A separately installed and authenticated OpenAI Codex CLI for AI Assist and Ask AI
Run codex --version to check your installed version. HeyCodex does not bundle or redistribute the Codex CLI.
# Build the app and its command-line regression runner
swift build
# Run offline regression checks
.build/debug/HeyCodex --test-regressions
# Assemble a signed Debug app bundle
./scripts/make_app.sh debugThe app bundle is written to dist/HeyCodex.app. A stable local signing identity is needed for macOS privacy permissions to remain associated with the app. If needed, run bash scripts/make_signing_cert.sh before building the app bundle.
For a release bundle, run:
./scripts/make_app.sh releaseHeyCodex needs these macOS permissions:
- Accessibility — detects the global hotkey and sends the paste shortcut.
- Microphone — records voice input.
- Speech Recognition — lets SpeechAnalyzer transcribe on-device.
After granting permissions, quit and relaunch the app. Accessibility is checked when the process starts.
Press the configured hotkey (fn by default), speak, then press it again to stop. The HUD shows the current state while HeyCodex records, transcribes, optionally refines, and inserts text.
Ask AI uses fn + Space to start and fn to stop by default. With selected text, it treats your spoken instruction as a request about that selection. Without a selection, it shows the answer in its own window instead of automatically inserting it.
See the full user guide or the Japanese user guide for setup, settings, history controls, and troubleshooting.
Audio is transcribed on-device. When AI Assist is enabled, or when you use Ask AI, HeyCodex sends the relevant text to the Codex CLI running on your Mac; that CLI may send the request to OpenAI under your own authenticated account. Raw audio is not sent by HeyCodex to the Codex CLI.
Read the complete Privacy Policy before using AI-backed features.
HeyCodex began before Build Week as a personal project that was still under active development. During the event, I used Codex with GPT-5.6 to review existing behavior, make product decisions, implement changes, and validate them. The work focused on making the project clearer, safer, and more usable for a broader range of people. The public evidence, scope boundary, and claim limits are documented in docs/BUILD_WEEK_2026.md.
The source code is available under the Apache License 2.0. Read NOTICE for the separate treatment of HeyCodex brand assets.
HeyCodex is an independent project and is not affiliated with, endorsed by, or sponsored by OpenAI. “OpenAI,” “ChatGPT,” and “Codex” are trademarks of their respective owners and are used only to identify the external runtime required by optional features.