apply
Set chaff up in the folder: chaff.yaml for the chosen genre, today's findings shelved in .chaff-baseline.json, and, when asked, a…
Run MulmoTerminal sessions on something other than Anthropic's default, three ways — register an Anthropic-compatible backend (OpenRouter, Moonshot, a local Ollama bridge, a company gateway) as a `providers` entry in `~/.mulmoterminal/config.json` (also added in Settings →
$ npx -y skills add receptron/mulmoterminal --skill mulmoterminal-model --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/mulmoterminal-modelContext preview
The summary Claude sees to decide when to auto-load this skill.
Run MulmoTerminal sessions on something other than Anthropic's default, three ways — register an Anthropic-compatible backend (OpenRouter, Moonshot, a local Ollama bridge, a company gateway) as a `providers` entry in `~/.mulmoterminal/config.json` (also added in Settings →
name: mulmoterminal-model description: Run MulmoTerminal sessions on something other than Anthropic's default, three ways — register an Anthropic-compatible backend (OpenRouter, Moonshot, a local Ollama bridge, a company gateway) as a `providers` entry in `~/.mulmoterminal/config.json` (also added in Settings → Models and backends); pin a `provider` / `model` per project in its `.mulmoterminal.json`; or add a `customAgents` entry, your OWN command line for starting Claude Code (`ollama launch claude --model … --`, a wrapper script, a pinned binary), which then appears in the Agent Picker beside Claude / Codex / Antigravity / Grok / Shell and gets Claude Code's own arguments appended. Knows the measured pass rates of the built-in model list, and the misconfigurations that break a session in ways that are hard to diagnose from inside it (a trailing `/v1`, too small an output budget, an API key written to disk, a provider named but never registered, a custom agent that swallows the arguments it is handed). Use when the user wants to use OpenRouter, Kimi, GLM, DeepSeek, Qwen, a local or self-hosted model, a cheaper model, a different Anthropic model for one project, or to launch Claude Code through a command of their own, or to run some cells on a second Claude Code / Codex subscription (`accounts`) — or when a session refuses to start, returns empty replies, or 404s after they changed models.
The keys, and the job each one does:
removed in Settings → Models and backends, which refuses a `/v1` base URL and a key in place of the variable's name.
Both are defaults; the launch form can override them for a single session. Also a select in Settings → Directory settings → Change here, which offers the models of the registered providers.
Code, offered in the Agent Picker. For when the model is reached by running something else (`ollama launch claude …`, a wrapper script, a second Claude Code install) rather than by an HTTP endpoint. Also added and removed in Settings → Models and backends.
subscription), kept in its own config directory and picked per cell in the launch form. Also added and removed in Settings → Models and backends.
default config directory, with MulmoTerminal choosing which one each new session runs on so the weekly windows drain evenly. config.json only (beta).
which of the seven agent CLIs a NEW cell starts as, and the only thing that relaxes the Claude-Code-required check at start-up (#2082). Also a select in Settings → Models and backends.
None is needed to use Anthropic's default. Only do this when the user asked for another model.
Start-up requires Claude Code **unless this is set**. Declaring an agent does two things and only two: the start-up check looks for THAT agent's binary instead of `claude`, and a new cell's Agent Picker starts on it.
{ "defaultAgent": "codex" }`--agent codex` does the same for one launch and is NOT written back to the file. Settings → Models and backends → Default agent writes the same key, and offers an agent that is not installed only disabled. Valid ids: `claude`, `codex`, `antigravity`, `grok`, `muse`, `copilot`, `cursor`.
**It does not re-point anything that already exists.** A grid cell records its agent only when it is not Claude, so a saved Claude cell is stored as the ABSENCE of that field — which means Claude permanently, whatever `defaultAgent` later says. A browser that has already used the Agent Picker also keeps its remembered choice. This key seeds new things; it never rewrites old ones.
**Do not confuse it with `customAgents`.** `defaultAgent` picks among the seven built-in agents. `customAgents` adds a NEW Agent Picker entry that runs Claude Code through a command of your own.
**Which one.** A backend that speaks the Anthropic API over HTTP is a `providers` entry — that is the smaller change and it composes with the model picker. Reach for `customAgents` only when the thing that runs the model is a **command**, and the user cannot express it as a base URL and a token.
{
"providers": [
{
"id": "openrouter",
"label": "OpenRouter",
"baseUrl": "https://openrouter.ai/api",
"tokenEnv": "OPENROUTER_API_KEY",
"maxOutputTokens": 16000
}
]
}Each rule below was measured against a working setup, and each breaks the session in a way that is hard to diagnose from inside it:
`/v1` produces `/v1/v1/messages` and every request 404s.
environment variable, not the value: the key reaches the server through its environment. Put it in the shell that starts the server, or in a `.env` in the directory it is started from — and if you write a `.env`, check it is gitignored before you do. If the user pastes a key at you, tell them where it goes; do not store it anywhere yourself.
thinking and returns empty visible text, which reads as a hung session.
`common/modelPresets.ts` carries `provider:
Run multiple coding-agent sessions in parallel — and see which one needs you. A browser terminal for parallel AI coding agents: several sessions side by side, each in its own cell, with the one that needs you marked in colour.
Set chaff up in the folder: chaff.yaml for the chosen genre, today's findings shelved in .chaff-baseline.json, and, when asked, a…
Measure what chaff reports on the named documents today, as the kind the person chose, and propose the setup — changing nothing…
Answer each question from the named documents only, quoting where the answer is written, or saying plainly that the documents do…
Add the approved answers to FAQ.md when the person chose to keep them, after what it already holds; change nothing otherwise.
Build the spec's operations as the Worker's API, with validation and tests.