Agent skill

Hermes Tool Router Onboarding

by AtlasOmnia in AtlasOmnia/hermes-tool-router

First-run onboarding for the hermes-tool-router plugin — explain what the router does, offer the optional classifier API key exactly once, and verify the router is live.

MITAuto-check passed

Install Hermes Tool Router Onboarding

skills CLI
$ npx skills add AtlasOmnia/hermes-tool-router --skill hermes-tool-router-onboarding -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install AtlasOmnia/hermes-tool-router hermes-tool-router-onboarding --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/AtlasOmnia/hermes-tool-router.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/hermes-tool-router-onboarding .claude/skills/hermes-tool-router-onboarding && rm -rf skills-src

Use ~/.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/

Facts

Skill name
hermes-tool-router-onboarding
GitHub stars
125
Token cost
~2.3k tokens
SKILL.md length
1,175 words
Files
1
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

First-run onboarding for the hermes-tool-router plugin — explain what the router does, offer the optional classifier API key exactly once, and verify the router is live.

  • Works in 6 steps: What the router does → Why an API key is valuable — and why it… → Decision gate — ask once → …
  • A fresh Hermes profile has hermes-tool-router installed and was never onboarded
  • SKILL.md covers 1. What the router does, 2. Why an API key is valuable…, 3. Decision gate — ask once and 4. Verification — confirm the…, plus 2 more sections
  • Calls python; needs DEEPSEEK_API_KEY and OPENROUTER_API_KEY

What it does

Hermes Tool Router Onboarding is an agent skill from AtlasOmnia/hermes-tool-router. First-run onboarding for the hermes-tool-router plugin — explain what the router does, offer the optional classifier API key exactly once, and verify the router is live. Use when a fresh Hermes profile has hermes-tool-router installed and was never onboarded, or when the user asks about router setup, the classifier, or its API key.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Deterministic, fail-open tool routing for Hermes Agent with an optional local-model fallback. The licence is MIT.

When your agent uses it

  • A fresh Hermes profile has hermes-tool-router installed and was never onboarded
  • The user asks about router setup

Example prompts

  • “/hermes-tool-router-onboarding”

Requirements

  • Python 3
  • A credential in DEEPSEEK_API_KEY
  • A credential in OPENROUTER_API_KEY

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. What the router does
  2. Why an API key is valuable — and why it is optional
  3. Decision gate — ask once
  4. Verification — confirm the router is live
  5. Offer once, no nagging
  6. Pitfalls

What it can do on your machine

Read from SKILL.md and the folder at commit 0e1100d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • DEEPSEEK_API_KEY
    • OPENROUTER_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Hermes Tool Router Onboarding loads about 2.3k tokens when it runs. Until then it costs about 91 tokens; SKILL.md has 1,175 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~91
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from AtlasOmnia/hermes-tool-router at commit 0e1100d, republished under its MIT licence (© AtlasOmnia). 1,175 words, ~2,260 tokens.

