agentsec
agentsec
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.
When to Use
Use agentsec when the user asks to:
- Audit, scan, or check agent skills for security issues
- Verify installed skills are safe before running them
- Check OWASP compliance of an agent setup
- Gate a CI/CD pipeline on skill security
- Generate a security report for stakeholders
Quick Start
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.
Auto-discovery locations
| 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 |
| Other (generic) | Any skills/ directory found within the current project, up to two levels deep |
Core Commands
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
Installation
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
Flags
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 |
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 |
Common Recipes
Show detailed findings and remediation
npx agentsec --verbose
Scan a specific directory
npx agentsec scan --path ./my-skills
Target a specific agent platform
npx agentsec --platform claude
npx agentsec --platform codex
Audit with a strict policy and save JSON
npx agentsec --policy strict --format json --output audit.json
Generate an HTML report for stakeholders
npx agentsec --format html --output report.html
Generate a SARIF report for IDE / code-scanning integration
npx agentsec --format sarif --output report.sarif
List available policy presets
npx agentsec policy list
Inspect the rules in a preset
npx agentsec policy show strict
Validate a custom policy config file
npx agentsec policy validate ./my-policy.json
Replay a previous audit as an HTML report
npx agentsec report audit.json --format html --output report.html
Policy Presets
| 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. |
Configuration File
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.
OWASP Agentic Skills Top 10
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 |
AST-10 Web3 Annex (auto-detected)
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.
Understanding the Output
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.
Exit Codes
0— audit passed the active policy1— policy violation or fatal error
Use the exit code directly to gate CI pipelines — no special flag required:
npx agentsec --policy strict || exit 1
Tips
- Start with
npx agentsec— no install, no flags. Iterate from there. - Add
--verbosewhenever you need to act on specific findings. - Pipe
--format jsonintojqor a custom script for programmatic handling. strictis the most common preset for production repositories.- Browse the agent skills ecosystem at skills.sh.