Local-first · For Claude Code v0.2.1

Should you install this skill?

Paste a Claude Code skill link. SkillsVote scores it against your local usage history and your actual machine — then tells you whether it's worth installing, and writes a one-click install prompt adapted to your setup. Nothing leaves your laptop.

$ uvx --from "https://github.com/horton2048/skillsvote-local/releases/download/v0.2.1/skillsvote-0.2.1-py3-none-any.whl" skillsvote
No install — runs via uvx · 🔌 Opens 127.0.0.1:8773 · 📦 MIT licensed
📥 Pasted link
git-cli-power-user
github.com/anthropics/skills/tree/main/skills/git-cli
Recommended
78/100

Matches 38 prompts in your history · keywords: commit, rebase, branch, PR · last used 2 days ago · you don't have this skill yet.

Relevance
0.74
Demand
0.66
Recency
0.91
Gap
0.66
Fit
1.00
+ install prompt ready
01 / What's the problem

Agent "skills" are exploding. Most of them aren't for you.

A SKILL.md file teaches a coding agent (Claude Code, Codex, OpenClaw …) how to do one specific job — write a migration, scaffold a Next.js page, debug a flaky test. There are now over 1.68M of them on GitHub. Browsing them feels like browsing the App Store with the reviews removed.

🧩 A skill, in 30 seconds

A skill is a markdown file with front-matter, a description, and instructions. The agent reads it before tackling a task. Think of it as a tiny, focused expert that the agent loads on demand.

---
name: git-cli-power-user
description: Run git workflows from the CLI:
  branching, rebasing, conflict resolution, PRs.
when_to_use: user is in a git repo and asks
  about commits, branches, or pull requests.
---

# Instructions
1. Always check `git status` before suggesting fixes.
2. Prefer `gh pr create` over web flows…

🤔 The "should I install this?" tax

For every skill you actually use, you'll evaluate ten. The "is this for me?" decision is annoying because the answer depends on three things only you know:

  • 01What you actually do. A killer Postgres skill is worthless to a frontend dev. A README that looks great says nothing about your usage.
  • 02What you already have. If three of your installed skills already cover this ground, a fourth one just adds context-window tax.
  • 03What your machine can run. "Requires Docker, gh, ripgrep" — half the skills you try silently fail because some binary isn't on your PATH.
02 / How it works

Three steps. About four seconds. All on your laptop.

SkillsVote runs locally as a tiny HTTP server on port 8773. The whole pipeline below happens between hitting Enter and seeing your score.

🔗

Paste any skill link

A GitHub URL (folder or file), a skills.vote page, or a raw SKILL.md. SkillsVote fetches it and reads the front-matter.

PASTE
github.com/anthropics/skills/tree/main/skills/git-cli
🔎

Scan your local context

Reads your ~/.claude prompt history, tokenizes it, builds an IDF index, and probes your shell for the binaries the skill needs.

prompts scanned1,243
distinct tokens8,914
OS detecteddarwin · arm64
bins on PATHgit ✓ gh ✓ rg ✓
⚖️

Score & generate install

Five dimensions roll up into a single 0–100 value, with a verdict and a copy-paste install prompt already adapted to your machine.

Relevance74
Demand66
Recency91
Gap66
Fit100
03 / The five dimensions

One score, broken into five questions only your machine can answer.

Scroll. Each panel shows what one dimension actually measures — and what it sees on a real machine.

01 / 05

Relevance相关

How much of the skill's vocabulary actually shows up in your prompts. Rare-but-on-topic terms (like rebase) count more than common filler (like file).

relevance = Σ idf(t) · 1[t ∈ your prompts] / Σ idf(t)
02 / 05

Demand需求

How often you actually do tasks in this skill's domain. A log-saturated count of your prompts that hit the skill's distinctive terms — so a million mentions of "the" don't inflate the number.

demand = log(1 + matched) / log(1 + 50)
03 / 05

Recency时效

When did you last do something this skill could've helped with? Exponential decay with a half-life of 14 days, so a hot 3-day-old hit weighs more than a stale six-month-old one.

