scan_skill.py against it before allowing usescripts/scan_skill.py — Single Skill ScannerScans one skill directory for malicious patterns. Produces JSON or human-readable output.
scripts/aggregate_scan.py — Batch ScannerScans ALL installed skills and produces a single JSON report. Includes a built-in allowlist to reduce false positives from security-related skills, API skills, and other known-safe patterns.
# Scan a single skill (human-readable)
python3 scripts/scan_skill.py /path/to/skill-dir
# Scan a single skill (JSON output)
python3 scripts/scan_skill.py /path/to/skill-dir --json
# Scan ALL installed skills (JSON aggregate report)
python3 scripts/aggregate_scan.py
# With custom skills directory
python3 scripts/aggregate_scan.py --skills-dir /path/to/skills
# With verbose warnings
python3 scripts/scan_skill.py /path/to/skill-dir --verbose
# Exclude false positives
python3 scripts/scan_skill.py /path/to/skill-dir --exclude "pattern1" "pattern2"
0 = clean or informational only1 = suspicious (medium/high findings)2 = dangerous (critical findings)3 = error{
"skills": [
{
"name": "skill-name",
"verdict": "clean|suspicious|dangerous|error",
"findingsCount": 0,
"findings": []
}
],
"summary": "All 37 skills passed with no significant issues.",
"totalSkills": 37,
"cleanCount": 37,
"suspiciousCount": 0,
"dangerousCount": 0,
"errorCount": 0,
"timestamp": "2026-02-02T06:00:00+00:00"
}
Both scripts auto-detect paths:
skills/ parent), falls back to ~/clawd/skills, ~/skills, ~/.openclaw/skillsaggregate_scan.py finds scan_skill.py co-located in the same directoryverdict: "clean")verdict: "suspicious")verdict: "dangerous")The aggregate scanner includes an allowlist for known false positives:
See references/threat-patterns.md for full documentation of all detected patterns, organized by category with explanations of why each is dangerous.
--exclude flag help共 1 个版本