Documentation

KillerSkills is a trust layer for agent skills: every public skill and MCP server is run in a honeypot sandbox and scored; the vet-skills CLI checks that score against a policy before your agent installs anything.

Start here

GuideWhat it covers
Before you connectOne MCP server you are about to give a credential to: what it will ask for (read from the code), where it talks to (its own hosts vs third parties), what the honeypot saw it do with a decoy credential, what could not be tested, and the guard command that keeps the credential out of the server. Name only, no account.
Config checkPaste your Claude Code, Cursor, Claude Desktop, Windsurf or Codex config; every MCP server and skill gets its verdict and blast radius. Parsed in the browser, names only, no account.
BenchmarksWhat each MCP server costs the agent, measured during its sandbox run: tool-list context per prompt, context per tool, handshake time, undocumented tools. Skills show the instruction tokens they load.
Repo scanAny public GitHub repository: the MCP servers, skills, plugins, hooks and instruction files it configures, with verdicts, hidden-instruction findings, installer-lure detection, committed credential values (kind and line only) and a read-only probe of hosted MCP endpoints (tool count, poisoned descriptions). Shareable, cached a day.
BlockedEverything currently carrying a Blocked verdict, with what the sandbox saw. Atom feed at /blocked.xml.
vet-skills CLIInstall, hook into Claude Code, read a verdict, join an organization, detonate your own skill, personal policy, command reference.
LeaderboardEvery scored skill, ranked by installs, with its current verdict. Search by name or publisher.
PlansDeveloper (free), Pro ($12 per developer per month, up to 3, monthly), Team ($24 per developer per month, annual, 10-seat minimum), Enterprise.
Scenario catalogThe full methodology: scenarios, decoys, static rules, scoring weights and deductions, engine changelog.
SecurityHow the sandbox isolates skills, what the CLI reports, how tokens and sessions work.

How a verdict is produced

Each new version of a skill goes through the same pipeline, whether it arrived from a registry crawl or a vet-skills detonate upload:

  • Static analysis — the bundle is parsed for credential-path reads, network calls to undeclared hosts, writes to agent memory or instruction files, tool-description shadowing, filesystem reach beyond the project, and unpinned dependencies (rules AST01–AST07).
  • Honeypot run — the skill executes in an isolated sandbox with a decoy home directory (tagged SSH keys, cloud and registry credentials), a recording egress proxy, and a syscall trace, across setup, task and adversarial scenarios. Any decoy that appears on the wire is attributable to the run.
  • Coverage — every run records how far it got: full (tool list or agent task observed), startup only, not started, install only, or static only. The label is never shown without it when the run was partial.
  • Score — behaviour, declarations and supply-chain findings combine into a 0–100 score and a label: Verified (clean), Caution (findings a policy may sandbox or require approval for), Blocked (credential exfiltration, undeclared egress with secrets, or memory tampering). Versions with only static findings are capped at Caution until the honeypot has run.
  • Re-detonation — scored versions are swept again on a schedule, and every new release is diffed against the previous one. A verdict that moves shows up as drift for the teams that have it installed.

Every verdict is also a signed attestation (DSSE, Ed25519) over the bundle's sha256, verifiable offline against /.well-known/killerskills-keys.json; vet-skills verify checks it and vet-skills lock pins what was attested. Verdict pages show the findings, the trace, the declarations the skill made and whether the sandbox honoured them. Publishers can claim a skill to be notified before a verdict changes, and dispute a finding from the verdict page.

For teams

An organization adds a policy and visibility on top of the free verdicts:

  • Policy — minimum score, what happens on Caution and on unscored versions, per-behaviour actions, publisher allow/block lists. Versioned YAML; agents pick up the latest version on their next check.
  • Inventory — every skill and MCP server installed by every enrolled agent, with its current verdict, who installed it, and whether it violates policy today.
  • Approvals — installs that need a human land on the Approvals page with the full report; decisions are recorded.
  • Drift alerts — when a verdict moves on something your team runs, with one-click removal requests to the affected machines.
  • Watched MCP servers — hosted MCP endpoints your agents connect to are probed read-only on every crawl. Their tool names, descriptions and input schemas are snapshotted; when the surface changes, the new descriptions are run through the same prompt-integrity rules as a SKILL.md and a tool surface changed alert is raised. The vet-skills hook reports any remote server added with claude mcp add automatically.
  • Runtime — with the guard on each machine, every MCP server the team's agents launch runs with placeholders instead of credentials, every host and tool call is recorded, a host a version never contacted before raises an alert, destructive tool calls can be held for a decision in Slack, and a version you revoke stops launching fleet-wide at its next start. Policy clause runtime: — network, new_host, secrets, blocked_versions, tools.
  • Audit log — every decision, approval, policy publish and enrollment, exportable.
  • Review packs — a date-bounded evidence bundle for your access review: what was listed on enrolled devices, what the guard observed (sessions, destinations, tool decisions), what people approved and how their identity was known, what the organization attests. Seven deterministic rules (missing approval, lapsed approval, version change, unexpected destination, denied or held calls, identity or policy gaps, coverage gaps) produce review items; a reviewer records a disposition for each; an admin finalizes, which freezes the records and binds the acknowledgment to their hash. Downloads are single-use links; the ZIP holds CSVs, a manifest with per-file hashes and known gaps, and a readable PDF whose every statement cites a record. Nothing is inferred: older records whose policy version or approver identity was not captured export blank and are listed as gaps. Supports evidence gathering for your own review and audit process; it is not a certification.
  • Settings — required-guard mode (machines without the guard install it at their next sync and show as non-compliant), retention for runtime data, single sign-on over OpenID Connect (Okta, Entra, Google Workspace, any issuer with discovery; optionally required for the org's email domain), and SIEM streaming of every audit record and alert (JSON, Splunk HEC, Datadog, CEF) on Enterprise.

Enforcement starts in observe (decisions logged, nothing blocked) and is switched to enforce from the Policy page when the team is ready. Start a 14-day trial — no card required.

Public API

The same data the CLI uses is available over HTTPS; no key is needed for public verdicts.

EndpointReturns
GET /api/v1/resolve?q=<name|name@version|url>The skill, its latest (or requested) version, artifact hash and current verdict.
GET /api/v1/verdicts/<artifact_hash>The full verdict for an exact artifact, with ETag support.
GET /api/v1/leaderboard?sort=installs|trending|blocked&kind=mcp&q=&page=The leaderboard, 50 rows per page.
GET /api/v1/statsCounts of skills indexed, scored, detonated in the last 24h, and label percentages.
GET /api/v1/threats · /api/v1/threats.stixIncidents: package versions a hook in the field or the honeypot caught misbehaving, with status open / confirmed / retracted and the re-run's result. JSON, or a STIX 2.1 bundle (indicators; retracted = revoked).
GET /taxii2/ (Enterprise)TAXII 2.1 read-only server for the same feed: collection `threats`, objects and manifest with added_after paging. Auth: Basic or Bearer with an enrolled agent token.
GET /api/v1/campaignsGitHub repositories live right now that pose as agent tools (installer lures, impersonations).
GET /skills/<registry>/<name>/<semver>/patch.diff · patch.mdPropose-a-patch: the removal diff for the lines the sandbox caught and the issue body with the evidence; the page at /patch opens them under your own GitHub account.
POST /api/v1/detonateUpload a gzipped tar of a skill directory; returns the verdict. 20 per day on the free plan.