Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
No. 3727Tools index

Previous survey · No. 3455 ·

Pricing
Open Source
Type
TOOL
Use case
Agent Building
Interfaces
CLI
GitHub
1 stars
Date

About

A local CLI that manages SKILL.md-based agent skills across runtimes like Claude Code, Codex, OpenCode, and others, tracking token/context budgets, resolving conflicts, and gating installs before skills are copied onto a machine. It wraps NVIDIA SkillSpector for scanning and lets users apply named profiles to enable/disable skills per project without touching skill files directly.

What it does

A small command-line housekeeper for the instruction folders that coding agents read at startup. It walks every folder each agent looks in on your laptop, estimates how much prompt space their descriptions would occupy, points out pairs whose wording overlaps, and refuses to place a new folder unless an outside safety scanner approves it. Turning a folder on or off happens through each agent's own settings file, never by editing the folder.

Why it's ranked here

Few tools treat agent instructions as something to inventory and audit, and this one does it with almost nothing underneath: pure Python, a single runtime dependency on PyYAML, no network calls, MIT licensed. The behaviour is spelled out rather than implied. Exit codes separate a budget breach from a scanner failure, cleanup runs as a dry run unless asked, and the docs list which agents it can actually switch. The budget rules have unit tests. It is early software with a narrow scope, and it says so.

What's good

Cleanup is conservative by construction: it only ever removes dead links, duplicate links and empty folders, never a real directory, and skips the system scope entirely. Duplicate folders reached through links are collapsed by file identity, so the same folder installed twice is not counted twice. The overlap check strips boilerplate words like "use when" and folds word endings, so routine phrasing does not make unrelated entries look alike. The default budget is concrete: 20 entries and 2,000 description tokens, with per-entry warnings at 5,000 words or 500 lines.

Tradeoffs

Token counts are a rough estimate, characters divided by four, with no real tokenizer. Only Claude Code and Codex have a working on/off switch; the other agents are reported and left alone. The install gate depends on an external scanner being on your path, and without it installs stop with an error. Applying a profile to Codex rewrites every existing skill block in its config, so disables set by an earlier profile are replaced rather than merged. The documented install route is a git clone plus uv, not a package registry.

How to use it well

Fits a developer who runs several coding agents and has accumulated more instruction folders than they can track. Run the strict budget check in CI or a pre-commit hook, since it exits non-zero on a breach. Keep one profile per project rather than layering several, given how the Codex settings are rewritten. Install the scanner first if you want the gate to mean anything. It does not author, share or version instructions; it only accounts for and switches what is already on disk.

Technical notes+

Entry point is skillctl.cli:main per pyproject.toml, an argparse tree with ls, why, budget, use, scan, add and prune. src/skillctl/discover.py lists twelve roots across claude, codex (including ~/.agents and .system), opencode, pi (recursive to depth 3) and omp, and dedupes by (st_dev, st_ino). src/skillctl/measure.py estimates tokens as len(text) // 4. src/skillctl/conflict.py flags near-duplicates at NEAR_DUP_THRESHOLD = 0.45 using max(Jaccard, containment) plus CJK bigrams. src/skillctl/gate.py shells out to skillspector scan --no-llm --format json with a 600 second timeout. src/skillctl/profile.py set_codex_config drops all [[skills.config]] blocks before writing new ones. src/skillctl/prune.py only unlinks symlinks. tests/test_budget.py covers the budget rules.

Observed

License
MIT
Language
Python, requires 3.11 or newer
Runtime dependencies
One: PyYAML
Interface
Command-line tool with seven subcommands; JSON output on ls, why, budget and prune
Install surface
Git clone, then uv sync or uv tool install
Network use
None in normal operation; README states no network calls
External dependency for install gate
NVIDIA SkillSpector binary on PATH
Native on/off switching
Claude Code and Codex only
Tests
pytest suite in a tests directory, run against an isolated temporary home

Read from README.md, pyproject.toml, LICENSE, src/skillctl/cli.py, src/skillctl/budget.py, src/skillctl/conflict.py, src/skillctl/gate.py, src/skillctl/measure.py, src/skillctl/discover.py, src/skillctl/prune.py, src/skillctl/profile.py, tests/test_budget.py.

What it can do

  • List SKILL.md-based agent skills across multiple agent runtimes

    Agent runtime skill directories → List of skills

  • Gate skill installs before files are copied onto a machine

    SKILL.md skill package → Install approval/block decision

  • Track token/context budgets for skills

    SKILL.md skill files → Budget report

  • Resolve conflicts between skills

    Multiple SKILL.md skills → Conflict resolution

  • Apply named profiles to enable/disable skills per project

    Profile name → Enabled/disabled skill set

  • Prune installed skills

    Installed skill set → Reduced skill set

  • Scan skills using wrapped NVIDIA SkillSpector

    SKILL.md skill files → Scan results

Tags

cliskillskill-managerclaude-codecontext-budgetpackage-managerpythonuv

Tech Stack

Python

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.