Skip to content
Agent Orchestration
Skill

/setup

Guided setup for the vSR plugin. Runs the vLLM Semantic Router classifier on this machine's GPU or CPU or connects a remote runtime, picks which of vSR's six apps run, sets thresholds, writes the settings, and checks each app against the runtime. Use when vSR was just installed,

From plugin
semantic-router
6.4k6 skills

Claude Code

$ npx -y skills add vllm-project/semantic-router --skill setup --agent claude-code

SKILL.md

setup.SKILL.md
name: setup
description: Guided setup for the vSR plugin. Runs the vLLM Semantic Router classifier on this machine's GPU or CPU or connects a remote runtime, picks which of vSR's six apps run, sets thresholds, writes the settings, and checks each app against the runtime. Use when vSR was just installed, when its tally says classifier offline or its rows say SKIPPED, or when the user wants to change vSR's runtime, apps, or thresholds.
allowed-tools: Bash(python3 ${CLAUDE_SKILL_DIR}/scripts/detect.py *) Bash(python3 ${CLAUDE_SKILL_DIR}/scripts/runtime.py *) Bash(python3 ${CLAUDE_SKILL_DIR}/scripts/settings.py id *) Bash(python3 ${CLAUDE_SKILL_DIR}/scripts/settings.py show *) Bash(python3 ${CLAUDE_SKILL_DIR}/scripts/settings.py plan *)

Set up vSR

vSR asks a small classifier questions on every subagent, prompt, read and Bash command. This skill gets that classifier answering and writes vSR's settings. The scripts in `${CLAUDE_SKILL_DIR}/scripts/` do every check and every write; you run them, read their output, and ask the user only what they decide. Show script output as it prints, and keep your own summary to a few lines.

Settings go under `pluginConfigs["<plugin id>"].options` in the user's `~/.claude/settings.json` (or `$CLAUDE_CONFIG_DIR/settings.json`). Claude Code reads `pluginConfigs` only from user settings, so there is no project scope. The token for a remote runtime is the one value that never goes there: the user saves it with `/plugin configure <plugin id>`, which stores it in secure storage.

Apps and thresholds start at vSR's defaults. Every app is on by default except check: it reads Claude's whole answer, so on a CPU runtime a long answer outlasts its 3 s limit. Recommend check only with a GPU or remote runtime.

Steps

1. **Plugin id.** Run `python3 ${CLAUDE_SKILL_DIR}/scripts/settings.py id --plugin-root "${CLAUDE_PLUGIN_ROOT}"`. It prints `vsr@<marketplace>` for an installed copy, or `vsr@inline` for one loaded with `--plugin-dir`. Then run `python3 ${CLAUDE_SKILL_DIR}/scripts/settings.py show --id <id>`. If `otherIds` lists another vSR id, tell the user those values stay under that id. Done when you know the id and what is already saved.

2. **Look first.** Run `python3 ${CLAUDE_SKILL_DIR}/scripts/detect.py --id <id>` and show its six lines (machine, GPU, Python, vllm-srun, runtime, suggestion). It installs nothing. When a runtime already answers, the runtime line names the device it runs on when the runtime reports one and how long one question takes, and the suggestion line carries `keep runtime=<value>`, the value that keeping it saves, with the reason in parentheses. Done when the user has seen what this machine has and what detect suggests.

3. **Recommended or custom.** Ask one AskUserQuestion:

  • **Recommended setup (Recommended)**: in the description, say what it does on this machine, from detect's suggestion: keep the runtime that already answers (`existing`), or install and run vela3-lite on this machine's GPU (`local-gpu`) or CPU (`local-cpu`). Apps and thresholds at their defaults (say check stays off and can be turned on later with a GPU or remote runtime). The user still sees the settings change before anything is written.
  • **Custom**: the user picks where the classifier runs, which apps run, and the thresholds.

When detect suggests `remote`, this machine cannot run the classifier, so skip the question and go on as Custom. Done when the user picked one. For Recommended, take detect's suggestion as the step 5 branch, then go to step 8 with every app and threshold at its default. For Custom, go to step 4.

4. **Where the classifier runs.** Custom only. Ask one AskUserQuestion. Put detect's suggestion first, marked "(Recommended)", with its reason as the description:

  • **Keep the running one**, only when detect found a ready runtime: it stays as it is.
  • **Local GPU**, only when detect found a GPU: fastest, uses about 2 GB of GPU memory for vela3-lite.
  • **Local CPU**: about 2.3 GB of RAM, 0.1 to 0.25 s per question as measured on x86 CPUs with bf16 (setup times bf16 against float32 and runs a CPU without it in float32, 0.7 to 2.4 s on a 4-core laptop); an Apple Silicon CPU is several times slower, about 2 s, which is too slow for vSR's hooks.
  • **Remote runtime**: a runtime on another machine, reached by URL, with an optional token. Everything the apps classify goes to that host: each Read and Bash output (keys hidden by the secret rules when redact is on), each fetched page (shield), your prompts (escalate), each subagent's task (router), each Bash command (guard), and Claude's answers with what it read that turn (check).

Done when the user picked one.

5. **Get the runtime answering.** Follow the branch the user picked, or detect's suggestion on the Recommended path:

  • **Keep the running one**: the URL is the one detect checked. Set `runtime` to the `keep runtime=` value on detect's suggestion line. When that line says detect could not tell the device, tell the user which value it kept and that Custom can change it. When the value is `remote`, tell the user what leaves this machine, as step 4 lists for a remote runtime, then run the Remote branch's `health` and probe commands and handle a `warning:` or an `HTTP 401` the way that branch does.
  • **Local GPU or Local CPU**: read [local-runtime.md](local-runtime.md) and follow it. On the Recommended path, use vela3-lite and skip its question about larger models.
  • **Remote**: ask for the `/v1/decisions` URL. Tell the user plainly what leaves this machine from now on: every Read and Bash output, fetched page, prompt, subagent task, Bash command and answer the enabled apps classify, as step 4 lists. Run `python3 ${CLAUDE_SKILL_DIR}/scripts/runtime.py health --url <url>` and `python3 ${CLAUDE_SKILL_DIR}/scripts/runtime.py probe --smoke --apps guard --url <url>`, both without a token. When either prints a `warning:` that requests travel unencrypted, tell the user th
Read more
@vllm-project
Ships withsemantic-router

An open, programmable decision layer for models and compute.

Stars on GitHub

Momentum

stars in total
6.4k
Star history of vllm-project/semantic-router on GitHub, a chart by star-history.com

Other skills on semantic-router.

calibrate

calibrate

Re-tunes the vSR plugin's thresholds from the user's own decision log. Tunes only the parts the user names (for example just the…

More skills from other plugins.

1password

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

clawdis13d393k
@steipete@steipeteInstall Skill
computer-use

computer-use

Drives the GUI of a visible local app window through `orca computer`: accessibility tree, clicks, typing, menus, dialogs, and…

orca13d111k
@stablyai@stablyaiInstall Skill
agentmail

agentmail

Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…

paperclip13d109k
@paperclipai@paperclipaiInstall Skill
adr-create

adr-create

Create a new Architecture Decision Record with sequential numbering and AgentDB registration

@ruvnet@ruvnetInstall Skill

Questions about setup.

Which coding agents can use setup?
setup installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.