feat: ship only the kokoro voices + hold replies terse while voice is on - #12
Merged
Merged
Conversation
added 2 commits
August 19, 2026 09:46
The argument-hint placeholder ran long enough to be unreadable when typing /johnny. Drop the two ElevenLabs entries and the per-voice engine tag — the remaining five are all kokoro, so the tag carried no information. Both voices stay in config.sh's registry and still work when named explicitly.
Matilda and Charlie were the only multi-language voices and the only ones needing a cloud key. Removing them from voice_registry leaves five kokoro voices, all single-language, so no name needs a language argument. The eleven engine itself stays in engines/ — add your own row with a key from your account.
The slash command sets the speak-first, write-terse contract once at activation. A long session drifts off it, and nothing pulls it back. turn-mark.sh already runs on UserPromptSubmit and already knows whether voice is active for the session, and stdout from that event is added to the model's context — so the reminder costs one printf in a hook that is already registered. It carries the resolved voice name, so the contract survives a compaction that drops the slash command.
The comment above the registry still described Matilda and Charlie as the two voices needing a language argument. Neither is in the registry any more, and every shipped row is single-language kokoro.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two things, both aimed at
/johnnybeing shorter — the placeholder you type against, and the replies you get back.Voices
The argument-hint ran long enough to be unreadable while typing. Matilda and Charlie (ElevenLabs) are gone from the shipped registry, and the per-voice engine tag went with them — the remaining five are all kokoro, so
(kkr)carried no information.commands/johnny.md— hint is nowSarah·en | Dora·pt | Fenrir·en | Alfred·en-GB | Alex·pt | off; voice table and call format trimmed to match.config.sh— the twoelevenrows dropped fromvoice_registry.Breaking:
voice Matilda pt "..."and/johnny Charlie enno longer resolve.engines/eleven.shstays — the engine still works for anyone who adds their own row and a key.Brevity
The speak-first, write-terse contract was stated once at activation and then drifted.
hooks/turn-mark.shalready runs onUserPromptSubmitand already knows whether voice is active, and stdout from that event is added to the model's context — so re-asserting the contract every turn costs oneprintfin a hook that is already registered. It carries the resolved voice name, so the contract also survives a compaction that drops the slash command.Verified:
voice voiceslists the five kokoro names and nothing else; the hook prints the reminder with voice on, prints nothing with voice off, still stamps the turn marker either way, and is shellcheck-clean.