Skip to content

skill-router

CLI for Claude Code that ranks installed skills against a session's goal with Jev and says which to load, or to search skills.sh.

Agent skillbeta

Overview

skill-router addresses three problems once you have many Claude Code skills: forgetting which you have, Claude not reliably noticing a skill applies, and not knowing a good skill exists on skills.sh. At the start of a session Claude determines the goal (asking one question if needed) and runs skill-router intent set with it. The tool lists every installed skill and asks Jev to rank them against the goal, returning a probability per skill plus a confidence in typically under a second.

The answer is one of three: load a specific skill (for example /cold-email with probability 1.00), nothing installed fits so Claude should search skills.sh with the find-skills skill, or no skill is needed. The example also shows Jev classifying the task kind and a needs-a-skill probability. Nothing runs again until you set a new intent. A mock keyword mode works without a key and is used by tests. An eval harness runs cases against Jev on a machine with about 130 skills, keeps misses in the report, and an independent review found two bugs since fixed. All questions and thresholds live in one file.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich installed skill best fits this session's goal?—
Yes / noDoes this task need a skill?—
ChoiceWhat kind of task is this (e.g. marketing_growth)?—

How it works

  1. Claude captures the session goal
  2. skill-router lists installed skills and asks Jev to rank them
  3. Return: load skill X, search skills.sh, or no skill needed
  4. Stay quiet until the user sets a new intent

Strengths

  • Under a second per decision in the author's runs
  • Mock mode for trying without a key
  • Misses documented rather than tuned away

Caveats

  • Requires Python 3.12, uv and a TypeSafe key for real routing
  • Latency varied by location in an independent run

Getting started

git clone the repo, cp .env.example .env and paste a TypeSafe key, then start a new Claude Code session in a project with skill-router set up.

At a glance

Type
Agent skill
Status
beta
Language
Python
Runtime
CLI used by Claude Code
Has code
yes
Has tests
yes

Use cases and integrations

How curated lists describe it

  • Tell Claude Code which installed skill a session needs, using Jev (TypeSafe AI) for the decision and skills.sh for discovery.

    hellogumbo/awesome-jev

Frequently asked questions

What does Jev decide?

Which installed skill fits the session goal, whether any skill is needed, and the task kind.

What if no skill fits?

Claude is told to search skills.sh using the find-skills skill.

Can I try it without a key?

Yes, a labelled mock mode matches keywords instead.

Related projects

  • MIT plugin and local MCP server that hands an agent's closed questions to Jev or local Laya, with policy gates and receipts.

    Agent skillproductionPython
  • Claude Code and Codex skill that routes a task to one of 27 specialist roles, with an optional Jev engine for catalog selection.

    ProjectbetaPython
  • Claude Code hook that decides which agent or skill should handle a request using YAML rulebooks plus one Jev Choice with confidence bands.

    HookbetaPython
  • Orchestrator that probes which coding agents are installed and logged in, then has Jev pick the best one for a task.

    Agent skillbetaPython
  • Hooks for Claude Code, Codex and pi that use Jev to suggest a skill each turn, plus a rule gate for subagent model routing.

    HookbetaJavaScript
  • Claude Code plugin that asks Jev before each turn for reasoning effort, subagent model, strategy and skill, with a decision log.

    Agent skillbetaTypeScript