Embeddings via 9Router
decolua/9router
Generates vector embeddings through the 9Router /v1/embeddings endpoint, using models from providers such as OpenAI, Gemini, Mistral and Voyage for RAG and semantic search.
Interviews you about provider, cost, openness and image needs, then designs the models section of a mecatl settings file with aliases, slots and router categories.
$ npx skills add stacklok/mecatl --skill mecatl-model-router-config -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install stacklok/mecatl mecatl-model-router-config --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/stacklok/mecatl.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/mecatl-model-router-config .claude/skills/mecatl-model-router-config && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "mecatl-model-router-config" agent skill from https://github.com/stacklok/mecatl/tree/main/.claude/skills/mecatl-model-router-config into .claude/skills/mecatl-model-router-config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mecatl-model-router-config", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/stacklok/mecatl/tree/main/.claude/skills/mecatl-model-router-configType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add stacklok/mecatl --skill mecatl-model-router-config -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install stacklok/mecatl mecatl-model-router-config --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/stacklok/mecatl.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/mecatl-model-router-config .agents/skills/mecatl-model-router-config && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "mecatl-model-router-config" agent skill from https://github.com/stacklok/mecatl/tree/main/.claude/skills/mecatl-model-router-config into .agents/skills/mecatl-model-router-config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mecatl-model-router-config", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add stacklok/mecatl --skill mecatl-model-router-config -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install stacklok/mecatl mecatl-model-router-config --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/stacklok/mecatl.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/mecatl-model-router-config .cursor/skills/mecatl-model-router-config && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "mecatl-model-router-config" agent skill from https://github.com/stacklok/mecatl/tree/main/.claude/skills/mecatl-model-router-config into .cursor/skills/mecatl-model-router-config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mecatl-model-router-config", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/stacklok/mecatl.git --path .claude/skills/mecatl-model-router-config--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add stacklok/mecatl --skill mecatl-model-router-config -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install stacklok/mecatl mecatl-model-router-config --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/stacklok/mecatl.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/mecatl-model-router-config .gemini/skills/mecatl-model-router-config && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "mecatl-model-router-config" agent skill from https://github.com/stacklok/mecatl/tree/main/.claude/skills/mecatl-model-router-config into .gemini/skills/mecatl-model-router-config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mecatl-model-router-config", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install stacklok/mecatl mecatl-model-router-configInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add stacklok/mecatl --skill mecatl-model-router-config -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/stacklok/mecatl.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/mecatl-model-router-config .github/skills/mecatl-model-router-config && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "mecatl-model-router-config" agent skill from https://github.com/stacklok/mecatl/tree/main/.claude/skills/mecatl-model-router-config into .github/skills/mecatl-model-router-config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mecatl-model-router-config", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add stacklok/mecatl --skill mecatl-model-router-config -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install stacklok/mecatl mecatl-model-router-config --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/stacklok/mecatl.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/mecatl-model-router-config .opencode/skills/mecatl-model-router-config && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "mecatl-model-router-config" agent skill from https://github.com/stacklok/mecatl/tree/main/.claude/skills/mecatl-model-router-config into .opencode/skills/mecatl-model-router-config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mecatl-model-router-config", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
mecatl-model-router-configInterviews you about provider, cost, openness and image needs, then designs the models section of a mecatl settings file with aliases, slots and router categories.
This skill designs and writes the models section of a mecatl settings file at ~/.config/mecatl/settings.yaml, tailored to how the operator wants to trade off cost, capability, openness and modality. Before any search it asks one question at a time: the provider (OpenRouter is recommended, with Anthropic or OpenAI direct as alternatives), the priority axis (balanced, cost-tiered or capability-first), open-weight or hosted proprietary models, how often image input is needed, and an optional target coding ceiling. It also reads any existing config and offers to use it as a base.
Once preferences are in, it searches current benchmarks and pricing and recommends a complete taxonomy of aliases, slots and router categories for subagent routing, with every alias resolving to a model ID on the single provider chosen, since the provider is fixed per session. A reference file documents the config format. It does not wire providers or keys or handle permission config, and it does not apply to non-mecatl harnesses.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit dcf1ea4. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Mecatl Model Router Config loads about 2.7k tokens when it runs, and up to ~4k if it reads all its reference files. Until then it costs about 142 tokens; SKILL.md has 1,369 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from stacklok/mecatl at commit dcf1ea4, republished under its Apache-2.0 licence (© stacklok). 1,369 words, ~2,656 tokens.
.claude/skills/mecatl-model-router-config/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Ask one concise question at a time in this order; wait for the answer before the next question. Use ordinary conversational text as the default, with the recommended option stated plainly. Do not render banners, checkmark summaries, or a widget/protocol syntax.
Interpret natural-language answers rather than requiring exact option labels. If an answer is ambiguous, ask a brief follow-up. The operator may revise an earlier answer conversationally at any point (for example, “Actually, use Anthropic”); confirm the changed answer and revisit any dependent choice if necessary.
If the current client explicitly provides a native question UI, it may present the same question and choices there. Never assume it exists or expose its internal protocol in chat.
Q1 — Provider
Ask: “Which provider should this config use? I recommend OpenRouter because one key can reach multiple vendors. OpenRouter, Anthropic direct, OpenAI direct, or another provider?”
Q2 — Priority axis
Ask: “What matters most: balanced cost and capability (recommended), cost-tiered (prefer cheaper models when they can do the job, saving money but possibly trading away capability), or capability-first (prefer the strongest fit, with potentially higher cost)?”
Q3 — Open vs proprietary
Ask: “Are hosted proprietary models acceptable (recommended), or do you require MIT/Apache open-weight models?”
Q4 — Multimodal
Ask: “How often do you need image input: not at all (recommended), rarely, or commonly?”
Q5 — Target ceiling (optional)
Ask: “Is there a target coding ceiling or model you want to match? You can name one, or say there is no specific target.”
Q6 — Existing config (auto-discovered, not asked blank)
Do NOT ask. Silently run cat ~/.config/mecatl/settings.yaml.
models: block — show it fenced, then ask: “I found an existing
models: config. Should I use it as a base (recommended) or start fresh?”models: block — skip silently, proceed to Step 2.Record all answers. These determine which models are even candidates.
For each tier the operator needs (heavy/coder/quick, + optional image/specialty), search for:
Cross-check at least two sources per model (vendor model card + independent leaderboard like Vals.ai / llm-stats / LLMReference). Flag vendor-reported vs independently-verified scores — they diverge by 2–4 pts regularly.
Present a shortlist table (model | key benchmarks | price | modality | license) for each tier, then recommend one per tier with rationale tied to the operator's stated preferences.
Read references/config-format.md for the exact
schema and rules. Then build the config:
heavy/coder/quick (minimum) pointing at
concrete provider model ids. Add image (or another specialty alias) only if
the operator needs multimodal. Every alias must be on the chosen provider.default — the session model. Usually the heavy alias (the strongest
reasoning model), unless the operator wants a cheaper default.compaction/ask-reviewer/
guardrail/router) to the quick alias (they're one-turn, tool-less calls
that need instruction-following + JSON discipline, not deep coding). Route
plan to heavy (the opusplan pattern — plan-mode turns swap to a strong
reasoning model).image for multimodal) — do NOT add a 5th; more categories degrade
classifier accuracy and widen the steering surface. Write thorough
description: fields — the classifier reads them literally to route.default-category — usually medium (the bulk of delegation work).Emit the complete models: YAML block, ready to drop into
~/.config/mecatl/settings.yaml. Include inline # → <concrete-id> comments on
each category's model: line so the operator can see the resolution at a glance.
After the config, include:
model slot ACTIVE / subagent model router ACTIVE lines on startup (a missing
line = that binding failed to resolve and degraded to the session model).anthropic/* ids. OpenRouter
is the common choice because it aggregates many vendors behind one provider.heavy/
plan/large). Housekeeping slots always go on the cheapest credible model.heavy/
default/plan and a strong mid (Sonnet 4.6 / Gemini 3.5 Flash) at coder,
accepting the higher spend. Still route housekeeping to a cheaper tier — there's
no value in running compaction summaries on Opus.heavy/coder models are
text-only, add an image alias pointing at a multimodal model (Gemini 3.5
Flash is the strongest cheap multimodal coder in mid-2026). If vision is rare,
make image a category the router can pick OR an alias the operator invokes
via per-call model: image (more reliable — the classifier can't detect
attached files, only prompt text that mentions them).| Situation | Fix |
|---|---|
| Operator wants a provider you can't find model ids for | Ask for the provider's model directory URL, or fall back to OpenRouter (aggregates most) |
| No model on the chosen provider meets the stated ceiling (e.g. "beat Opus 4.8" on OpenRouter) | Say so honestly. Offer the closest non-Anthropic option + note that the ceiling requires switching providers. |
| Operator asks for >4 router categories | Push back: explain the classifier-accuracy and steering-surface tradeoffs. Suggest an agent-def model: pin for the rare task instead of a category. |
| A recommended model id doesn't resolve on the provider | Verify the exact id via the provider's model page before emitting the config. OpenRouter ids are vendor/model-name; Anthropic direct ids are claude-*. |
| Benchmark data is sparse or stale (>6 months) | Flag it. Prefer Vals.ai (independent, re-runs) over vendor model cards. Note the review date. |
references/config-format.md — the complete
models: YAML schema, key rules, and a worked OpenRouter example.Ask normally, one question at a time. For example:
The operator can correct an answer naturally, such as “Actually, use Anthropic
instead,” before the search begins. Then silently inspect
~/.config/mecatl/settings.yaml; if it has a models: block, ask whether to use
it as a base or start fresh. Otherwise, begin Step 2 and search for models that
fit the recorded preferences.
© stacklok, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in .claude/skills/mecatl-model-router-config of stacklok/mecatl.
Open the folder on GitHubat commit dcf1ea4
Mecatl Model Router Config next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Mecatl Model Router Config this skillstacklok/mecatl | 241 | — | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Embeddings via 9Routerdecolua/9router | 30k | — | ~604 | Automated safety check: Pass | MIT | |
| Using Ccproxy Inspectorstarbaser/ccproxy | 350 | — | ~2.7k | Automated safety check: Pass | Custom licence | |
| LLM Routerjamesrochabrun/skills | 216 | 1 repos | ~3.3k | Automated safety check: Pass | MIT | |
| Using Ccproxy APIstarbaser/ccproxy | 350 | — | ~4k | Automated safety check: Pass | Custom licence | |
| Configuring Visionoxbshw/watch-skill | 460 | — | ~509 | Automated safety check: Notes | MIT |
decolua/9router
Generates vector embeddings through the 9Router /v1/embeddings endpoint, using models from providers such as OpenAI, Gemini, Mistral and Voyage for RAG and semantic search.
starbaser/ccproxy
Operates the ccproxy inspector MITM system for intercepting, inspecting, and transforming LLM API traffic.
jamesrochabrun/skills
This skill should be used when users want to route LLM requests to different AI providers (OpenAI, Grok/xAI, Groq, DeepSeek, OpenRouter) using SwiftOpenAI-CLI.
starbaser/ccproxy
Guides users through ccproxy as an OpenAI-compatible and Anthropic-compatible LLM API server with SDK integration, OAuth authentication, sentinel key substitution, model routing, and troubleshooting.
oxbshw/watch-skill
The user wants to connect an LLM or vision provider, already has an API key, asks "can I use OpenAI/Anthropic/Gemini/OpenRouter", wants local Ollama, or needs different cheap and strong models.
Detrol/quorum-cli
Run a structured debate between agent CLIs (claude, codex, agy, grok) and the user's configured API or local models (OpenAI, Anthropic, Google, xAI, OpenRouter, Ollama and more) through the Quorum…
stacklok/mecatl
Runs mecatl's offline benchmark and scenario harness to measure, profile with pprof, optimize and prove a performance win with benchstat, then adds a regression benchmark.
stacklok/mecatl
Cuts a tagged mecatl release by dispatching the release-PR workflow, merging the bot's pull request and verifying the tag, images, Helm chart, signed archives and Homebrew formula.
stacklok/mecatl
Designs, validates and writes the learning section of a mecatl settings file, covering mode, sensitivity, reflection budgets and validated or evaluated activation.
stacklok/mecatl
Guides reading mecatl's perf MCP data to find why a running harness is slow, leaking goroutines or growing in memory, using cheap reads before any CPU capture.
stacklok/mecatl
A skill your agent uses when writing or substantively editing user-facing documentation: drafting a new page, rewriting or restructuring an existing one, adding a major section, or turning…
stacklok/mecatl
Rebuilds the mecak8s image into the local mecatl-dev Kind cluster and builds mecatui, so you can try in-progress mecatl changes against a real Kubernetes deployment.
Works with
Categories
Interviews you about provider, cost, openness and image needs, then designs the models section of a mecatl settings file with aliases, slots and router categories. yaml, tailored to how the operator wants to trade off cost, capability, openness and modality. Before any search it asks one question at a time: the provider (OpenRouter is recommended, with Anthropic or OpenAI direct as alternatives), the priority axis (balanced, cost-tiered or capability-first), open-weight or hosted proprietary models, how often image input is needed, and an optional target coding ceiling.
Mecatl Model Router Config fits situations like: setting up model routing for a new mecatl deployment; revising which model fills each slot after prices or benchmarks change; building a router taxonomy for subagents; choosing between cost-tiered and capability-first routing.
Run `npx skills add stacklok/mecatl --skill mecatl-model-router-config -a claude-code`. Or copy the skill folder (.claude/skills/mecatl-model-router-config in stacklok/mecatl) into .claude/skills/mecatl-model-router-config in your project. Claude Code loads it when a task matches its description.
Run `npx skills add stacklok/mecatl --skill mecatl-model-router-config -a codex`. Or copy the skill folder (.claude/skills/mecatl-model-router-config in stacklok/mecatl) into .agents/skills/mecatl-model-router-config in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add stacklok/mecatl --skill mecatl-model-router-config -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mecatl-model-router-config, .gemini/skills/mecatl-model-router-config, .github/skills/mecatl-model-router-config and .opencode/skills/mecatl-model-router-config in your project.
SKILL.md names no scripts, command-line tools or credentials: Mecatl Model Router Config is instructions for the agent only. Our summary lists: A mecatl deployment and an API key for OpenRouter, Anthropic or OpenAI; Web search for live benchmark and pricing lookups.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Mecatl Model Router Config is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Mecatl Model Router Config: Embeddings via 9Router (decolua/9router, 30k stars), Using Ccproxy Inspector (starbaser/ccproxy, 350 stars), LLM Router (jamesrochabrun/skills, 216 stars) and Using Ccproxy API (starbaser/ccproxy, 350 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
stacklok (a GitHub organization) maintains it in stacklok/mecatl, which has 241 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 8, 2026.
Source: stacklok/mecatl on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.