Skip to content

feat(voice): support CC_VOICE env var for one-off voice override#71

Open
mthlvt wants to merge 1 commit intopchalasani:mainfrom
mthlvt:feat/voice-cc-voice-env
Open

feat(voice): support CC_VOICE env var for one-off voice override#71
mthlvt wants to merge 1 commit intopchalasani:mainfrom
mthlvt:feat/voice-cc-voice-env

Conversation

@mthlvt
Copy link
Copy Markdown

@mthlvt mthlvt commented Apr 22, 2026

Summary

  • Adds CC_VOICE environment variable to plugins/voice/scripts/say so the voice can be set per-process without mutating ~/.claude/voice.local.md.
  • --voice CLI flag still takes precedence over CC_VOICE, which takes precedence over the config file.
  • Documents the new env var in --help output and plugins/voice/README.md.

Motivation

Multi-agent setups want a distinct voice per agent so the user can tell speakers apart by ear. The config file is a single global value, and threading --voice through every call site is awkward. Setting CC_VOICE once in the agent's env (e.g. via the launcher, a wrapper script, or a hook that exports it before the agent runs) gives each concurrent agent its own voice with no shared-state contention.

Test plan

  • CC_VOICE=eponine ./scripts/say "test" plays in eponine voice
  • ./scripts/say --voice alba "test" still wins when both --voice and CC_VOICE are set
  • With neither flag nor env var set, the config file value is still used
  • ./scripts/say --help lists CC_VOICE

vibe coded with care

Adds a CC_VOICE environment variable that overrides the voice in
~/.claude/voice.local.md without requiring an edit to the config file.
The --voice CLI flag still takes precedence.

Resolution order: --voice flag > CC_VOICE env > config file.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant