Skill Kit: Local Analytics for AI Agent Skills

Track usage, measure context budget, and prune what you don't use. Zero telemetry.

· ·
#ai #engineering #claude

Skill Kit is a CLI that shows you which AI agent skills you actually use - and which ones waste context.

npx @crafter/skillkit stats

Discovers and tracks skills for Claude Code and OpenCode. Filter by agent with --claude or --opencode. More connectors coming as agents standardize their session formats.

The Problem

The skills ecosystem is growing fast. Skills.sh, manual installs, project-level skills - they accumulate. Every skill gets loaded into the agent’s context window on every session.

Context is a finite budget. Every unused skill steals tokens from your actual code.

But there’s zero visibility:

  • Which skills are actually being used?
  • How much context budget are they consuming?
  • Which ones haven’t been invoked in months?

I use Claude Code daily at Clerk and for my open source work at Crafter Station . I had 40+ skills installed across global and project scopes. No idea which ones mattered.

The Solution

Skill Kit gives you four commands:

stats

Usage analytics with sparkline trends. Auto-discovers your skills on first run, no setup needed.

$ skillkit stats
  First run detected, scanning skills...
  Found 12 skills across 3 agents.

  SKILL       30d   TREND
  commit      42    ▂▃▅▇█▆▅▇█
  review      38    ▁▃▅▆▇▇▆▅▃
  deploy      27    ▁▁▂▃▅▇█▇▅

It parses session data from each connector - Claude Code’s JSONL files for Skill tool_use blocks, OpenCode’s SQLite database for skill tool parts - and maps each invocation back to the skill that triggered it.

Use --days 7 to narrow the window or --all to see every skill.

health

Context budget check. Flags unused skills.

$ skillkit health
  [████████░░] 78% metadata budget (12.5K / 16.0K)
  ! 3 skills unused in 30d - run skillkit prune

prune

Removes skills that haven’t been used in 30 days. Shows what you’ll reclaim before confirming.

$ skillkit prune
  × scaffold (0.9K)
  × lint (2.1K)

  2 skills · 3.0K context reclaimable

  Run with --yes to confirm deletion.

list

Lists all installed skills with size and installation method.

Advanced

Under the hood, skillkit scan discovers skills and indexes sessions. It runs automatically on first use, but you can run it manually to force a re-scan or use --include-commands to also track slash commands.

How It Works

Everything runs locally. SQLite database at ~/.skillkit/analytics.db. No telemetry, no network calls, nothing leaves your machine.

The scanner walks skill directories for Claude Code (~/.claude/skills/) and OpenCode (~/.local/share/opencode/skills/ or %LOCALAPPDATA%\opencode\skills on Windows), reads SKILL.md files, and detects whether each skill was installed via skills.sh or manually. It deduplicates symlinked skills across agents.

For usage data, the connector system parses session storage from each supported agent:

  • Claude Code: JSONL session files from ~/.claude/projects/ - each file contains tool_use blocks. When a Skill tool is invoked, Skill Kit maps the skill name back to an installed skill and records the invocation.
  • OpenCode: SQLite database at ~/.local/share/opencode/opencode.db (macOS/Linux) or %LOCALAPPDATA%\opencode\opencode.db (Windows) - queries the part table for tool entries with tool: "skill" and extracts the skill name from the input state.

The connector architecture makes it straightforward to add more agents as they adopt trackable skill invocations.

Why only two connectors? Most agents (Cursor, Windsurf, Copilot, etc.) load skills as context rules injected into the system prompt. There’s no discrete “Skill” tool call in their session data - skills are invisible at that layer. Claude Code and OpenCode are currently the only agents that invoke skills through a dedicated, trackable tool call. The connector architecture makes it trivial to add more as agents standardize. You can filter by agent with --claude or --opencode.

Sparklines are generated from 30-day invocation data, bucketed daily. The health check calculates total metadata bytes across all loaded skills and compares against the 16K context budget.

Use as a Skill

You can also install Skill Kit as a skill from our skills repo :

npx skills add crafter-station/skills --skill skillkit

Then ask your agent: “which skills do I use the most?” or “clean up unused skills” and it runs the right commands.

Try It

npx @crafter/skillkit stats
npx @crafter/skillkit health
npx @crafter/skillkit prune

Open Source


Follow @RaillyHugo for more on developer tools and context engineering.