Skip to main content

PyPI Python License CI

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-shellcurl ... | sh, wget ... | bash
  • destructive-rmrm -rf /, rm -fr, rm -Rf
  • sudo / privilege escalationsudo, su, doas
  • code executioneval(), exec(), Function(), os.system(), subprocess(..., shell=True)
  • pickle deserializationpickle.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:

Real skillock blocked install demo

How It Works

  1. Resolve — GitHub repo + tag/commit/branch → pinned commit SHA
  2. Clone — shallow clone at pinned ref
  3. Scan — every file checked against 19 security rules (9 P0, 6 P1, 4 P2)
  4. Gate — P0 blocks install; P1 prompts; P2 notes
  5. Deploy — symlinks into agent directories (~/.claude/skills/, ~/.codex/agents/, etc.)
  6. 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:

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skillock-0.1.5.tar.gz (290.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skillock-0.1.5-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

Details for the file skillock-0.1.5.tar.gz.

File metadata

  • Download URL: skillock-0.1.5.tar.gz
  • Upload date:
  • Size: 290.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for skillock-0.1.5.tar.gz
Algorithm Hash digest
SHA256 d69d392bdc742768288d40f453244aa8ff06a9bc422289eb1299c545368f5181
MD5 5569453709ff1d34d92e5d529a6c39fc
BLAKE2b-256 1c7872280ebae1fca9215f1760b1803a5251f01bc9b90a36796de7d3f1dcebb1

See more details on using hashes here.

File details

Details for the file skillock-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: skillock-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 13.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for skillock-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4fa8dcd448ebaa0dd86857036a9731afcb3381bf661e50907138dc9865731281
MD5 12a6a0fd00e8ba670fd09f42a01ce7b1
BLAKE2b-256 15c29066040ed47411bb4a002d5ecb4c9804a68ee11430617293605ff404cdc4

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page