
Static security scanner for AI agent skill packages. Detects malicious SKILL.md files and bundled scripts before they run.
If SkillsGuard protects your pipeline, consider supporting ongoing research and new detection rules.
ETH Donation Wallet
0x11282eE5726B3370c8B480e321b3B2aA13686582
Scan the QR code or copy the wallet address above.
Static security scanner for AI agent skill packages. Detects malicious SKILL.md files and bundled scripts before they run.
# Scan any SKILL.md with a single curl — no account, no key
curl -s --data-binary @SKILL.md \
https://skillsguard.apiskillsguard.workers.dev/scan | jq .
Note: SkillsGuard is not currently published on the npm registry. Install by cloning and building from source.
# 1. Clone, install, build, and link
git clone https://github.com/Teycir/SkillsGuard.git
cd SkillsGuard
npm install
npm run build
npm link
# 2. Scan any skill directory or file
skillsguard /path/to/skill
That's it. SkillsGuard prints color-coded findings to the terminal (or --json for CI).
Exit code 0 = clean · 1 = findings · 2 = usage error.
Want Claude to call the scanner automatically inside your agent workflow? See Local Workflow → Path B for the full skill + MCP setup.
flowchart TD
A([Folder, file, or Git diff target]) --> B[Load config\nskillsguard.config.json]
B --> C[File discovery\nFilter JS, PY, PS1, Docker, Ruby...]
C --> D{For each file}
D --> E[Raw text scan\nApply 100+ rules]
D --> F[decode.ts\nExtract encoded blobs]
F --> G[Recursive decode\nbase64, hex, URL]
G --> H[Scan decoded content]
E & H --> I{Findings?}
I -->|no| J([✅ Clean — exit 0])
I -->|yes| K[Deduplicate findings]
K --> L[Compute Risk Score\n0 - 100]
L --> M{Output mode}
M -->|CLI| N[ANSI colored report]
M -->|--json| O[JSON output]
M -->|--sarif| P[SARIF output]
M -->|MCP| Q[MCP response]
N & O & P & Q --> R{Risk > max-risk?}
R -->|yes| S([❌ Exit 1])
R -->|no| J
style A fill:#0d1117,stroke:#00ff88,color:#c3f5dc
style J fill:#0d1117,stroke:#00ff88,color:#00ff88
style S fill:#0d1117,stroke:#ff4444,color:#ff8888
style G fill:#0d1117,stroke:#f0a500,color:#f0c060
style K fill:#0d1117,stroke:#00ff88,color:#c3f5dc
Key insight: SkillsGuard decodes obfuscated payloads before scanning, so a base64-wrapped reverse shell can't slip through. Every finding is deduplicated — each rule fires at most once per file per line.
The agent-skill security space filled up fast in 2026 — NVIDIA, Cisco, Snyk, and Mondoo have all shipped scanners for this exact problem. Worth knowing the field before you pick a tool, including this one.
| Tool | Backing | Requires account/token | Requires LLM call for core scan | Detection approach | Notable extra |
|---|---|---|---|---|---|
| SkillsGuard | Independent, MIT | No | No | Static regex, decode-first (recursive base64/hex/URL/Unicode unwrap) | Pre-commit hook + git-diff mode; free curl API |
| NVIDIA SkillSpector | NVIDIA, Apache 2.0 | No | No (optional, for semantic stage) | Static + optional LLM semantic pass | Live OSV.dev dependency-CVE lookup |
| Cisco AI Defense Skill Scanner | Cisco | No | No (optional, for semantic stage) | Multi-engine: static + behavioral dataflow + LLM semantic + cloud | GitHub Actions workflow built-in |
| Snyk Agent Scan (formerly mcp-scan) | Snyk, commercial | Yes — SNYK_TOKEN required | Yes — deterministic rules + LLM judges combined | Auto-discovery across Claude/Cursor/Windsurf/Gemini CLI + MCP servers | Powers Vercel's at-install skill scanning |
| SkillScan | Independent | No | Only for predict mode (optional) | YAML rule engine + optional LLM behavioral dry-run + optional Docker sandbox | Temporal/delayed-activation detection via LLM role-play |
| Mondoo Skill Check | Mondoo, commercial | No (free tier, non-commercial) | Unclear from public docs | Static, maps to OWASP LLM Top 10 | Hosted dashboard + REST API |
The throughline that matters most: SkillsGuard is the only tool in this table that needs nothing beyond Node ≥18.3 to run a full scan — no account, no API token, no LLM endpoint, no network call. Every other actively-maintained competitor either requires signing up for a service (Snyk) or recommends configuring an LLM provider to get full coverage (NVIDIA, Cisco, SkillScan). That makes SkillsGuard the simplest choice for a CI gate or pre-commit hook that has to run the same way, offline, every time — and the LLM-augmented tools the better choice when you want semantic/intent-level review and don't mind the extra dependency.