Configuration
JARVIS stores its runtime configuration in a single YAML file:
~/.jarvis/config.yamlYou can create it through jarvis onboard or edit it directly by hand.
How to Think About the Config
Section titled “How to Think About the Config”The config falls into a few major areas:
- Where the daemon runs
- Which LLMs it can use
- How it speaks and listens
- Which channels and integrations are enabled
- How much autonomy it has
- Which background systems are active
Third-party integrations do not all live in the same place:
- some credentials are stored directly in
config.yaml - some integrations are connected through onboarding or dashboard flows
- Google OAuth is a hybrid case: client credentials can live in config, while the actual account authorization/token exchange happens through the setup flow
This page focuses on the high-level structure of config.yaml, not every provider-specific setup walkthrough.
Minimal Example
Section titled “Minimal Example”This is the smallest realistic config for a cloud-hosted setup using Anthropic:
daemon: port: 3142 data_dir: "~/.jarvis" db_path: "~/.jarvis/jarvis.db"
llm: primary: "anthropic" fallback: ["openai", "ollama"] anthropic: api_key: "sk-ant-..." model: "claude-sonnet-4-6"
personality: core_traits: - "loyal" - "efficient" - "proactive" assistant_name: "Jarvis"
authority: default_level: 3 governed_categories: ["send_email", "send_message", "make_payment"] overrides: [] context_rules: [] learning: enabled: true suggest_threshold: 5 emergency_state: "normal"
heartbeat: interval_minutes: 15 active_hours: start: 8 end: 22 aggressiveness: "moderate"
active_role: "personal-assistant"Main Sections
Section titled “Main Sections”daemon
Section titled “daemon”Controls where the daemon listens and where it stores data.
Important keys:
portdata_dirdb_pathbrain_domain
Controls dashboard/API authentication.
If auth.token is unset, the dashboard is open access.
If you expose JARVIS outside a trusted local network, set this.
Controls provider selection, primary/fallback order, and provider-specific credentials.
Current provider blocks include:
anthropicopenaigroqgeminiollamaopenrouter
tts and stt
Section titled “tts and stt”These control speaking and listening.
ttshandles voice outputstthandles voice input transcription
channels
Section titled “channels”Remote chat channels currently include:
- Telegram
- Discord
desktop
Section titled “desktop”Controls local desktop/sidecar-related behavior and defaults.
awareness
Section titled “awareness”Controls the awareness system:
- capture frequency
- change thresholds
- cloud vision escalation
- suggestion rate limits
- retention
Controls the built-in Sites workspace:
- whether it is enabled
- where project files live
- dev server port range
- auto-commit behavior
authority
Section titled “authority”Controls autonomy, governed categories, override rules, and emergency state.
heartbeat
Section titled “heartbeat”Controls the proactive cycle that drives periodic check-ins and background activity.
active_role
Section titled “active_role”Sets the active top-level role/persona file JARVIS runs with.
Editing by Hand vs Onboarding
Section titled “Editing by Hand vs Onboarding”Use onboarding when:
- You are getting started
- You want guided prompts
- You are changing major settings like providers or channels
Edit YAML directly when:
- You know exactly which key you want to change
- You are adjusting thresholds or fine-grained behavior
- You are managing a hosted instance and want reproducible config
Recommended First Config Tweaks
Section titled “Recommended First Config Tweaks”After the first successful start, most users should review:
auth.tokenllm.primaryandllm.fallbacktts.enabledstt.providerauthority.default_levelawareness.enabledsites.enabled
Docker Note
Section titled “Docker Note”If you run JARVIS in Docker, remember that the daemon config still belongs to the daemon, not to your browser session.
This matters especially for addresses like:
ollama.base_urlstt.local.endpoint
If those are set to http://localhost:..., that means localhost from the daemon’s point of view, not from your laptop or browser. See Troubleshooting for the common remote-host networking failure mode.
Video Tutorial Placeholder
Section titled “Video Tutorial Placeholder”Video tutorial placeholder: editing
config.yamland understanding the main sections.
Add your future video link here.