Skip to content

Configuration

All configuration is optional. With nothing set, the app starts and explains how to finish setup. Keys are read from the environment or a gitignored .env.

VariableDefaultPurpose
OLLAMA_BASE_URLhttp://localhost:11434Local model endpoint
OLLAMA_MODELllama3.2Local model name
GROQ_API_KEYEnables the Groq free-tier fallback
GROQ_MODELllama-3.3-70b-versatileGroq model
OPENROUTER_API_KEYEnables the OpenRouter fallback
OPENROUTER_MODELmeta-llama/llama-3.3-70b-instruct:freeOpenRouter model
JARVIS_DATA_DIROS app-data dirWhere memory, events, notes, and skills live
JARVIS_STOPKill switch — set to halt any autonomous loop

The router always tries Ollama first (local, private, unlimited), then each configured cloud provider in order. If nothing is reachable, it returns a friendly onboarding message rather than an error.

  • Response cache — identical requests are served from a 10-minute cache (deduping double-sends and retries). Cache hits are labeled cached in the reply footer, never served silently.
  • Rate-limit backoff — a cloud provider that returns 429/503 goes on an exponential cooldown (30s → 10min, honoring Retry-After) and is skipped until it clears. The local model is exempt — it’s unlimited.
<data_dir>/
├─ jarvis.sqlite3 # messages, facts, insights (WAL mode)
├─ events.jsonl # append-only action log
├─ notes/ # <slug>.md
└─ skills/ # <slug>/{manifest.json, skill.rhai, test.rhai, history/}

The store is exportable and wipeable from the Memory tab — see Export or wipe your memory.

Was this page helpful?
No