796 lines
19 KiB
JSON
796 lines
19 KiB
JSON
{
|
|
"version": 1,
|
|
"fields": [
|
|
{
|
|
"key": "assistantName",
|
|
"title": "Assistant name",
|
|
"group": "Identity",
|
|
"default": "Jarvis",
|
|
"type": "string",
|
|
"maxLength": 32,
|
|
"description": "What to call the assistant in the tray, speech, and workspace IDENTITY.md."
|
|
},
|
|
{
|
|
"key": "ttsEnabled",
|
|
"title": "Spoken replies",
|
|
"group": "Speech",
|
|
"default": true,
|
|
"type": "boolean",
|
|
"description": "Read replies aloud using local speech synthesis.",
|
|
"aliases": [
|
|
"tts_enabled"
|
|
]
|
|
},
|
|
{
|
|
"key": "ttsPreset",
|
|
"title": "Speech model",
|
|
"group": "Speech",
|
|
"default": "supertonic-en",
|
|
"type": "choice",
|
|
"description": "Models download on first use. Larger models need more memory.",
|
|
"options": [
|
|
{
|
|
"value": "supertonic-en",
|
|
"label": "Supertonic \u00b7 English \u00b7 lightweight"
|
|
},
|
|
{
|
|
"value": "supertonic3",
|
|
"label": "Supertonic 3 \u00b7 multilingual"
|
|
},
|
|
{
|
|
"value": "chatterbox",
|
|
"label": "Chatterbox Turbo \u00b7 English \u00b7 reference voice"
|
|
},
|
|
{
|
|
"value": "parler",
|
|
"label": "Parler Mini \u00b7 English \u00b7 describe a voice"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"key": "voiceId",
|
|
"title": "Voice",
|
|
"group": "Speech",
|
|
"default": "F1",
|
|
"type": "choice",
|
|
"description": "Try the same preview with different voices. Available voices depend on the model bundle.",
|
|
"options": [
|
|
{
|
|
"value": "F1",
|
|
"label": "F1"
|
|
},
|
|
{
|
|
"value": "F2",
|
|
"label": "F2"
|
|
},
|
|
{
|
|
"value": "F3",
|
|
"label": "F3"
|
|
},
|
|
{
|
|
"value": "F4",
|
|
"label": "F4"
|
|
},
|
|
{
|
|
"value": "F5",
|
|
"label": "F5"
|
|
},
|
|
{
|
|
"value": "M1",
|
|
"label": "M1"
|
|
},
|
|
{
|
|
"value": "M2",
|
|
"label": "M2"
|
|
},
|
|
{
|
|
"value": "M3",
|
|
"label": "M3"
|
|
},
|
|
{
|
|
"value": "M4",
|
|
"label": "M4"
|
|
},
|
|
{
|
|
"value": "M5",
|
|
"label": "M5"
|
|
}
|
|
],
|
|
"aliases": [
|
|
"voice_id",
|
|
"voice-id"
|
|
],
|
|
"when": {
|
|
"ttsPreset": [
|
|
"supertonic-en",
|
|
"supertonic3"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key": "ttsLanguage",
|
|
"title": "Speech language",
|
|
"group": "Speech",
|
|
"default": "en",
|
|
"type": "choice",
|
|
"description": "The English models always use English. Choose Supertonic 3 for other languages.",
|
|
"options": [
|
|
{
|
|
"value": "en",
|
|
"label": "English"
|
|
},
|
|
{
|
|
"value": "ko",
|
|
"label": "Korean"
|
|
},
|
|
{
|
|
"value": "ja",
|
|
"label": "Japanese"
|
|
},
|
|
{
|
|
"value": "ar",
|
|
"label": "Arabic"
|
|
},
|
|
{
|
|
"value": "bg",
|
|
"label": "Bulgarian"
|
|
},
|
|
{
|
|
"value": "cs",
|
|
"label": "Czech"
|
|
},
|
|
{
|
|
"value": "da",
|
|
"label": "Danish"
|
|
},
|
|
{
|
|
"value": "de",
|
|
"label": "German"
|
|
},
|
|
{
|
|
"value": "el",
|
|
"label": "Greek"
|
|
},
|
|
{
|
|
"value": "es",
|
|
"label": "Spanish"
|
|
},
|
|
{
|
|
"value": "et",
|
|
"label": "Estonian"
|
|
},
|
|
{
|
|
"value": "fi",
|
|
"label": "Finnish"
|
|
},
|
|
{
|
|
"value": "fr",
|
|
"label": "French"
|
|
},
|
|
{
|
|
"value": "hi",
|
|
"label": "Hindi"
|
|
},
|
|
{
|
|
"value": "hr",
|
|
"label": "Croatian"
|
|
},
|
|
{
|
|
"value": "hu",
|
|
"label": "Hungarian"
|
|
},
|
|
{
|
|
"value": "id",
|
|
"label": "Indonesian"
|
|
},
|
|
{
|
|
"value": "it",
|
|
"label": "Italian"
|
|
},
|
|
{
|
|
"value": "lt",
|
|
"label": "Lithuanian"
|
|
},
|
|
{
|
|
"value": "lv",
|
|
"label": "Latvian"
|
|
},
|
|
{
|
|
"value": "nl",
|
|
"label": "Dutch"
|
|
},
|
|
{
|
|
"value": "pl",
|
|
"label": "Polish"
|
|
},
|
|
{
|
|
"value": "pt",
|
|
"label": "Portuguese"
|
|
},
|
|
{
|
|
"value": "ro",
|
|
"label": "Romanian"
|
|
},
|
|
{
|
|
"value": "ru",
|
|
"label": "Russian"
|
|
},
|
|
{
|
|
"value": "sk",
|
|
"label": "Slovak"
|
|
},
|
|
{
|
|
"value": "sl",
|
|
"label": "Slovenian"
|
|
},
|
|
{
|
|
"value": "sv",
|
|
"label": "Swedish"
|
|
},
|
|
{
|
|
"value": "tr",
|
|
"label": "Turkish"
|
|
},
|
|
{
|
|
"value": "uk",
|
|
"label": "Ukrainian"
|
|
},
|
|
{
|
|
"value": "vi",
|
|
"label": "Vietnamese"
|
|
}
|
|
],
|
|
"aliases": [
|
|
"tts_language"
|
|
],
|
|
"when": {
|
|
"ttsPreset": [
|
|
"supertonic3"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key": "ttsSpeed",
|
|
"title": "Speaking speed",
|
|
"group": "Speech",
|
|
"default": 1.05,
|
|
"type": "number",
|
|
"description": "1 is normal speed; lower is slower.",
|
|
"min": 0.25,
|
|
"max": 4,
|
|
"step": 0.05,
|
|
"aliases": [
|
|
"tts_speed"
|
|
],
|
|
"when": {
|
|
"ttsPreset": [
|
|
"supertonic-en",
|
|
"supertonic3"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key": "ttsSteps",
|
|
"title": "Voice quality steps",
|
|
"group": "Speech",
|
|
"default": 5,
|
|
"type": "number",
|
|
"description": "More steps can improve quality but take longer.",
|
|
"min": 1,
|
|
"max": 30,
|
|
"step": 1,
|
|
"when": {
|
|
"ttsPreset": [
|
|
"supertonic-en",
|
|
"supertonic3"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key": "ttsVolume",
|
|
"title": "Reply volume (%)",
|
|
"group": "Speech",
|
|
"default": 100,
|
|
"type": "number",
|
|
"description": "Relative to the system speaker volume. Does not change other apps.",
|
|
"min": 0,
|
|
"max": 100,
|
|
"step": 5
|
|
},
|
|
{
|
|
"key": "ttsReferenceAudio",
|
|
"title": "Reference voice recording",
|
|
"group": "Voice design",
|
|
"default": "",
|
|
"type": "file",
|
|
"description": "Choose a clear mono WAV recording of at least 5 seconds. Leave empty for the model\u2019s default voice.",
|
|
"when": {
|
|
"ttsPreset": [
|
|
"chatterbox"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key": "ttsCfmSteps",
|
|
"title": "Synthesis quality steps",
|
|
"group": "Voice design",
|
|
"default": 2,
|
|
"type": "number",
|
|
"description": "Chatterbox: fewer steps respond faster.",
|
|
"min": 1,
|
|
"max": 10,
|
|
"step": 1,
|
|
"when": {
|
|
"ttsPreset": [
|
|
"chatterbox"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key": "ttsDescription",
|
|
"title": "Describe the voice",
|
|
"group": "Voice design",
|
|
"default": "A clear, warm voice speaks at a natural pace in a quiet room.",
|
|
"type": "string",
|
|
"description": "Parler: describe tone, pace, pitch, and recording style in English.",
|
|
"when": {
|
|
"ttsPreset": [
|
|
"parler"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key": "ttsTemperature",
|
|
"title": "Voice variation",
|
|
"group": "Voice design",
|
|
"default": 1,
|
|
"type": "number",
|
|
"description": "Parler: higher values produce more variation.",
|
|
"min": 0,
|
|
"max": 2,
|
|
"step": 0.05,
|
|
"when": {
|
|
"ttsPreset": [
|
|
"parler"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key": "ttsSeed",
|
|
"title": "Voice seed",
|
|
"group": "Voice design",
|
|
"default": 42,
|
|
"type": "number",
|
|
"description": "Use a fixed seed for repeatable speech generation.",
|
|
"min": 0,
|
|
"max": 2147483647,
|
|
"step": 1,
|
|
"when": {
|
|
"ttsPreset": [
|
|
"chatterbox",
|
|
"parler"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key": "ttsThreads",
|
|
"title": "Speech CPU threads",
|
|
"group": "Voice design",
|
|
"default": 4,
|
|
"type": "number",
|
|
"description": "Limit CPU work for Chatterbox and Parler.",
|
|
"min": 1,
|
|
"max": 32,
|
|
"step": 1,
|
|
"when": {
|
|
"ttsPreset": [
|
|
"chatterbox",
|
|
"parler"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key": "ttsUseGpu",
|
|
"title": "Accelerate speech with GPU",
|
|
"group": "Voice design",
|
|
"default": false,
|
|
"type": "boolean",
|
|
"description": "Use a supported GPU backend for speech synthesis. May increase GPU memory use."
|
|
},
|
|
{
|
|
"key": "ttsModel",
|
|
"title": "Custom speech model",
|
|
"group": "Voice design",
|
|
"default": "",
|
|
"type": "string",
|
|
"description": "Advanced: registry name or local GGUF matching the selected speech model. Empty uses the bundled preset.",
|
|
"aliases": [
|
|
"tts_model"
|
|
]
|
|
},
|
|
{
|
|
"key": "previewText",
|
|
"title": "Preview text",
|
|
"group": "Speech",
|
|
"default": "Hello. I am Jarvis. This is how I will sound with your settings.",
|
|
"type": "string",
|
|
"description": "Use the same sentence to compare voices."
|
|
},
|
|
{
|
|
"key": "microphoneEnabled",
|
|
"title": "Microphone input",
|
|
"group": "Listening",
|
|
"default": true,
|
|
"type": "boolean",
|
|
"description": "Turn off for typed chat and speech output only.",
|
|
"aliases": [
|
|
"microphone_enabled"
|
|
]
|
|
},
|
|
{
|
|
"key": "asrModel",
|
|
"title": "Recognition model",
|
|
"group": "Listening",
|
|
"default": "WHISPER_TINY",
|
|
"type": "choice",
|
|
"description": "Larger models need more memory and download on first use.",
|
|
"options": [
|
|
{
|
|
"value": "WHISPER_TINY",
|
|
"label": "Whisper Tiny \u00b7 fastest"
|
|
},
|
|
{
|
|
"value": "WHISPER_BASE_Q8_0",
|
|
"label": "Whisper Base \u00b7 balanced"
|
|
},
|
|
{
|
|
"value": "WHISPER_SMALL_Q8_0",
|
|
"label": "Whisper Small \u00b7 more accurate"
|
|
}
|
|
],
|
|
"aliases": [
|
|
"asr_model"
|
|
]
|
|
},
|
|
{
|
|
"key": "asrLanguage",
|
|
"title": "Recognition language",
|
|
"group": "Listening",
|
|
"default": "en",
|
|
"type": "string",
|
|
"description": "Whisper language code such as en, es, fr, or auto.",
|
|
"aliases": [
|
|
"asr_language",
|
|
"language"
|
|
]
|
|
},
|
|
{
|
|
"key": "wakePhrase",
|
|
"title": "Wake phrase",
|
|
"group": "Wake and privacy",
|
|
"default": "hey jarvis",
|
|
"type": "string",
|
|
"description": "Must match a phrase supported by your local wake detector.",
|
|
"aliases": [
|
|
"wake_phrase"
|
|
]
|
|
},
|
|
{
|
|
"key": "aliases",
|
|
"title": "Wake aliases",
|
|
"group": "Wake and privacy",
|
|
"default": [
|
|
"jarvis",
|
|
"okay jarvis"
|
|
],
|
|
"type": "list",
|
|
"description": "Additional detector phrases, separated by commas."
|
|
},
|
|
{
|
|
"key": "wakeCommand",
|
|
"title": "Wake detector command",
|
|
"group": "Wake and privacy",
|
|
"default": "jarvis-wake-bridge",
|
|
"type": "string",
|
|
"description": "Local program that receives microphone audio. jarvis-wake-bridge is the built-in CPU detector. Leave it unless you have openWakeWord or sherpa.",
|
|
"aliases": [
|
|
"wake_command"
|
|
]
|
|
},
|
|
{
|
|
"key": "listeningMode",
|
|
"title": "Listening behavior",
|
|
"group": "Wake and privacy",
|
|
"default": "conversation",
|
|
"type": "choice",
|
|
"description": "Hold Talk only disables the wake detector and automatic follow-up listening.",
|
|
"options": [
|
|
{
|
|
"value": "conversation",
|
|
"label": "Continue listening after replies"
|
|
},
|
|
{
|
|
"value": "single",
|
|
"label": "One request per wake"
|
|
},
|
|
{
|
|
"value": "ptt",
|
|
"label": "Hold Talk only"
|
|
}
|
|
],
|
|
"aliases": [
|
|
"listening_mode"
|
|
]
|
|
},
|
|
{
|
|
"key": "idleMinutes",
|
|
"title": "Idle sleep delay (minutes)",
|
|
"group": "Wake and privacy",
|
|
"default": 30,
|
|
"type": "number",
|
|
"description": "Sleep after this much listening inactivity.",
|
|
"min": 1,
|
|
"max": 240,
|
|
"step": 1
|
|
},
|
|
{
|
|
"key": "freeVramOnIdle",
|
|
"title": "Free GPU memory when idle",
|
|
"group": "Wake and privacy",
|
|
"default": true,
|
|
"type": "boolean",
|
|
"description": "Unload speech and chat models after the idle delay. Hey Jarvis stays ready on the CPU.",
|
|
"aliases": [
|
|
"free_vram_on_idle"
|
|
]
|
|
},
|
|
{
|
|
"key": "vadThreshold",
|
|
"title": "Speech detection threshold",
|
|
"group": "Detection tuning",
|
|
"default": 0.6,
|
|
"type": "number",
|
|
"description": "Lower picks up quieter speech; higher rejects more background noise.",
|
|
"min": 0.05,
|
|
"max": 1,
|
|
"step": 0.05
|
|
},
|
|
{
|
|
"key": "vadMinSpeechMs",
|
|
"title": "Minimum speech (ms)",
|
|
"group": "Detection tuning",
|
|
"default": 300,
|
|
"type": "number",
|
|
"description": "Ignore very short sounds during automatic listening.",
|
|
"min": 100,
|
|
"max": 2000,
|
|
"step": 50
|
|
},
|
|
{
|
|
"key": "vadSilenceMs",
|
|
"title": "Pause before sending (ms)",
|
|
"group": "Detection tuning",
|
|
"default": 700,
|
|
"type": "number",
|
|
"description": "Wait this long after speech before sending your request.",
|
|
"min": 200,
|
|
"max": 3000,
|
|
"step": 50
|
|
},
|
|
{
|
|
"key": "vadMaxSpeechSeconds",
|
|
"title": "Maximum recording (seconds)",
|
|
"group": "Detection tuning",
|
|
"default": 15,
|
|
"type": "number",
|
|
"description": "Limit each recorded utterance, including pauses.",
|
|
"min": 3,
|
|
"max": 120,
|
|
"step": 1
|
|
},
|
|
{
|
|
"key": "playbackCooldownMs",
|
|
"title": "Echo protection after replies (ms)",
|
|
"group": "Detection tuning",
|
|
"default": 400,
|
|
"type": "number",
|
|
"description": "Delay microphone processing after speech output ends.",
|
|
"min": 0,
|
|
"max": 2000,
|
|
"step": 50
|
|
},
|
|
{
|
|
"key": "inputTarget",
|
|
"title": "Microphone device",
|
|
"group": "Audio routing",
|
|
"default": "",
|
|
"type": "device",
|
|
"description": "System default follows your desktop sound settings. Refresh the list after connecting a device."
|
|
},
|
|
{
|
|
"key": "outputTarget",
|
|
"title": "Speaker device",
|
|
"group": "Audio routing",
|
|
"default": "",
|
|
"type": "device",
|
|
"description": "System default follows your desktop sound settings. Refresh the list after connecting a device."
|
|
},
|
|
{
|
|
"key": "computerMode",
|
|
"title": "Desktop access mode",
|
|
"group": "Desktop access",
|
|
"default": "act",
|
|
"type": "choice",
|
|
"description": "A temporary Allow now grant is always required. Changing this revokes existing access.",
|
|
"options": [
|
|
{
|
|
"value": "off",
|
|
"label": "Disabled"
|
|
},
|
|
{
|
|
"value": "observe",
|
|
"label": "Observe only"
|
|
},
|
|
{
|
|
"value": "act",
|
|
"label": "Observe and control"
|
|
}
|
|
],
|
|
"aliases": [
|
|
"computer_mode"
|
|
]
|
|
},
|
|
{
|
|
"key": "computerSteps",
|
|
"title": "Actions per grant",
|
|
"group": "Desktop access",
|
|
"default": 20,
|
|
"type": "number",
|
|
"description": "Maximum input actions before another grant is needed.",
|
|
"min": 1,
|
|
"max": 100,
|
|
"step": 1,
|
|
"aliases": [
|
|
"computer_step_budget"
|
|
]
|
|
},
|
|
{
|
|
"key": "computerGrantMinutes",
|
|
"title": "Grant duration (minutes)",
|
|
"group": "Desktop access",
|
|
"default": 3,
|
|
"type": "number",
|
|
"description": "Desktop access expires automatically.",
|
|
"min": 1,
|
|
"max": 15,
|
|
"step": 1
|
|
},
|
|
{
|
|
"key": "screenshotMaxEdge",
|
|
"title": "Screenshot maximum edge (pixels)",
|
|
"group": "Desktop images",
|
|
"default": 1280,
|
|
"type": "number",
|
|
"description": "Larger screenshots preserve detail but take more memory.",
|
|
"min": 640,
|
|
"max": 2560,
|
|
"step": 160
|
|
},
|
|
{
|
|
"key": "screenshotQuality",
|
|
"title": "Screenshot quality (%)",
|
|
"group": "Desktop images",
|
|
"default": 70,
|
|
"type": "number",
|
|
"description": "Higher WebP quality preserves more text detail.",
|
|
"min": 30,
|
|
"max": 95,
|
|
"step": 5
|
|
},
|
|
{
|
|
"key": "modelProfile",
|
|
"title": "Chat model profile",
|
|
"group": "Chat model",
|
|
"default": "laptop-16gb",
|
|
"type": "choice",
|
|
"description": "Requires a daemon restart. GPU inference remains required.",
|
|
"options": [
|
|
{
|
|
"value": "laptop-8gb",
|
|
"label": "Small \u00b7 Qwen3 1.7B"
|
|
},
|
|
{
|
|
"value": "laptop-8gb-mm",
|
|
"label": "Compact \u00b7 Qwen3.5 2B"
|
|
},
|
|
{
|
|
"value": "laptop-16gb",
|
|
"label": "Balanced \u00b7 Qwen3.5 4B"
|
|
},
|
|
{
|
|
"value": "desktop-gpu",
|
|
"label": "Large \u00b7 Qwen3.5 9B"
|
|
}
|
|
],
|
|
"aliases": [
|
|
"model_profile"
|
|
],
|
|
"restart": true
|
|
},
|
|
{
|
|
"key": "chatModel",
|
|
"title": "Custom chat model",
|
|
"group": "Chat model",
|
|
"default": "",
|
|
"type": "string",
|
|
"description": "Advanced: overrides the profile. Empty uses the profile model. Requires restart.",
|
|
"aliases": [
|
|
"model"
|
|
],
|
|
"restart": true
|
|
},
|
|
{
|
|
"key": "maxTurns",
|
|
"title": "Maximum reasoning turns",
|
|
"group": "Agent limits",
|
|
"default": 6,
|
|
"type": "number",
|
|
"description": "Requires restart. Limits how long the assistant works on one request.",
|
|
"min": 1,
|
|
"max": 30,
|
|
"step": 1,
|
|
"restart": true
|
|
},
|
|
{
|
|
"key": "maxShellCalls",
|
|
"title": "Shell commands per request",
|
|
"group": "Agent limits",
|
|
"default": 1,
|
|
"type": "number",
|
|
"description": "Requires restart. Commands still require normal permissions.",
|
|
"min": 1,
|
|
"max": 10,
|
|
"step": 1,
|
|
"restart": true
|
|
},
|
|
{
|
|
"key": "maxToolRounds",
|
|
"title": "Tool rounds per request",
|
|
"group": "Agent limits",
|
|
"default": 4,
|
|
"type": "number",
|
|
"description": "Requires restart. Limits repeated tool use.",
|
|
"min": 1,
|
|
"max": 20,
|
|
"step": 1,
|
|
"restart": true
|
|
},
|
|
{
|
|
"key": "fsAccess",
|
|
"title": "File access",
|
|
"group": "Agent limits",
|
|
"default": "workspace",
|
|
"type": "choice",
|
|
"description": "Requires restart. The agent still runs as your user account and asks before writing. Shell commands can already reach other paths.",
|
|
"options": [
|
|
{
|
|
"value": "workspace",
|
|
"label": "Jarvis workspace only"
|
|
},
|
|
{
|
|
"value": "home",
|
|
"label": "Home directory"
|
|
},
|
|
{
|
|
"value": "filesystem",
|
|
"label": "Entire filesystem"
|
|
}
|
|
],
|
|
"aliases": [
|
|
"fs_access"
|
|
],
|
|
"restart": true
|
|
}
|
|
]
|
|
}
|