Skill Vetter
一个面向 Security 场景的 Agent 技能。原始说明:Security-first skill vetting for AI agents. Use before installing any skill from ClawdHub, GitHub, or other sources. Checks for red flags, permission scope, and suspicious patterns.
name: agentsec
description: >
Audit AI agent skills for security vulnerabilities. Use when scanning
installed skills against the OWASP Agentic Skills Top 10, checking skills
before running them, gating CI/CD on skill safety, or generating audit
reports (text, JSON, SARIF, HTML) for stakeholders.
version: 0.3.3
license: MIT
homepage: https://agentsec.sh
author: semiotic-ai
permissions:
metadata:
agentsec:
profile: meta
openclaw:
emoji: "🛡️"
homepage: https://agentsec.sh
requires:
anyBins:
install:
package: agentsec
bins:
label: Install agentsec (npm)
agentsec is a security auditing CLI for AI agent skills. It scans every skill installed in a project against the OWASP Agentic Skills Top 10 and reports vulnerabilities, misconfigurations, and governance gaps.
Use agentsec when the user asks to:
The fastest path to a result — no install, no flags:
npx agentsec
This scans every default skills directory on the machine — grouped by platform — plus any ./skills folder in the current project (up to two levels deep), and audits each installed skill against the OWASP Agentic Skills Top 10. Always try this first.
agentsec is agent-platform agnostic — every platform listed below ships skills in the agentskills.io SKILL.md format and is auto-discovered.
| Platform | Paths scanned |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| Claude Code | ~/.claude/skills, ./.claude/skills, ~/.claude/plugins/*/skills/*, ~/.claude/commands, ./.claude/commands |
| OpenClaw / ClawHub | ~/.openclaw/workspace/skills, ~/.openclaw/workspace-*/skills (profiles via OPENCLAW_PROFILE), ~/.openclaw/skills |
| Codex / skills.sh | ~/.agents/skills, ./.agents/skills, ../.agents/skills, /etc/codex/skills |
| Hermes | ~/.hermes/skills, ~/.hermes/skills/* (bundled categories), ./.hermes/skills |
| Other (generic) | Any skills/ directory found within the current project, up to two levels deep |
Every workflow starts from one of four commands. Run them with npx agentsec — no install needed.
# Full audit (scan + policy evaluation). Default command.
npx agentsec
# Scan only (no policy evaluation)
npx agentsec scan
# Generate a report from a previously saved audit JSON
npx agentsec report audit.json
# Manage and inspect policy presets
npx agentsec policy list
npx agentsec needs no install. For repeated use, install globally:
# bun (recommended)
bun add -g agentsec
# npm
npm install -g agentsec
# pnpm
pnpm add -g agentsec
# yarn
yarn global add agentsec
Then drop the npx prefix:
agentsec
agentsec scan --path ./my-skills
All flags work with any command.
| Flag | Short | Values | Default | Purpose |
| ------------ | ----- | ------------------------------- | ---------- | -------------------------------------------------------- |
| --format | -f | text, json, sarif, html | text | Output format |
| --output | -o | path | stdout | Write report to file |
| --policy | -p | preset name or path | default | Apply a policy preset |
| --platform | | openclaw, claude, codex, hermes | auto | Narrow to one agent platform |
| --path | | path | auto | Custom skill directory to scan |
| --profile | | default, web3, strict | default | Rule profile. default auto-detects Web3 skills; web3 forces the annex on every skill |
| --verbose | -v | | off | Show detailed findings |
| --no-color | | | off | Disable colored output |
| --help | -h | | | Show help |
| --version | -V | | | Print version |
npx agentsec --verbose
npx agentsec scan --path ./my-skills
npx agentsec --platform claude
npx agentsec --platform codex
npx agentsec --platform hermes
npx agentsec --platform openclaw
npx agentsec --policy strict --format json --output audit.json
npx agentsec --format html --output report.html
npx agentsec --format sarif --output report.sarif
npx agentsec policy list
npx agentsec policy show strict
npx agentsec policy validate ./my-policy.json
npx agentsec report audit.json --format html --output report.html
| Name | Use Case |
| -------------------- | -------------------------------------------------------------------- |
| default | Balanced policy. Blocks critical findings. |
| strict | Enterprise-grade. Blocks high and critical findings, enforces tests. |
| permissive | Lenient. Only blocks critical CVEs. Good for development. |
| owasp-agent-top-10 | Built directly from the OWASP Agentic Skills Top 10. |
agentsec auto-loads .agentsecrc, .agentsecrc.json, or agentsec.config.json from the current directory (or any parent):
{
"format": "text",
"output": null,
"policy": "strict",
"verbose": false
}
CLI flags always override config file values. Omit "platform" and "path" to keep the default auto-discovery behavior — agentsec will scan every known platform's default locations.
Every audit checks all ten risk categories:
| ID | Risk |
| ----- | ----------------------- |
| AST01 | Malicious Skills |
| AST02 | Supply Chain Compromise |
| AST03 | Over-Privileged Skills |
| AST04 | Insecure Metadata |
| AST05 | Unsafe Deserialization |
| AST06 | Weak Isolation |
| AST07 | Update Drift |
| AST08 | Poor Scanning |
| AST09 | No Governance |
| AST10 | Cross-Platform Reuse |
Web3-touching skills are detected automatically and audited against twelve additional rules — no flag required. A skill is detected as Web3 when its manifest declares a web3: block, when its source imports a Web3 client library (viem, ethers, web3, wagmi, @solana/web3.js, @coinbase/onchainkit, @privy-io, @biconomy, @zerodev), when it references a Web3 RPC method (eth_*, wallet_*, personal_sign, signTypedData), or when it ships a .sol file. Detected skills are tagged [Web3] in the output:
✔ scoped-trader v1.4.0 [Web3] C (62)
✔ helpful-summarizer v1.2.0 A (95)
--profile web3 is still available — it forces the annex onto every skill regardless of detection (useful for cross-team CI consistency):
npx agentsec audit --profile web3 --path ./my-skills
| ID | Risk |
| ------- | ----------------------------------------------- |
| AST-W01 | Unbounded Signing Authority |
| AST-W02 | Implicit Permit / Permit2 Signature Capture |
| AST-W03 | Delegation Hijack via EIP-7702 |
| AST-W04 | Blind / Opaque Signing Surface |
| AST-W05 | RPC Endpoint Substitution & Mempool Leakage |
| AST-W06 | Unverified Contract Call Targets |
| AST-W07 | Cross-Chain / Bridge Action Replay |
| AST-W08 | MCP Chain-Tool Drift / Capability Smuggling |
| AST-W09 | Session-Key / Permission-Caveat Erosion |
| AST-W10 | Slippage / Oracle Manipulation by Agent Loop |
| AST-W11 | Key Material in Agent Memory / Logs |
| AST-W12 | No On-Chain Action Audit / Kill-Switch |
Skills can declare a web3 block in their manifest (chains, signers, policy caps, session-key scopes, MCP server pinning, audit sink, kill-switch) so the annex can verify scoping without flagging well-bounded skills. See docs/plans/ast10-web3-annex-rules.md for full per-rule detection signals.
Default output is compact: each skill shows its grade and score, followed by a one-line finding summary and a PASS/WARN/FAIL status.
✔ Found 6 skills
✔ fetch-data v1.0.0 D (42)
✔ deploy-helper v2.3.0 C (68)
✔ code-review v1.1.0 A (95)
6 skills scanned • avg score 78 • 4 certified
Findings: 2 critical, 1 high, 2 medium
⚠ WARN 3 high/critical finding(s) detected
Use --verbose for score breakdowns, rule IDs, file/line locations, and remediation for each finding.
0 — audit passed the active policy1 — policy violation or fatal errorUse the exit code directly to gate CI pipelines — no special flag required:
npx agentsec --policy strict || exit 1
npx agentsec — no install, no flags. Iterate from there.--verbose whenever you need to act on specific findings.--format json into jq or a custom script for programmatic handling.strict is the most common preset for production repositories.