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.

Built on the Agent Skills open standard

SkillRoute is built around Agent Skills, the open standard for SKILL.md bundles. Every bundle you index is checked against the specification, and a standalone validator doubles as a CI gate for skill authors:

uv run skillroute validate examples/skills          # report
uv run skillroute validate --strict                 # fail on warnings too
uv run skillroute index --root examples/skills --strict   # refuse non-compliant bundles
Spec check (https://agentskills.io/specification): 4 bundles, 0 errors, 0 warnings

See Spec Compliance for the full rule set.

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 · deepseek · 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.

DeepSeek Harness installs as a bundle instead, with one command:

dsh plugin --profile web add @skillroute/dsh-plugin

The bundle registers SkillRoute's MCP server through dsh's built-in @deepseek-ai/dsh-mcp-client, giving agents mcp__skillroute__route, mcp__skillroute__search, and mcp__skillroute__inspect_skill. The Python core is zero-install when uv is present (the bridge runs uvx --from skillroute); otherwise pipx install skillroute once. See dsh-plugin/README.md.

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 validate [paths] Check bundles against the Agent Skills spec
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
Spec Compliance Validate bundles against the Agent Skills spec
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.

Metadata

Release files for skillroute 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for skillroute 0.4.0
File Size Uploaded
skillroute-0.4.0.tar.gz 1.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for skillroute 0.4.0
File Interpreter ABI Platform
skillroute-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.5 MB

Release files / skillroute-0.4.0.tar.gz

Download URL skillroute-0.4.0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
ffa1b17fb80d82510c87ae59e84ce4cb51d3d2dbb47cdce75ad1f0f68c60d6d8
BLAKE2b-256 checksum
How to use checksums
4989caceeec9d678641b825bfa290e4e6365a2c47d79f082a2858ebdf533d24f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 21, 2026.

Transparency log

Release files / skillroute-0.4.0-py3-none-any.whl

Download URL skillroute-0.4.0-py3-none-any.whl
Size 232.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2d17f73302364925f44f7a0894e6293b71b8a4055ba2dfabb2808e2c6d4017c0
BLAKE2b-256 checksum
How to use checksums
c098e7f593ac310d74fa01e8688a7787f5b0734b5b99c8cf42744031f42c3cdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 21, 2026.

Transparency log

Release history Release notifications | RSS feed

0.6.0

2 release files

0.5.0

2 release files

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page