- name
- gh-skillscan
- description
- Scan an OpenClaw SKILL.md file for security threats before installing it. Posts the raw SKILL.md content and gets back a safety score (0-1), detected threat patterns (credential harvesting, data exfiltration, obfuscated commands, permission overreach), and a SAFE/CAUTION/DANGEROUS verdict.
- metadata
- {"openclaw":{"emoji":"🔍","requires":{"bins":["python"]},"install":[{"id":"pip","kind":"uv","packages":["fastapi","uvicorn","pydantic"]}]}}
SkillScan
Check if a SKILL.md is safe before you install it.
Start the server
uvicorn skillscan.app:app --port 8001Scan a SKILL.md file
curl -s -X POST http://localhost:8001/v1/scan-skill \
-H "Content-Type: application/json" \
-d "{\"skill_content\": $(cat path/to/SKILL.md | jq -Rs)}" | jqReturns safety_score (1.0 = safe, 0.0 = dangerous), findings (list of threat names), verdict (SAFE/CAUTION/DANGEROUS), and skill_name.
What it detects
credential_harvesting— accessing $API_KEY, $TOKEN, $SECRET, $PASSWORDdata_exfiltration— curl/wget sending data to external URLsobfuscated_command— base64 decode piped to bash, eval, execpermission_overreach— accessing /etc/shadow, .ssh/, reverse shells
Example: scan before install
clawdhub inspect some-skill > /tmp/skill.md
VERDICT=$(curl -s -X POST http://localhost:8001/v1/scan-skill \
-H "Content-Type: application/json" \
-d "{\"skill_content\": $(cat /tmp/skill.md | jq -Rs)}" | jq -r '.verdict')
echo "Verdict: $VERDICT"