-
Notifications
You must be signed in to change notification settings - Fork 0
AI Providers
Jarvis speaks to five backends: Ollama (local, free), Claude, OpenAI, Grok and Gemini. Configure as many as you like; he routes between them and fails over when one is unavailable.
Nothing here needs the config file. /jarvis bell → Admin → AI setup does
all of it, and so does /jarvis ai.
From the menu. Ring the bell, Admin → AI setup. A row of providers: right-click toggles one on or off, left-click opens its page. There you set the key or the address, choose the model — picked from what your Ollama server actually offers, or typed — and run a test that goes past the routing to the provider itself. A key typed here is captured from chat without being shown or written to the chat log.
From the console.
/jarvis ai which providers are on, and their health
/jarvis ai enable claude
/jarvis ai key claude sk-ant-...
/jarvis ai endpoint ollama http://your-box:11434
/jarvis ai models what your Ollama server has pulled
/jarvis ai model ollama qwen2.5:7b
/jarvis ai test claude
Both take effect at once. No restart.
Jarvis sorts work into two tiers and sends them different ways:
| Tier | What it is | Goes to |
|---|---|---|
| Light | Chat intents, banter — frequent, small | Ollama first, cloud as fallback |
| Heavy | Build planning — rare, large | Cloud first, Ollama as fallback |
That is the point of the design: the thing you do a hundred times an hour is free and local, and the thing you do twice an evening gets the better model.
ai:
provider: auto
provider-priority: [ollama, claude, openai, grok, gemini]
light-timeout-seconds: 5 # a slow local box falls through quickly
heavy-timeout-seconds: 240 # a build runs to thousands of tokens
# routing:
# light: [ollama, claude]
# heavy: [claude, ollama]Setting ai.provider to a single provider name uses that one exclusively.
A provider that fails goes on an exponential cooldown up to five minutes, so a box with no Ollama installed costs the next caller nothing. Providers with no API key are skipped, Ollama excepted.
- Install Ollama on any machine on your network.
- Pull a model. Small instruction-following models handle chat parsing well:
ollama pull qwen2.5:7b
ollama pull mistral
ollama pull nomic-embed-text # for experience memory; recommended- Point Jarvis at it: Admin → AI setup → Ollama, or
/jarvis ai endpoint ollama http://your-box:11434.
ai:
ollama:
endpoint: "http://localhost:11434"
model: mistral
keep-alive: "30m"
timeout-seconds: 240Those are the shipped defaults. keep-alive holds the model in VRAM between
requests, which is most of the difference between a snappy butler and a
thoughtful one: reloading a 7B model costs seconds. The long timeout is for
build plans, which a local 7B can take minutes to write.
Fully supported, and Jarvis enters a reduced mode, on every platform:
constrained JSON parsing that small models handle reliably, and risky console
actions refused unless ai.reduced-mode.allow-risky-actions is on. Build
requests are answered from the schematic library; freeform designs are
refused until experience memory holds
memory.min-successes-for-reduced-mode-builds successful builds (20 by
default), and then only through the json planner — the script planner
needs a cloud model.
Keys are set from the menu or with /jarvis ai key <provider> <key>.
Claude — console.anthropic.com
ai:
claude:
model: claude-haiku-4-5 # the sane default: cheapest, fastest
# claude-sonnet-5 stronger, mid cost
# claude-opus-5 most capable, most expensiveModel ids are complete as written; do not append a date.
OpenAI — platform.openai.com
ai:
openai:
model: gpt-5.6-terra # balanced (default)
# gpt-5.6-luna cost-optimised, good for busy servers
# gpt-5.6-sol flagshipGrok — console.x.ai · Gemini — aistudio.google.com
Because a server parsing every chat line makes a great many calls, the cheap fast model is the right default everywhere. Reach for the big one only for building.
/jarvis ai provider health, models, cooldowns
/jarvis ai test claude
/jarvis debug provider, model, memory and subsystem status
/jarvis ai test sends one small request straight to that provider, past the
routing, so a failure tells you about the key rather than the fallback chain.
It needs jarvis.admin, as do /jarvis ai models and every other setting
command; plain /jarvis ai is open to all.
He remembers builds that went well and retrieves them when you ask for
something similar, matching on what you asked and where you were standing.
With nomic-embed-text pulled on your Ollama box the matching is semantic;
without it, memory still works on a weaker keyword path.
memory:
enabled: true
embedding-model: nomic-embed-textSetting up
Using him
- The Bell Menu
- Commands & Permissions
- Voice
- Mining System
- Building System
- Progression
- Butler Events
- Player Requests
When it goes wrong