Download SKILL.mdSave it as .claude/skills/hermes-tool-router-onboarding/SKILL.md (or your agent's skills folder).
name
hermes-tool-router-onboarding
description
First-run onboarding for the hermes-tool-router plugin — explain what the router does, offer the optional classifier API key exactly once, and verify the router is live. Use when a fresh Hermes profile has hermes-tool-router installed and was never onboarded, or when the user asks about router setup, the classifier, or its API key.
triggers
First interaction on a fresh Hermes profile that has the hermes-tool-router plugin installed, User asks what hermes-tool-router does, how to enable it, or how…

Hermes Tool Router — First-Run Onboarding

This skill is the onboarding surface for the hermes-tool-router plugin (the standalone pre-turn tool router). Use it once per fresh profile: explain what the router does, offer the optional classifier API key exactly once, and verify the router is live. It is written against the plugin's real behavior — read config.yaml and README.md in the plugin checkout before changing anything.

The router is disabled by default and experimental. Test it on a separate Hermes profile first; do not install it directly on a primary profile.

1. What the router does

Before the first provider request of a session, the router predicts which toolsets the request needs and narrows the live tool surface to only those toolsets, cutting first-turn token and tool-schema overhead. Key behaviors (all in this plugin, v0.2+):

  • Pre-turn toolset prediction: deterministic intent rules classify the user's first turn and load only the toolsets that request needs (hook: pre_llm_call). Measured schema reductions in the README baselines are large, but they are estimator results, not billing receipts — treat them as indicative, never as a guarantee.
  • Session-sticky surface: later turns reuse the initial routed surface instead of reclassifying and shrinking it every turn. This fixed behavior keeps the surface stable across the session.
  • Monotonic expansion: if a pruned registered tool is requested later, its owning toolset is added permanently for the session and is never re-pruned. This fixed behavior comes from the tool_request middleware and request_toolset fallback.
  • Fail open: uncertainty, invalid classifier output, missing confidence, timeout, registry mismatch, or unsupported runtime keeps the full tool surface. Nothing is ever pruned unless the router is confident (fail_open: true, confidence_threshold: 0.90).

The router is disabled by default (global.enabled: false). It must be enabled explicitly (globally or per profile) before any of the above runs.

2. Why an API key is valuable — and why it is optional

The router is fully functional with no API key at all: deterministic rules handle the common first-turn cases and fail-open handles everything else, with zero network calls.

The optional classifier is a separate, opt-in feature: when deterministic rules cannot resolve a first-turn request, a small external model (direct DeepSeek by default, or OpenRouter when explicitly selected) routes it instead of falling straight back to the full catalog. This is typically more accurate for ambiguous requests and can avoid a full-catalog first turn.

The classifier is:

  • OPTIONAL — keyless deterministic routing + fail-open is a complete, supported mode.
  • OPT-IN — disabled by default (classifier.enabled: false); never auto-enabled.
  • CONFIDENCE-GATED — any output below confidence_threshold: 0.90 (or with missing/ invalid confidence) fails open to the full surface.
  • FAIL-OPEN — invalid JSON, unknown actions or toolsets, timeout, or a missing API key all fall back to the full tool surface, never a crash and never a wrong prune.

It is never a universal speed guarantee: adding a network request before uncertain calls can erase latency gains, which is exactly why it stays opt-in. And it never replaces the user's main Hermes model — it only classifies the first turn's toolset choice; the main model still does all real work.

3. Decision gate — ask once

On a fresh profile's first interaction, ask the user a clear yes/no question, e.g.:

The tool router works fine with no API key (deterministic rules + fail-open). Optionally, you can enable its classifier — a small external model that routes ambiguous first-turn requests more accurately. Do you want to add an API key for the classifier? (Yes / No)

Do not ask on any later interaction (see §5).

Yes — enable the classifier

Walk the user through these steps (all config lives in the plugin's config.yaml; the README's "Configuration" section has the exact YAML):

  1. Enable the router itself — the classifier does nothing unless the router is on. Set global.enabled: true (or profiles.<profile-name>.enabled: true for a single profile).
  2. Enable the classifier — set classifier.enabled: true (under global: or under the profile block).
  3. Pick a provider and expose the key:
    • Direct DeepSeek (default — leave classifier.provider as null or unset): export DEEPSEEK_API_KEY in the profile's environment. Model defaults to deepseek-chat.
    • OpenRouter: set classifier.provider: openrouter and export OPENROUTER_API_KEY.
    • Custom OpenAI-compatible endpoint: set provider, model, base_url, and — only when authentication is required — api_key_env naming the env var that holds the key.
  4. Start a fresh session after config changes — the router reads config at session start.
Show full SKILL.md (465 more words)Show less
No — nothing more to do

Affirm that the profile is fully covered: deterministic rules handle the common cases and fail-open guarantees the full tool surface whenever they cannot. No key, no config change, no further action needed. Record the decision (see §5) so future sessions skip the gate.

4. Verification — confirm the router is live

After enabling (or to confirm an existing install):

  1. Diagnostics: run python diagnostics.py from the plugin checkout. Exit code 0 means a routing path is available before the provider request; exit code 2 means the current runtime must not claim first-turn savings. The JSON report also shows first_turn_savings_available, automatic_recovery_available, and the compatibility mode.
  2. Logs: the plugin logs its activation as hermes-token-router: profile=<name> enabled=True (debug level). A fresh session's logs must show the profile name and enabled=True.
  3. Real tool-call smoke: in a fresh session, make a request that actually needs a tool (e.g. web, file, or terminal work). Confirm the tool executes normally. If you want to exercise recovery, request something that was pruned from the routed surface and confirm its toolset is added for the rest of the session (monotonic expansion).

5. Offer once, no nagging

  • Offer the classifier/API key once, on a fresh profile's first interaction.
  • Skip silently when the profile is already configured: router already enabled, classifier already enabled, or the user already declined.
  • Never nag on later interactions, regardless of the answer.
  • Record the outcome (e.g. in profile memory/notes: "tool-router onboarding: classifier declined" or "classifier enabled via DeepSeek") so subsequent sessions can detect it and stay quiet.

6. Pitfalls

  • Keyless works fine. The classifier is not required; deterministic rules + fail-open are a complete, supported configuration. Do not imply the router needs a key.
  • The classifier only classifies the first turn. It never re-routes mid-session; mid-session behavior is session-sticky with monotonic expansion and is fixed plugin behavior, not a configurable mode.
  • Never attribute deterministic savings to the classifier. The baseline savings come from deterministic rules + fail-open and exist with the classifier disabled (its default). The classifier is an accuracy aid for ambiguous requests, not the source of the savings.
  • Artifact caveats. README token-reduction numbers are estimator results, not provider billing receipts, and release-gate claims require a versioned live validation report. Do not cite them as universal guarantees.
  • No key / wrong env var = silent fail-open. If DEEPSEEK_API_KEY/OPENROUTER_API_KEY is missing, the classifier client is skipped and routing fails open (safe, but the classifier is not actually running). Verify the exact env var name if the user expected classification.
  • Latency trade-off. A network call before uncertain requests can erase gains — another reason the classifier stays opt-in.
  • Fresh session required. Config is read at session start; changing config.yaml mid-session has no effect until a new session.
  • Disabled-by-default. Enabling the classifier while the router itself is disabled (enabled: false) does nothing.

© AtlasOmnia, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/hermes-tool-router-onboarding of AtlasOmnia/hermes-tool-router.

Open the folder on GitHubat commit 0e1100d

Compare with similar skills

Hermes Tool Router Onboarding 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.

Hermes Tool Router Onboarding compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Hermes Tool Router Onboarding this skillAtlasOmnia/hermes-tool-router125—~2.3kAutomated safety check: PassMIT
Onboardalirezarezvani/claude-skills28k—~1.3kAutomated safety check: PassMIT
Codebase Onboardingaffaan-m/ECC277k3 repos~2kAutomated safety check: PassMIT
Onboardingsickn33/agentic-awesome-skills47k1 repos~1.8kAutomated safety check: PassMIT
Hermes Importsaffaan-m/ECC276k—~324Automated safety check: PassMIT
Contributor Onboarding DocDonchitos/Claude-Code-Game-Studios26k—~1.4kAutomated safety check: PassMIT

Similar skills

  • Onboard

    alirezarezvani/claude-skills

    /cs:onboard — Founder interview that populates ~/.claude/company-context.md using the canonical 7-dimension cs-onboard schema.

    28k GitHub stars~1.3k tokensUpdated 1 mo ago
    Auto-check passed
  • Analyze an unfamiliar codebase and generate a structured onboarding guide with architecture map, key entry points, conventions, and a starter CLAUDE.md.

    277k GitHub starsUsed in 3 repos~2k tokens
    DevelopmentAuto-check passed
  • Onboarding

    sickn33/agentic-awesome-skills

    When the user wants to optimize post-signup onboarding, user activation, first-run experience, or time-to-value.

    47k GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check passed
  • Hermes Imports

    affaan-m/ECC

    将本地 Hermes 操作员工作流转换为经过清理的 ECC 技能和发布包工件。在准备将 Hermes 工作流用于公共 ECC 重用而不泄露私有工作区状态、凭据或仅本地路径时使用。

    276k GitHub stars~324 tokensUpdated yesterday
    Auto-check passed
  • Contributor Onboarding Doc

    Donchitos/Claude-Code-Game-Studios

    Writes an onboarding document for a new contributor or agent, covering project state, conventions and priorities relevant to a chosen role.

    26k GitHub stars~1.4k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Zero-to-sensing path picker for RuView (WiFi-DensePose) — pick docker-demo, repo-build, or live-esp32 and run the next concrete step.

    97k GitHub stars~333 tokensUpdated today
    DevelopmentAuto-check passed

Questions about Hermes Tool Router Onboarding

What does Hermes Tool Router Onboarding do?

First-run onboarding for the hermes-tool-router plugin — explain what the router does, offer the optional classifier API key exactly once, and verify the router is live. Hermes Tool Router Onboarding is an agent skill from AtlasOmnia/hermes-tool-router. First-run onboarding for the hermes-tool-router plugin — explain what the router does, offer the optional classifier API key exactly once, and verify the router is live.

When should I use Hermes Tool Router Onboarding?

Hermes Tool Router Onboarding fits situations like: A fresh Hermes profile has hermes-tool-router installed and was never onboarded; the user asks about router setup.

How do I install Hermes Tool Router Onboarding in Claude Code?

Run `npx skills add AtlasOmnia/hermes-tool-router --skill hermes-tool-router-onboarding -a claude-code`. Or copy the skill folder (skills/hermes-tool-router-onboarding in AtlasOmnia/hermes-tool-router) into .claude/skills/hermes-tool-router-onboarding in your project. Claude Code loads it when a task matches its description.

How do I install Hermes Tool Router Onboarding in Codex?

Run `npx skills add AtlasOmnia/hermes-tool-router --skill hermes-tool-router-onboarding -a codex`. Or copy the skill folder (skills/hermes-tool-router-onboarding in AtlasOmnia/hermes-tool-router) into .agents/skills/hermes-tool-router-onboarding in your project. Codex loads it when a task matches its description.

Can I use Hermes Tool Router Onboarding in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AtlasOmnia/hermes-tool-router --skill hermes-tool-router-onboarding -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/hermes-tool-router-onboarding, .gemini/skills/hermes-tool-router-onboarding, .github/skills/hermes-tool-router-onboarding and .opencode/skills/hermes-tool-router-onboarding in your project.

What does Hermes Tool Router Onboarding need to run?

Going by SKILL.md and its folder, Hermes Tool Router Onboarding needs the command-line tools its instructions call (python) and credentials named DEEPSEEK_API_KEY and OPENROUTER_API_KEY. Our summary lists: Python 3; A credential in DEEPSEEK_API_KEY; A credential in OPENROUTER_API_KEY.

Does Hermes Tool Router Onboarding access the network?

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.

Is Hermes Tool Router Onboarding safe to install?

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.

What licence does Hermes Tool Router Onboarding use?

Hermes Tool Router Onboarding is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Hermes Tool Router Onboarding use?

About 2.3k tokens (SKILL.md is roughly 9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Hermes Tool Router Onboarding?

Skills that share tags, products or a category with Hermes Tool Router Onboarding: Onboard (alirezarezvani/claude-skills, 28k stars), Codebase Onboarding (affaan-m/ECC, 277k stars), Onboarding (sickn33/agentic-awesome-skills, 47k stars) and Hermes Imports (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Hermes Tool Router Onboarding?

AtlasOmnia (a GitHub user) maintains it in AtlasOmnia/hermes-tool-router, which has 125 GitHub stars. The repository was last updated on October 2, 2026.

Source: AtlasOmnia/hermes-tool-router on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.