Skip to content

Configuration

Serkan Çeşme edited this page Aug 19, 2026 · 3 revisions

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.

Read Settings

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_volume

Inspect 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 contract

Common Changes

jarvis-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

Core Settings

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.

Attention And Master Speech

These controls are independent:

  • attention_enabled = false disables only permission/input-request speech
  • speech_enabled = false disables every Jarvis Line sound
  • speak_mode = off suppresses status and attention speech
  • final_only still 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 Completion Chime

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.6

The 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.

Prefixes

jarvis-line config prefix list
jarvis-line config prefix add "Friday line:"
jarvis-line config prefix remove "Friday line:"

Profiles

jarvis-line config profile save work
jarvis-line config profile list
jarvis-line config profile use work
jarvis-line config profile delete work

Profiles store a complete configuration snapshot. Review TTS credentials and custom command behavior before sharing a profile.

Direct JSON Editing

If you edit the file manually:

  • keep valid JSON
  • prefer config set for ordinary changes
  • run jarvis-line doctor afterward
  • do not store API keys in the file
  • leave debug_content_logging off unless actively diagnosing locally
  • check backend capabilities before adding backend-specific fields

Config Migration

Older prototypes used ~/.codex/hooks/kokoro_tts_config.json.

jarvis-line migrate-config

After reviewing the migrated result, remove the legacy file through the explicit migration option:

jarvis-line migrate-config --remove-legacy

For exact defaults and every supported field, use the versioned configuration contract.

Clone this wiki locally