skillock ๐
August 31, 2026 ยท View on GitHub
skillock ๐
Install AI agent skills without wondering what they will read, run, or change.
Scan untrusted skills before they touch secrets, shell, or your agent directories.
User pains skillock solves
- a skill reads
.env,~/.ssh/, or tokens during install - a skill runs
exec,curl | sh, or destructive shell commands - an update changes files and you cannot see what drifted
- the same vetted skill needs to land in multiple agents without manual copy/paste
Features
- ๐ Scan-before-install โ 19 security rules (9 P0, 6 P1, 4 P2) check every file
- ๐ Supply-chain integrity โ TOML lockfile with SHA-256 of every file
- ๐ซ Zero trust โ P0 rules block install; P1 prompts; P2 notes only
- ๐ Symlink deploy โ clean, reversible installation into agent directories
- ๐ท๏ธ Pinned versions โ resolves tags/commits/branches to immutable SHA
- ๐งฉ Multi-agent โ supports Claude, Codex, Agents, Cursor (or
--agents all) - ๐ฆ Zero runtime deps โ Python โฅ3.11, stdlib only (
tomllib,hashlib,subprocess,pathlib) - ๐ก๏ธ MIT licensed
Install
# preview a skill without writing anything
uvx skillock add owner/repo --skill my-skill --agents claude,codex --dry-run
# one-off install (no global install needed)
uvx skillock add owner/repo --skill my-skill --agents claude,codex
# or install globally
uv tool install skillock
Commands
| Command | Description |
|---|---|
add owner/repo[@tag] | resolve โ clone โ scan โ gate โ deploy โ lock |
list | installed skills, pinned refs, scan verdicts |
update [skill] | rescan + unified diff of every changed file, then upgrade |
remove <skill> | delete symlinks, store copy, lock entry |
audit | re-scan everything + verify SHA-256 of every installed file |
Use skillock when
- you already found a skill and want to vet it before install
- you want Git-pinned, SHA-verified skill installs
- you want one vetted skill deployed to multiple agents
- you want a local-first workflow with no hosted registry dependency
What skillock is not
- not a registry or marketplace for discovering skills
- not a publishing platform for skill authors
- not a general sync layer for every skills workflow
| If you need... | Reach for... |
|---|---|
| block risky skills before install | skillock |
| discover or publish skills broadly | a registry / package manager |
| author runtime skill libraries | a framework |
What Gets Blocked (P0 โ Install Refused)
- curl-pipe-shell โ
curl ... | sh,wget ... | bash - destructive-rm โ
rm -rf /,rm -fr,rm -Rf - sudo / privilege escalation โ
sudo,su,doas - code execution โ
eval(),exec(),Function(),os.system(),subprocess(..., shell=True) - pickle deserialization โ
pickle.load(),pickle.loads() - credential reads โ
.env,~/.ssh/,AWS_SECRET,GH_TOKEN, etc. - hardcoded secrets โ API keys, tokens, passwords in source
P1 warns and asks for confirmation; P2 prints notes only.
Full rule table: docs/spec.
Quick Demo
# This skill reads .env and uses exec() โ BLOCKED (18 P0 findings)
uvx skillock add obra/superpowers --skill brainstorming --agents agents --yes
# Clean skill โ installs successfully
uvx skillock add obra/superpowers --skill test-driven-development --agents agents --yes
Actual blocked run against obra/superpowers:

How It Works
- Resolve โ GitHub repo + tag/commit/branch โ pinned commit SHA
- Clone โ shallow clone at pinned ref
- Scan โ every file checked against 19 security rules (9 P0, 6 P1, 4 P2)
- Gate โ P0 blocks install; P1 prompts; P2 notes
- Deploy โ symlinks into agent directories (
~/.claude/skills/,~/.codex/agents/, etc.) - Lock โ TOML lockfile with SHA-256 of every file for integrity verification
Supported agents: claude, codex, agents, cursor (or --agents all)
Why
Most tools in this space optimize for discovery, sync, or publishing.
skillock optimizes for one narrower job: stop untrusted skills before install, then pin and lock what passed.
Real incidents show skills are untrusted code:
- A polars skill shipped adversarial instructions (K-Dense-AI/claude-scientific-skills)
- A hallucinated npm package spread to 200+ repos via copy-pasted skills
Skills are prompts your agent executes โ treat them like untrusted code.
Architecture
- Zero runtime dependencies โ Python โฅ3.11, stdlib only (
tomllib,hashlib,subprocess,pathlib) - POSIX โ Linux, macOS, WSL
- MIT license
Links
- GitHub: https://github.com/ruslanlap/skillock
- PyPI: https://pypi.org/project/skillock/
- Security policy: SECURITY.md
- Contributing: CONTRIBUTING.md
- Changelog: CHANGELOG.md