Install
git clone https://github.com/Dicklesworthstone/skillranker.git
cd skillranker
cargo install --locked --path . --bin srWho It's For
- Users already working with Claude Code who have accumulated a set of agent skills: if you want the system to automatically decide "which skill to use next" at every step based on the current conversation context, rather than scrolling through a list yourself.
- Developers who want structured JSON output and ranking results that allow the model to "abstain" (i.e., not draw a conclusion when uncertain).
- When it's not a fit: users without a TypeSafe API key cannot use the ranking system (the official documentation explicitly requires registering in the TypeSafe console to obtain your own key); whether non-Claude-Code agent integrations are supported is not stated in the official evidence; fully offline environments that do not accept any network requests should proceed with caution, because initiating a fresh Jev evaluation requires explicitly allowing network access by default.
Your First Try in 3 Minutes
The recommended main path is installing the Rust CLI from source:
- Prerequisites: a Rust toolchain on your machine, plus an API key obtained by registering in the TypeSafe console.
- Install (taken verbatim from the official README):
git clone https://github.com/Dicklesworthstone/skillranker.git
cd skillranker
cargo install --locked --path . --bin sr
-
For your first attempt, use a low-risk, previewable, and reversible action. The official docs provide a dry-run preview:
sr rankcombined with--dry-runlets you preview the sanitized request without any network side effects — the safest first step. Note: to initiate a real Jev evaluation, you need--allow-network(or enable network.enabled in a trusted user config); network access is opt-in per invocation and is not initiated by default. The API key environment variable is TYPESAFE_API_KEY, and the official docs require setting it via the environment. -
Users who want to integrate with Claude Code can run
sr install-hook claudeto preview the changes it would make to the hook settings first, and only after confirming they're correct apply them withsr install-hook claude --apply— this is an explicit preview-then-apply confirmation point. -
Success signal: after running the rank command with
--json, you get structured JSON ranking output including fit estimates for the available skills; if the model determines no suitable skill exists, it will abstain rather than force a ranking, as described officially. The task at this stage is of the "analysis/diagnosis" type (evaluating the context against the skill list); the output is a ranking with estimates, and it does not involve fiction or professional-document writing/rewriting workflows.
Note: --dry-run is a preview-type diagnostic operation; the official evidence only states that it has no network side effects. Whether it performs zero local file reads/writes or executes other commands is not stated in the evidence — do not assume it is entirely risk-free.
Use Cases
- Case 1: Let the agent pick a skill on its own mid-conversation. You're partway through a task in Claude Code and want to select an appropriate skill based on the current context. Through the installed hook (or by manually invoking
sr rank), SkillRanker hands the conversation context to TypeSafe's Jev, compares the available skills, estimates which one best fits the next step, and returns structured JSON. If your skill library exceeds 254 skills, the official docs explain that FrankenSearch's Quill first performs a local lexical pre-filter, narrowing the candidates to at most 254 before handing them to Jev; smaller libraries are passed to Jev in full. - Case 2: Low-risk verification that the installation works. Run
sr rank --context scratch/context.json --dry-runto preview the sanitized request contents without any network side effects. This lets you confirm up to this point: you can inspect the request that would be sent. To see a real evaluation result afterwards, re-run with--allow-networkexplicitly added. The evidence does not provide executable details for more example scenarios; beyond these two flows, no speculation is made.
Usage Boundaries
- Network access: a fresh Jev evaluation requires explicit authorization by default — use
--allow-networkper invocation, or set network.enabled in a trusted user config;--dry-runis used for previews with no network side effects. What other network endpoints it might access is not fully listed in the evidence. - Files and commands: the CLI needs to read the conversation context file (e.g., scratch/context.json);
sr install-hook claudemodifies Claude Code's hook settings — always run the preview version first before deciding whether to use--apply. Whether other files are read or written is not stated in the official evidence. - API key: a TypeSafe API key is required; you must register in the TypeSafe console yourself to obtain one, and provide it via the TYPESAFE_API_KEY environment variable. The key is sensitive information — take care not to commit it to your code repository.
- Integration surface: the officially supported agent integration is the Claude Code hook; the hook runs in shadow mode until network.enabled and hook.mode = "advisory" are set. Whether other agents are supported is not stated in the evidence.
- Large-library behavior: with more than 254 skills, Quill performs a local pre-filter; the accuracy boundaries of this pre-filtering layer are not detailed officially. Explicitly specified skill requests are resolved locally before the two stages.
- Unconfirmed: installation methods for other platforms, support for non-Claude-Code clients, and the range of supported text languages all lack official statements — no assumptions are made.