mulmoterminal-model

mulmoterminal-model is a skill for Claude Code, Codex from receptron/mulmoterminal. It costs 302 tokens per session (3,706 once invoked), scanned A, original, MIT.

A configuration guide for running MulmoTerminal sessions through other AI model services. It supports HTTP backends that follow Anthropic's API format, or custom commands that start the model another way.

In plain words
What is it for?
Use it to configure services such as OpenRouter, Moonshot, an Ollama bridge, or a company gateway, and to set a project's provider and model.
Why use it?
You may want to use a different model, service, local setup, or company gateway instead of Anthropic's default. This explains where to register it and how to select it for a project or session.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: mentions Claude Code; mentions Codex.

Good fit Use it to configure services such as OpenRouter, Moonshot, an Ollama bridge, or a company gateway, and to set a project's provider and model.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/receptron/mulmoterminal/mulmoterminal-model
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add receptron/mulmoterminal --skill mulmoterminal-model
Clone the repo
git clone --depth 1 https://github.com/receptron/mulmoterminal

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for mulmoterminal-model

README.md
[![agentmods](https://agentmods.dev/badge/skills/receptron/mulmoterminal/mulmoterminal-model/github.svg)](https://agentmods.dev/skills/receptron/mulmoterminal/mulmoterminal-model)
Your own site
<a href="https://agentmods.dev/skills/receptron/mulmoterminal/mulmoterminal-model"><img src="https://agentmods.dev/badge/skills/receptron/mulmoterminal/mulmoterminal-model/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for mulmoterminal-model

Your own site · 80×15
<a href="https://agentmods.dev/skills/receptron/mulmoterminal/mulmoterminal-model"><img src="https://agentmods.dev/badge/skills/receptron/mulmoterminal/mulmoterminal-model.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 302 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,706 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00302 $0.03706
Opus 5 $0.00151 $0.01853
Sonnet 5 $0.00060 $0.00741
Haiku 4.5 $0.00030 $0.00371

Measured 12d ago against content hash dde8d4ef986c, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

mulmoterminal-model scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

server/skills/mulmoterminal-model/SKILL.md · 229 lines

How it starts

The opening of the file, as written. The whole thing — 229 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Run on another model

Three keys, three jobs:

  • ~/.mulmoterminal/config.jsonproviders — register a backend once. No Settings UI.
  • <project>/.mulmoterminal.jsonprovider / model — what this project launches on. Both are defaults; the launch form can override them for a single session.
  • ~/.mulmoterminal/config.jsoncustomAgents — the user's own COMMAND for starting Claude 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. No Settings UI.

None is needed to use Anthropic's default. Only do this when the user asked for another model.

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.

Registering a backend

{
  "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:

  • baseUrl must not end in /v1. Claude Code appends /v1/messages itself, so a trailing /v1 produces /v1/v1/messages and every request 404s.
  • Never write the API key into a config or skill file. tokenEnv is the name of an 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.
  • Keep maxOutputTokens at 16000 or above. A thinking model given less spends the whole budget thinking and returns empty visible text, which reads as a hung session.
  • models is REQUIRED under any id other than openrouter. Every preset in common/modelPresets.ts carries provider: "openrouter", and they are matched by that id — so a backend registered as deepseek, moonshot or a company gateway starts with no models at all, and a provider with no models is not offered in the picker (it cannot start a session either: naming a provider without a model is refused at spawn). Ask which model ids the user wants to run and list them.
  • Under the id openrouter, do not write a models array unless the user names a model outside the built-in list — every preset appears in the picker on its own, with its measured pass rate, and models there exists only to ADD ids nobody has measured.
  • A model id is letters, digits and . _ : / - ~, optionally ending in [1m]. Anything else in models — an object like {"id": "…"}, a value with a space, a models that is not an array — is dropped when the config loads, leaving a backend that lists models in the file and offers none in the picker. The server log names what it dropped; check it after writing.
  • [1m] is Claude Code's extended-context syntax, and the only bracketed suffix there is. It goes to claude --model verbatim — Claude Code strips it before the id reaches the backend, so nothing on this side interprets it. Valid on an alias or a full name (opus[1m], opusplan[1m], claude-opus-5[1m]), refused anywhere but the end, and refused in invented forms like [2m] or [200k]. A provider id may not carry it. Only suggest it when the user asks for the 1M window: on Opus 5 / Sonnet 5 the Anthropic API already runs 1M, so it changes nothing there — the models it decides for are Opus 4.6 / 4.8 and Sonnet 4.6, and a gateway serving Sonnet 5. https://code.claude.com/docs/en/model-config#extended-context
  • This is a partial POST /api/config merge — write only providers. Send the array complete (existing entries included): it replaces rather than appends.
  • The server reads the environment at startup: after adding a key, it has to be restarted.

Read the full file on GitHub · 229 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 229 lines · 302 tokens per session scan A dde8d4ef986c

Subscribe to this mod's changes

mulmoterminal-model is a skill published in the GitHub repository receptron/mulmoterminal (212 stars, last pushed today), licensed MIT. It adds 302 tokens to every session and 3,706 once invoked, about $0.0015 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

delegating-to-otto

Drive Astronomer's Otto agent (astro otto) as a delegated sub-agent for Airflow, dbt, and data-engineering work. Use when the user says 'use Otto', 'ask Otto', 'delegate to Otto', or 'run this through Otto'. Also offer Otto for Airflow 2→3 migrations even when not named. Covers headless invocation, session continuity…

vanducng/skills · 109 tokens

dag-factory

Author Airflow DAGs from dag-factory YAML. Use when creating or editing YAML DAG configs, loaders, callbacks, custom operators in YAML, dynamic mapping, datasets, or validating dag-factory files. Covers both map-style tasks (taskid as YAML key) used by in-repo plugins and the PyPI dag-factory v1 list format. Not for…

vanducng/skills · 103 tokens

eval-integrity

Audit an LLM evaluation or benchmark repo for integrity and credibility practices. Use when asked to "audit my benchmark," "is my eval trustworthy," "check my leaderboard for contamination," "review this benchmark's methodology," or "what would a reviewer attack in my eval." Greps the target repo for evidence across…

conorbronsdon/agent-skills · 107 tokens

ronald

Invoke when comparing models or prompts and you want evidence, not a vibe check — choosing a model for a task (opus vs sonnet vs haiku; Claude vs Codex vs Gemini), A/B testing prompt variants, running a model/prompt bake-off or eval, or confirming a prompt change actually helped rather than got lucky. Runs a…

drubinstein/terry · 140 tokens

mle-workflow

Production machine-learning engineering workflow for data contracts, reproducible training, model evaluation, deployment, monitoring, and rollback. Use when building, reviewing, or hardening ML systems beyond one-off notebooks.

affaan-m/ECC · 44 tokens

architecture-design

Use only when creating new registrable ML components that require Factory or Registry patterns.

Galaxy-Dawn/claude-scholar · 19 tokens