Static security scanning for AI skills, MCP servers, npm packages, VS Code extensions, and GitHub Actions workflows.
SkillScan checks local skill instructions, GitHub-hosted code, npm package metadata, OpenVSX extension metadata, GitHub Actions workflows, and MCP server repositories for risky patterns before you install or run them. It is intentionally fast and boring: static analysis, clear findings, and remediation notes.
Nick Saraev's viral "It Got Worse - Clawdbot" video exposed:
- No vetting process on ClawdHub - malicious skills published freely
- Thousands of compromised Clawdbot instances via Shodan scanning
- API token theft through malicious skill instructions
- Supply chain attacks via skill repositories
His advice? "Read every file or feed files to AI to check safety." We automate that.
- Static analysis for a fast-moving AI tooling ecosystem.
- GitHub URL, npm package URL, OpenVSX extension URL, file, and direct-code scanning.
- Risk scoring with severity, category, location, snippet, and remediation.
- A focused security UI that avoids hiding findings behind generic AI summaries.
- A public example of building small developer tools with practical failure modes.
- ClawdHub and Claude Code skill attack detection.
- MCP server and GitHub repository scanning.
- npm package metadata and lifecycle-script scanning.
- VS Code/OpenVSX extension manifest and source-behavior scanning.
- GitHub Actions workflow scanning for release-pipeline and PR-trigger risks.
- 0-100 security score with A-F grades.
- Pattern checks for shell execution, network access, file-system access, prompt injection, credential patterns, data exfiltration, package install hooks, extension activation behavior, and CI workflow trust boundaries.
- No AI inference required for the core scan.
- Explicit install verdicts: pass, manual review, or block install.
- Committed malicious fixture corpus for token exfiltration, malicious install hooks, hostile skill instructions, and persistence attempts.
- False-positive eval against installed local Codex, agents, and plugin skills.
Based on real ClawdHub compromises and supply chain attacks:
- Shell Command Execution -
exec(),spawn(),child_processusage - Network Requests - HTTP/HTTPS calls to external URLs
- File System Access - Reading/writing files outside workspace
- Environment Variable Access - Accessing
process.envfor secrets - Dynamic Code Execution -
eval(), Function constructor usage - Base64 Encoding - Potential data exfiltration encoding
- Obfuscated Code - Minified, hex-encoded, or suspicious patterns
- Prompt Injection - "Ignore previous instructions" type patterns
- API Token Stealing - Attempts to extract OpenAI/Anthropic keys ⭐ NEW
- Credential Patterns - Hardcoded API keys, passwords, tokens
- Data Exfiltration Webhooks - Webhook URLs for stealing data ⭐ NEW
- Package Analysis - Typosquatting, malicious packages in package.json
- Secret Exfiltration Flow - Cross-line detection when sensitive env vars and outbound transmission appear together
- Persistence & System Modification - Startup jobs, SSH access files, curl-pipe-shell, destructive deletes, broad chmod/chown
- Malicious Skill Instructions - Instruction files combining broad tool access, secrets, outbound transmission, or override language
- Dangerous Lifecycle Scripts - Critical scoring for install hooks that run network, shell, secret, or filesystem-modifying behavior
- npm Package Provenance - Missing repository/homepage metadata and larger CLI install surfaces
- Dependency Confusion Signals - Suspicious dependency names and package-name lookalikes
- VS Code Extension Activation - Broad activation events such as
*, startup, workspace, and language-wide activation - VS Code Extension Runtime Behavior - Terminal execution, workspace file access, clipboard access, and secret exfiltration flows
- Known Compromised Package Versions - Incident-intelligence matches for public npm supply-chain compromises
- Registry Freshness Cooldown - Fresh package versions and high-impact packages less than 7 days old
- Package Integrity Metadata - Missing integrity hashes or weak registry metadata
- GitHub Actions Trust Boundaries -
pull_request_target, checkout, write permissions, and secret access combinations - GitHub Actions Pinning - Third-party actions referenced by mutable tags instead of full commit SHAs
- npm Tarball Extraction - Published package artifacts are downloaded, unpacked, and scanned beyond registry metadata
- VSIX Artifact Extraction - OpenVSX extension packages are downloaded, unpacked, and scanned beyond marketplace metadata
- Runtime Downloader Detection - GitHub Releases, Bun/runtime bootstraps, and second-stage payload download patterns
- Import-Time Payload Detection - Python/JavaScript import-time secret reads, outbound exfiltration, and optional dependency bootstraps
The scanner has adversarial evals for cases that should fail hard and benign cases that should stay quiet.
Committed malicious fixtures live in test/fixtures/malicious and cover:
- Multi-line secret exfiltration through outbound requests.
postinstallscripts that fetch and execute remote code.SKILL.mdinstructions that request broad tools, secrets, and webhook transmission.- Persistence attempts through launch agents, SSH authorized keys, and broad file permission changes.
- npm packages that exfiltrate environment variables during install.
- VS Code extensions with broad activation, terminal execution, clipboard access, and outbound secret transmission.
- Known-compromised npm package/version metadata.
- GitHub Actions workflows with
pull_request_target, write permissions, unpinned third-party actions, and npm publish secrets. - npm tarball and VSIX artifact payloads, including runtime downloaders, fake bundled assets, and import-time exfiltration.
Those fixtures must all produce riskLevel: "block":
pnpm eval:maliciousThe unit suite also covers benign cases that should not become noisy:
- Security documentation that mentions tokens without being treated as executable theft.
- Local app code using
NEXT_PUBLIC_*env vars and relative API routes.
Run them with:
pnpm testFor a local false-positive corpus, scan the installed Codex, agents, and plugin skills:
pnpm eval:local-skillsThat command summarizes findings with home paths redacted and exits nonzero if any critical or high-risk finding appears.
https://claudhub.ai/skills/username/skillname
https://github.com/username/repo
https://www.npmjs.com/package/package-name
pkg:npm/package-name@1.2.3
https://open-vsx.org/extension/publisher/extension-name
https://github.com/username/repo/blob/main/file.ts
Paste skill instructions, package manifests, extension manifests, GitHub Actions workflows, or source code directly into the scanner.
ClawdHub has zero vetting. Any skill can be published. The Nick Saraev video showed:
- Malicious skills stealing API tokens
- Thousands of compromised Clawdbot instances
- Supply chain attacks through skill repositories
- Zero protection for end users
Don't be the next victim. Scan before you install.
Scan code, GitHub repositories, npm packages, OpenVSX extensions, GitHub Actions workflows, or supported skill-directory URLs for security issues.
Request Body:
{
"url": "https://github.com/username/repo",
// OR
"code": "your code here"
}Response:
{
"score": 85,
"grade": "B",
"summary": "Found 2 medium-risk issues. Generally safe but worth reviewing.",
"scannedFiles": 5,
"linesAnalyzed": 1247,
"findings": [
{
"severity": "medium",
"category": "Network Access",
"title": "Network request detected",
"description": "Code makes network requests which could be used for data exfiltration.",
"file": "index.ts",
"line": 42,
"snippet": "fetch('https://api.example.com/data')",
"remediation": "Ensure URLs are validated and requests are to trusted domains only."
}
]
}pnpm installpnpm devpnpm buildpnpm test
pnpm eval:malicious
pnpm eval:local-skills
pnpm lint
pnpm buildSee CASE_STUDY.md for the product framing, tradeoffs, and next steps.
- Next.js 14 - React framework with App Router
- TypeScript - Type safety
- Tailwind CSS - Styling with custom dark theme
- Framer Motion - Smooth animations
- Lucide React - Beautiful icons
SkillScan is designed by security-conscious developers, for security-conscious developers. It's not a generic SaaS tool - it's a specialized security scanner that understands the Claude Code ecosystem.
- Fast - Static analysis only, no AI inference delays
- Accurate - Pattern-based detection for known vulnerabilities
- Focused - Specifically designed for Claude Code skills and MCP servers
- Clean - Terminal-inspired UI without cheesy "hacker" aesthetics
MIT License - built for the Claude Code community.