recency = 0.5 ^ (days_since_last / 14)
04 / 05

Gap缺口

High demand × not-already-owned = a real capability gap. If you've already installed this exact skill (or a near-duplicate slug), Gap is heavily discounted — installing twice doesn't help.

gap = demand · (already_have ? 0.25 : 1.0)
05 / 05

Fit适配

Will it actually run? Checks your OS against any platform markers in the skill, and probes for required binaries on your PATH. A perfectly relevant skill that needs Docker on a Docker-less laptop drops here.

fit = os_compat · bins_available · 1[relevance > 0]
∑ / Roll-up

The verdict总分

A weighted blend of all five. SkillsVote turns that into one of four verdicts — install, optional, skip, or already installed — plus a one-paragraph "why".

value = 100 · (0.30·rel + 0.25·dem + 0.20·rec + 0.15·gap + 0.10·fit)
0.30 · relevance + 0.25 · demand + 0.20 · recency + 0.15 · gap + 0.10 · fit × 100 = your personalised score
04 / Privacy

Your prompts are sensitive. They never leave the machine.

SkillsVote is one Python process bound to 127.0.0.1. There is no telemetry, no analytics SDK, no "anonymous" payload — and the network only gets touched at one well-defined moment.

🏠

Bound to 127.0.0.1

The HTTP server only listens on loopback. Your LAN can't reach it, let alone the internet.

📁

Your ~/.claude stays put

Prompt history is tokenised and IDF-indexed in memory. The corpus is read at startup; never copied, never written elsewhere.

🔌

One outbound call, by you

The only network request is when you paste a link — SkillsVote fetches that skill's public README. Nothing else is uploaded.

🛠️

Open-source, MIT

~2,000 lines of Python. Read every line on GitHub before you run it.

05 / What you get back

Four verdicts. One install prompt. Zero guesswork.

Every assessment ends with one of four labels — so you can triage a long list of candidate skills the way you triage a PR queue.

Install

Strong fit

75+/100

Relevant, in demand, recent activity, and your environment supports it. Worth the context-window slot.

Optional

Mildly useful

45–74

You touch this area sometimes. Install if you're stocking up the library; skip if you're keeping it lean.

Skip

Not for you (yet)

<45

Either you don't do this kind of work, or your machine can't run it. Bookmark and re-check later.

Already

You already have it

Matches a slug already in your installed skill set. SkillsVote flags it and suggests an upgrade-or-skip.

06 / FAQ

Quick answers.

Do I need a Claude API key to run this?

No. SkillsVote-local is the scoring tool — it runs entirely on your machine without any API key. The optional hosted skills-vote integration (a separate package from MemTensor) is the only thing that uses a key.

Where does the "your usage history" come from?

From ~/.claude on your machine — Claude Code stores your prompt sessions there. You can point at a non-default path with --claude-home PATH. If you've never run Claude Code, there's simply no history to score against and SkillsVote will say so.

Does it work with non-Claude agents?

The scoring model is agent-agnostic — it just needs a prompt corpus. The current scanner reads Claude Code's format; PRs adding readers for Codex, OpenClaw, etc. are very welcome on GitHub.

What if a skill scores high but I disagree?

Trust your gut over the number. SkillsVote is a triage signal, not a verdict you have to obey — it tells you why it scored what it did, and you decide. The output shows the matched terms, prompt count, and recency so you can sanity-check.

How is this different from skills.vote?

skills.vote (and the upstream MemTensor/skills-vote) is a global recommendation index — what's popular, what's high-quality across all users. SkillsVote-local is the personal layer on top: given a candidate, is it for me, on this machine?

Can I use this on private/internal skills?

Yes — paste a path to a local SKILL.md or a private GitHub URL (with GH_TOKEN in your environment). The fetch happens on your machine; nothing about the skill is shipped anywhere.

Try it on your next skill link.

One command. No account. No telemetry. Closes when you close the terminal.

$ uvx --from "https://github.com/horton2048/skillsvote-local/releases/download/v0.2.1/skillsvote-0.2.1-py3-none-any.whl" skillsvote
Or grab the wheel from Releases and pip install it.