Skip to main content

🧭 SkillRoute

Local-first skill routing for agent builders

Index full SKILL.md bundles into a local catalog, route any request to ranked skills with confidence and evidence, and serve it all to your agents over MCP.

CI License: MIT Python 3.11+ MCP

Quick start · Skill Atlas · Agent setup · How it works · Docs


Skill Atlas mapping 712 skills as an interactive galaxy, with facet filters, relationship types, and a live route preview

Skill Atlas — every skill in your library on one interactive map, with live route previews.


Why

Most agents choose skills from a one-line description and hope for the best. SkillRoute treats your skill library like a real corpus:

  • Full-bundle indexing — parses complete SKILL.md bundles (headings, triggers, templates, relationships), not just frontmatter.
  • Explainable routes — every ranked skill carries confidence, reasons, and source evidence. Uncertain routes return clarification questions instead of guesses.
  • Local first — one SQLite file, no services to run. Add the Astra DB backend when you outgrow it.

Quick start

One guided line (confirms each step, sets up detected agent clients with backups):

curl -fsSL https://raw.githubusercontent.com/erichare/skillroute/main/scripts/install.sh | bash

Or hands-on, in a checkout:

uv run skillroute index --root examples/skills
uv run skillroute route "Build an MCP server that exposes routing tools"

Ranked route output with confidence, reasons, and evidence

Actual text output
Ranked skills:
1. mcp-server-patterns (mcp-server-patterns-99fdd0b3d944c32a) confidence=0.3563
   Build MCP servers with Node and TypeScript using tools, resources, Zod schemas, and stdio transport.
   reason: Matched request terms against skill name, description, tags, or excerpts.
   reason: local-token retrieval returned this skill as a candidate.
   reason: Skill graph relationships provide supporting context.
   evidence[description]: Build MCP servers with Node and TypeScript using tools, resources, Zod schemas, and stdio transport.
   evidence[headings]: MCP Server Patterns; When to Use
2. python-testing (python-testing-19ef6ae9ced445b2) confidence=0.1373
   Test Python applications with pytest fixtures, parametrization, temporary paths, and regression coverage.
   ...

The default catalog lives at ~/.skillroute/catalog.db. A .skillroute/catalog.db in the working directory is used instead when one already exists, so existing project catalogs keep working; point elsewhere with --catalog <path> or SKILLROUTE_CATALOG_PATH.

Skill Atlas

Your whole library, mapped. Facet nebula, skill graph, and matrix views; filters for domains, relationship types, orphans, and conflicts; a detail panel with excerpts and source references; and a route preview bar that highlights the chosen path through the graph.

uv run skillroute ui

Plug it into your agent

The bundled MCP server exposes three tools over stdio — skillroute.route, skillroute.search, and skillroute.inspect_skill. One command writes the config for your harness (JSON edits are backed up first):

uv run skillroute harness install claude-code
uv run skillroute harness detect        # what is installed here
uv run skillroute harness list          # everything SkillRoute knows about

Supported harnesses: amp · claude-code · claude-desktop · codex · cursor · gemini-cli · goose · hermes · ibm-bob · opencode · pi · vscode · windsurf · zed

Each one is a single declarative manifest in harnesses/, so adding a new tool is usually a data change with no Python — see Harness Packs.

Route observability

Every route is a trace you can replay: inputs, candidates, scores, and the evidence behind each decision. Golden-route evals keep your catalog honest as it grows.

Backend status and route trace inspection

uv run skillroute traces list
uv run skillroute eval run --fresh --index-root examples/skills --cases examples/evals/golden_routes.json

How it works

flowchart LR
    A["SKILL.md bundles"] --> B["Indexer<br/>parser + metadata review"]
    B --> C[("SQLite catalog<br/>skills · excerpts · graph · traces")]
    C --> D["Router<br/>lexical + retrieval + graph signals"]
    D --> E["CLI"]
    D --> F["Skill Atlas UI"]
    D --> G["MCP server"]
    G --> H["Your agent"]
  • Python core — parsing, catalog persistence, hybrid routing, evals, CLI.
  • Skill Atlas — FastAPI server + React Flow frontend, bundled into the Python wheel.
  • MCP server — TypeScript stdio transport around the Python bridge.
  • Backends — local token retrieval by default; SQLite FTS5 (BM25) for larger local libraries, Astra DB Data API and a LangChain-compatible adapter when you want more.

CLI at a glance

Command What it does
skillroute index --root <dir> Parse and index SKILL.md bundles
skillroute route "<request>" Ranked skills with confidence and evidence
skillroute search "<query>" Hybrid search across the catalog
skillroute inspect <skill> Metadata, relationships, excerpts, sources
skillroute traces list Inspect past routing decisions
skillroute eval run Golden-route evals against expected outcomes
skillroute backend status Retrieval backend health
skillroute harness list Every harness SkillRoute supports, and its modes
skillroute harness install <harness> Configure a harness to use SkillRoute
skillroute ui Launch the Skill Atlas

Docs

Guide
Getting Started Index, route, and inspect in five minutes
Harness Packs Supported harnesses, install modes, and how to add one
Agent Setup Wire SkillRoute into your agent clients
MCP Server Tools, transport, and configuration
Skill Atlas UI The graph explorer in depth
Route Observability Traces and debugging routes
Golden Route Evals Keep routing quality measurable
Metadata Overlays Curate tags without editing sources
Astra Data API Backend Remote vector retrieval
Changelog Release history

Development

uv sync --extra dev   # dev includes the `ui` extra
uv run --extra dev pytest --cov=skillroute
uv run --extra dev ruff check . && uv run --extra dev mypy

See CONTRIBUTING.md for the full dev setup (web UI, MCP server) and the release process.


MIT © Eric Hare — for people who take their skill libraries seriously.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skillroute-0.3.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skillroute-0.3.0-py3-none-any.whl (229.9 kB view details)

Uploaded Python 3

File details

Details for the file skillroute-0.3.0.tar.gz.

File metadata

  • Download URL: skillroute-0.3.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for skillroute-0.3.0.tar.gz
Algorithm Hash digest
SHA256 e9a76e06f136e9f03fb97743da9e864dc07f8cbf31dc750d6b72a1fc60ef61e6
MD5 a952894247e65ff85665ada57f711a29
BLAKE2b-256 4f8e7f510c52467a162ff5b10e5d8a0d331f0596eed18d42190acc7041ee9a97

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillroute-0.3.0.tar.gz:

Publisher: release.yml on erichare/skillroute

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file skillroute-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: skillroute-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 229.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for skillroute-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d623b4aee6deea80a3b6b3b15dfb069b3468952d5dee604676a548c6b3cdc477
MD5 801e0ed03125676fc902a5408d7df548
BLAKE2b-256 15b5e68b007675be7005ff9f0239624d483768141a87d7643f7ca2f3a9545714

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillroute-0.3.0-py3-none-any.whl:

Publisher: release.yml on erichare/skillroute

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page