-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration
Jarvis Line stores its active runtime configuration at:
~/.codex/hooks/jarvis_line_config.json
Use the CLI or Preview macOS app for normal changes. Direct JSON editing remains available for advanced users.
jarvis-line config get
jarvis-line config get tts
jarvis-line config get speak_mode
jarvis-line config get attention_enabled
jarvis-line config get final_chime_enabled
jarvis-line config get final_chime_volumeInspect defaults, backend capabilities, and the UI contract:
jarvis-line config defaults
jarvis-line config defaults kokoro
jarvis-line config schema
jarvis-line config schema system
jarvis-line config contractjarvis-line config set speak_mode commentary_and_final
jarvis-line config set max_spoken_chars 240
jarvis-line config set volume 0.6
jarvis-line config set quiet_hours 22:00-08:00
jarvis-line config set quiet_days saturday,sunday
jarvis-line config set fallback_tts system
jarvis-line config set attention_enabled false
jarvis-line config set final_chime_enabled true
jarvis-line config set final_chime_volume 0.6
jarvis-line config set speech_enabled true| Setting | Default | Meaning |
|---|---|---|
tts |
kokoro |
Selected backend |
speak_mode |
final_only |
final_only, commentary_and_final, or off
|
line_language |
English |
Expected language of spoken lines |
line_prefixes |
Jarvis line: |
Accepted explicit status prefixes |
speak_without_prefix |
false |
Optional short fallback when no explicit prefix exists |
max_spoken_chars |
240 |
Maximum spoken summary length |
max_queue_size |
8 |
Maximum queued jobs |
quiet_hours |
null |
Optional local quiet-time range |
quiet_days |
[] |
Optional days where speech is skipped |
speech_enabled |
true |
Master speech switch |
attention_enabled |
false |
Permission and input-required speech switch |
final_chime_enabled |
true |
Short notification cue immediately before eligible final speech |
final_chime_volume |
1.0 |
Independent completion cue volume from 0.0 to 1.0
|
fallback_tts |
null |
Backup backend if the selected TTS fails |
volume |
0.7 |
Playback volume where supported |
debug_content_logging |
false |
Include spoken content in legacy local logs |
audio_worker_idle_exit_seconds |
60 |
Idle time before releasing TTS memory |
audio_worker_max_rss_mb |
512 |
Worker memory ceiling before a drained restart |
Backend-specific fields are accepted only when the selected backend supports
them. Run jarvis-line tts capabilities before setting voice, model, speed, or
command fields.
These controls are independent:
-
attention_enabled = falsedisables only permission/input-request speech -
speech_enabled = falsedisables every Jarvis Line sound -
speak_mode = offsuppresses status and attention speech -
final_onlystill permits enabled attention alerts
The macOS quick-panel Attention switch writes only attention_enabled; it does
not save unrelated edits that may be open in the full Settings window.
final_chime_enabled is a strict boolean and defaults to true.
final_chime_volume accepts a number from 0.0 to 1.0 and defaults to 1.0.
Both defaults also apply to older configuration files that do not contain the
keys. The cue plays only before eligible final speech. Commentary, attention
alerts, TTS warm-up, stale jobs, and replaced jobs remain silent.
For an older raw config, config get final_chime_enabled may print null
because the key is absent; the runtime still applies the true default. Use
config set to persist an explicit preference.
jarvis-line config set final_chime_enabled false
jarvis-line config set final_chime_volume 0.6The waveform is generated locally and uses the same serialized audio path as speech. Its independent volume does not change TTS playback volume. The temporary WAV is removed after playback. A cue failure is logged but does not suppress the final line, and TTS fallback does not replay the cue. In the macOS app, use Settings → Speech → Events → Final chime and Final chime volume.
jarvis-line config prefix list
jarvis-line config prefix add "Friday line:"
jarvis-line config prefix remove "Friday line:"jarvis-line config profile save work
jarvis-line config profile list
jarvis-line config profile use work
jarvis-line config profile delete workProfiles store a complete configuration snapshot. Review TTS credentials and custom command behavior before sharing a profile.
If you edit the file manually:
- keep valid JSON
- prefer
config setfor ordinary changes - run
jarvis-line doctorafterward - do not store API keys in the file
- leave
debug_content_loggingoff unless actively diagnosing locally - check backend capabilities before adding backend-specific fields
Older prototypes used ~/.codex/hooks/kokoro_tts_config.json.
jarvis-line migrate-configAfter reviewing the migrated result, remove the legacy file through the explicit migration option:
jarvis-line migrate-config --remove-legacyFor exact defaults and every supported field, use the versioned configuration contract.
Repository · Releases · Issues · Discussions