Configure llm
View and change the active LLM provider, model, and API key, and hot-swap between providers from the in-headset settings. Use for "switch to GPT-4o", "use a local model", "change the model", "set my API key", or "which model are you?". Triggers: model, provider, LLM, switch model, API key, use local, ollama, openai, anthropic, change AI.From its SKILL.md
npx -y skills add sumitaich1998/jarvisvr --skill configure-llmAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
2.9 KB, 621 tokens by cl100k_base, as published. Nobody here has run it
Configure LLM
Manage the model that powers Jarvis via the settings protocol (§5.15). The server
stores keys securely and hot-swaps the active provider; keys are never echoed
back (key_set is a boolean only).
Steps
- Read current config + catalog: request
client.settings_get{section:"llm"}→server.settings.llm(current+providers). - Render a
settings_panel(show_settings) with a providerselect, a modelselect, and a key entry/button — reflectingkey_setand each provider'sneeds_key/needs_base_url/capabilities. - Apply changes with
client.settings_update— send only what changed; omitapi_keyto keep the existing key, include it to set/replace. - Confirm from the returned
server.settings(don't read keys aloud).
Output
settings_panel (show_settings, props per registry.json):
{ "widget_type": "settings_panel",
"props": { "title": "Model",
"sections": [ { "title": "LLM",
"settings": [
{ "id": "provider", "label": "Provider", "type": "select",
"value": "openai", "options": ["openai","anthropic","ollama"] },
{ "id": "model", "label": "Model", "type": "select",
"value": "gpt-4o", "options": ["gpt-4o","gpt-4o-mini"] },
{ "id": "api_key", "label": "API key", "type": "button", "value": "set" } ] } ] },
"interactions": ["tap","grab","resize","toggle","slider"] }
client.settings_update (client → server, §5.15):
{ "llm": { "provider": "ollama", "model": "llama3.1", "base_url": "http://localhost:11434" } }
agent.speech: { "text": "Switched to Llama 3.1 running locally.", "final": true }
Edge cases
- Missing key for a key-required provider → prompt for it; report
invalid_keyfromserver.errorclearly. - Provider unavailable / offline →
provider_unavailable; offer the mock or a local provider as fallback. - Capability mismatch (e.g. no vision) → warn if the user relies on perception with a non-vision model.
- Never reveal keys — only
key_settrue/false; redact in speech and UI. - Local provider needs base_url → require it when
needs_base_urlis true.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.