← Files Voice Notify for CodexARCHIVED FILE
README.md
9.68 KB · Oct 2, 2026 · 00:29 UTC
# Voice Notify for Codex [English](README.md) | [한국어](README.ko.md) | [日本語](README.ja.md) | [简体中文](README.zh-CN.md) | [Русский](README.ru.md) Hear a private, local voice when Codex needs attention or finishes work. Voice Notify for Codex is for macOS and Windows users who miss permission prompts, subagent changes, context compaction, or task completion while focused elsewhere. ### Use - Open [Voice Notify for Codex in ChatGPT](https://chatgpt.com/plugins/plugins_6a6600dd92148191a6dfe0c16eb85c83), or use the GitHub install commands below. - Complete guided setup, personally review `/hooks`, then choose a voice, language, lifecycle events, or playback interval. You can test, mute, and unmute the local alerts at any time. ### Try it - `Tell me aloud when Codex needs permission or finishes, using the female English voice.` - `Test the local Stop alert, then mute Voice Notify.` - `Codex 작업이 끝날 때 오프라인 한국어 음성으로 알려줘.` ### Key boundaries - Runtime playback is offline and never retains or sends conversation content. - The plugin handles only Codex lifecycle voice setup and settings. It is not for general TTS or narration, speech transcription, cloud notifications, arbitrary OS audio automation, or screenshot action extraction. - Setup never installs silently or bypasses hook trust. The user reviews and trusts the bundled hook personally; unrelated notification settings remain unchanged. Verified on 2026-08-29: OpenAI Platform shows **Published**; the latest remote catalog snapshot shows **GLOBAL/AVAILABLE** with discoverability **UNLISTED**. `UNLISTED` does not mean listed or searchable in the public directory. Repository package 0.1.7 is an update candidate; this verified state describes the existing remote entry and does not claim that 0.1.7 has been reviewed or published. This is an independent plugin with MIT-licensed source code and separately licensed voice assets. It is not affiliated with or endorsed by OpenAI. ## What it does The plugin plays a local WAV for: - `SessionStart` - `UserPromptSubmit` - `PreToolUse` - `PostToolUse` - `PermissionRequest` - `PreCompact` - `PostCompact` - `SubagentStart` - `SubagentStop` - `Stop` Version 0.1.7 bundles 100 WAV files: ten lifecycle events for each combination of two voice profiles and five languages. This patch clarifies discovery metadata and equivalent first-screen guidance across all five READMEs; audio assets and runtime behavior are unchanged from 0.1.6. It uses `/bin/sh`, `plutil`, `afplay`, and `osascript` already included with macOS, or Windows PowerShell and `System.Media.SoundPlayer`. It does not require Python or Xcode Command Line Tools. It has no network code or telemetry and never stores prompts, messages, tool input, or tool output. Playback is non-blocking, and a local lock plus a short cooldown prevents overlapping clips. ### Interactive code ontology [Open this repository's interactive code ontology](https://rawcdn.githack.com/battle-doll/codex-voice-notify/ce42d10e88fc490271bea2c123a611bfa3d12b13/codex-voice-notify-code-ontology.html), generated from Voice Notify `0.1.6` with [Code Ontology Companion](https://github.com/battle-doll/code-ontology-companion), or [inspect the published HTML in this repository](https://github.com/battle-doll/codex-voice-notify/blob/code-ontology-showcase/codex-voice-notify-code-ontology.html). The self-contained snapshot maps six Python files into 417 nodes and 769 relationships, with zero parse warnings and extraction evidence plus source spans on every relationship. It supports symbol search, caller and dependency inspection, 2D structure and 3D constellation views, and per-relationship rule, basis, runtime-status, source-span, and limitation details. This is static-analysis evidence, not runtime proof. The production Windows and macOS hook entry points are PowerShell and POSIX shell and therefore fall outside this Python snapshot's adapter coverage. Publication was explicitly authorized. The preview uses raw.githack only as an HTML content-type bridge; the workbench itself has no runtime CDN or network dependency. ## Install from GitHub Give Codex the repository URL and ask it to install the plugin, or run: macOS: ```bash codex plugin marketplace add battle-doll/codex-voice-notify --ref main codex plugin add codex-voice-notify@codex-voice-notify ``` Windows PowerShell: ```powershell codex.cmd plugin marketplace add battle-doll/codex-voice-notify --ref main codex.cmd plugin add codex-voice-notify@codex-voice-notify ``` ## First-time setup After installation, select the plugin's **Finish first-time setup** prompt or ask Codex naturally: > Finish first-time setup for Voice Notify using the female Korean voice. > Check and update the Codex CLI if required. This is a safe, repeatable starter prompt. Current Codex plugin UI does not conditionally hide a prompt after first use, so it remains available for recovery or re-running setup. The guided setup: 1. Checks for a Codex CLI version that supports `/hooks` and, when explicitly authorized by the setup prompt, updates an npm or Homebrew installation if required. 2. Saves the selected voice and language. 3. Plays the local `Stop` notification as a test. 4. Opens a new terminal window and starts the verified Codex CLI in it; it does not merely print a `/hooks` instruction. The bundled setup script only reports compatibility; it does not modify the host installation by itself. Codex performs an authorized update after inspecting whether the CLI came from npm, the Homebrew cask, or another source. In the newly opened Codex CLI terminal, enter `/hooks`, inspect the bundled command, and explicitly trust it. Then fully restart Codex before testing lifecycle events. Hook trust is persisted, but an already-running Codex process may not activate newly trusted plugin hooks until the next launch. Codex deliberately does not trust third-party hooks at install time, and the plugin never bypasses that review. If an update cannot replace a currently running CLI executable, exit that CLI, run the displayed update command in a separate terminal, and start setup again. ## Configure Use natural language at any time. For example: - "Use the female English voice." - "Change Voice Notify to male Japanese." - "Use the female Russian voice." - "Change Voice Notify to male Simplified Chinese." - "여성 한국어 음성으로 바꿔줘." - "Mute Voice Notify." - "Test the Stop notification." Codex maps `female` or `male` and Korean/Hangul (`ko`), Japanese (`ja`), English (`en`), Russian (`ru`), or Simplified Chinese (`zh-CN`) to the bundled settings command. Because `zh-CN` is the only bundled Chinese variant, a generic "Chinese" or "中文" request defaults to `zh-CN` (Simplified Chinese, Mainland Mandarin). You can also run it manually from a clone: macOS: ```bash /bin/sh scripts/voice_notify_config.sh setup --voice female --language ko --open-hooks /bin/sh scripts/voice_notify_config.sh show /bin/sh scripts/voice_notify_config.sh set --voice female --language ko /bin/sh scripts/voice_notify_config.sh set --voice male --language en /bin/sh scripts/voice_notify_config.sh set --voice female --language ru /bin/sh scripts/voice_notify_config.sh set --voice male --language zh-CN /bin/sh scripts/voice_notify_config.sh test --event Stop /bin/sh scripts/voice_notify_config.sh mute ``` Windows: ```powershell powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\voice_notify_config.ps1 setup -Voice female -Language ko -OpenHooks powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\voice_notify_config.ps1 show powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\voice_notify_config.ps1 set -Voice female -Language ko powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\voice_notify_config.ps1 set -Voice male -Language ru powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\voice_notify_config.ps1 set -Voice female -Language zh-CN powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\voice_notify_config.ps1 test -Event Stop powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\voice_notify_config.ps1 mute ``` Defaults are `female`, `ko`, a 450 ms minimum interval, and eight events enabled. `PreToolUse` and `PostToolUse` remain available but default to off to avoid noisy per-tool notifications. `PermissionRequest` only plays when Codex actually asks for permission. ## Troubleshooting - If `/hooks` is unrecognized, update Codex CLI to `0.145.0` or newer and start setup again. - If PowerShell blocks `codex.ps1` or `npm.ps1`, use `codex.cmd` or `npm.cmd`. The bundled Windows settings commands use process-local `-ExecutionPolicy Bypass` and do not change the system execution policy. - If the test sound works but lifecycle notifications do not, review the hook in `/hooks`, trust it, and fully restart Codex. ## Compatibility Version 0.1.7 supports macOS and Windows with system-provided audio and scripting components. macOS does not require Python or Xcode Command Line Tools. Guided hook setup requires Codex CLI `0.145.0` or newer. Linux is not yet supported. ## Licensing Source code is MIT licensed. All WAV files under `assets/audio/` are excluded from the MIT license. Under the limited grant in [ASSET_LICENSE.md](ASSET_LICENSE.md), they may be used, copied, and redistributed only without modification, only as part of an unmodified, free copy of Voice Notify for Codex, and only for personal, non-commercial notification playback. [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) records generation provenance only. Most of the male notification set was built with Fish Audio, and two Korean subagent files were regenerated with Qwen Base to match the current wording. These provenance details do not change the voice-asset terms.
SHA-256: e3dc445775300915a2b06a0a9f65846ff544ea3fa8428ed3b4cafe208af0b548