Settings
Everything in the menu bar, and the environment variable behind each one.
The menu bar holds all of it: the voice and its pace, the microphone, the hotkey, launch at login, and a button that speaks a sample so you can hear a voice before you commit to it.
Every setting is also an environment variable, and the environment wins, so a one-off EARSHOT_VOICE=supertonic/F1 beats whatever the menu last saved.
| Variable | Default | What it changes |
|---|---|---|
EARSHOT_HOME | ~/.cache/earshot | Models, settings and the socket. |
EARSHOT_VOICE | supertonic/M1 | Any id from the catalogue. |
EARSHOT_MODEL | the bundled gguf | By filename, inside $EARSHOT_HOME/models. |
EARSHOT_HOTKEY | Ctrl+Alt+Space | Push to talk. |
EARSHOT_MIC | system default | Device id, as listed in the Microphone menu. |
EARSHOT_REPLY | streaming | Or teleprompter. How a spoken reply is revealed. |
EARSHOT_SPEED | 1.0 | Speaking pace. Below one is slower. |
EARSHOT_STEPS | 8 | Denoising steps. Higher is steadier and slower. |
EARSHOT_SEED | 0x5EED | Fixed, so a given reply always sounds the same. Change it if a sentence comes out badly laid out. |
EARSHOT_LANG | empty | A language token for multilingual Supertonic. Leave it alone on the English model shipped here. |
EARSHOT_VAD_THRESHOLD | 0.5 | How sure the detector has to be. Raise it in a noisy room. |
EARSHOT_VAD_SILENCE | 700 | Milliseconds of quiet that end a turn. |
EARSHOT_WAKE_THRESHOLD | 0.7 | How sure the wake word has to be. |
EARSHOT_API | heyearshot.com | Where a seat is claimed and renewed. Nothing else is ever sent there. |
A bad value falls back to the default rather than being clamped to the nearest legal one, so a typo is never quietly a setting.
When it goes wrong
A setting I changed in the menu did not stick
The same setting is set in your environment, and the environment wins.
Unset the variable, or change it there instead. This order is deliberate: a one-off EARSHOT_VOICE=supertonic/F1 in front of a command should beat whatever the menu last saved.
I set a value and it is behaving as though I had not
It was rejected. A bad value falls back to the default rather than being clamped to the nearest legal one.
Check the range. A typo is never quietly a setting, and that includes the hotkey: a combination that will not parse leaves you with the default rather than with no way into the app.