360guard

star 2.0k

360-degree comprehensive security review Skill. Use before installing any Skill from ClawHub, GitHub, or other sources. Performs full security scans including all Skill Vetter checks plus extended system/privacy/behavior checks and automated scanning scripts. Supports static analysis, behavior detection, dependency auditing.

LeoYeAI By LeoYeAI schedule Updated 6/8/2026

name: 360Guard description: 360-degree comprehensive security review Skill. Use before installing any Skill from ClawHub, GitHub, or other sources. Performs full security scans including all Skill Vetter checks plus extended system/privacy/behavior checks and automated scanning scripts. Supports static analysis, behavior detection, dependency auditing.

360Guard ๐Ÿ›ก๏ธ

360-degree comprehensive security review โ€” Like antivirus for your Skills

1. When to Use

  • Before installing any Skill from ClawHub
  • Before installing any Skill from GitHub or other sources
  • When evaluating code shared by other Agents
  • Any time you're asked to install unknown code
  • Periodic audit of installed Skills (recommended monthly)
  • Before running high-risk Skills for second verification

2. Core Principles

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ๐Ÿ›‘ Security Layer Priority                                 โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  โ›” EXTREME โ†’ Absolutely refuse to install                  โ”‚
โ”‚  ๐Ÿ”ด HIGH    โ†’ Requires human approval                       โ”‚
โ”‚  ๐ŸŸก MEDIUM  โ†’ Full code review + limited permissions        โ”‚
โ”‚  ๐ŸŸข LOW     โ†’ Basic review OK                               โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

3. Security Checklist

3.1 Base Red Flags (from Skill Vetter)

๐Ÿšจ Reject immediately if you see:
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
โ€ข curl/wget to unknown URLs
โ€ข Sends data to external servers
โ€ข Requests credentials/tokens/API keys
โ€ข Reads ~/.ssh, ~/.aws, ~/.config without clear reason
โ€ข Accesses MEMORY.md, USER.md, SOUL.md, IDENTITY.md
โ€ข Uses base64 decode on anything
โ€ข Uses eval() or exec() with external input
โ€ข Modifies system files outside workspace
โ€ข Installs packages without listing them
โ€ข Network calls to IPs instead of domains
โ€ข Obfuscated code (compressed, encoded, minified)
โ€ข Requests elevated/sudo permissions
โ€ข Accesses browser cookies/sessions
โ€ข Touches credential files
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

3.2 Extended Red Flags (New)

3.2.1 Persistence & Auto-start

๐Ÿ”ด Persistence check:
โ€ข Creates cron job / systemd service
โ€ข Modifies ~/.ssh/authorized_keys
โ€ข Writes to /etc/hosts
โ€ข Adds Login Items / Startup Items
โ€ข Modifies .bashrc / .zshrc / profile
โ€ข Registers LaunchAgent (macOS)
โ€ข Installs systemd user service

3.2.2 Monitoring & Eavesdropping

๐Ÿ”ด Monitoring permissions check:
โ€ข Requests screen capture/recording (screencapture)
โ€ข Requests audio recording permission
โ€ข Keyloggers
โ€ข Accesses microphone/camera
โ€ข File system monitoring (fswatch/inotify)

3.2.3 Data & Privacy

๐Ÿ”ด Data theft check:
โ€ข Reads clipboard (pbpaste)
โ€ข Reads environment variables (especially API_, SECRET, TOKEN)
โ€ข Accesses browser history/bookmarks
โ€ข Accesses macOS Keychain
โ€ข Accesses iMessage/SMS
โ€ข Accesses contacts/calendar
โ€ข Accesses photo library

3.2.4 Network & Communication

๐Ÿ”ด Network anomaly check:
โ€ข Initiates reverse shell (nc -e / bash -i)
โ€ข Uses Tor proxy
โ€ข DNS queries to suspicious domains
โ€ข WebSocket long connections
โ€ข IRC connections
โ€ข Non-standard ports (>65535 or <1024 unusual)
โ€ข Hardcoded IP addresses (non-local)

3.2.5 Code Execution (Advanced)

๐Ÿ”ด Dynamic execution check:
โ€ข Dynamic import (importlib.import_module)
โ€ข __import__() dynamic loading
โ€ข compile() dynamic compilation
โ€ข xmlrpc / jsonrpc remote calls
โ€ข pickle / yaml / marshal deserialization
โ€ข exec() / eval() any string
โ€ข subprocess shell=True

3.2.6 File System

๐ŸŸก File operation check:
โ€ข Writes to executable paths outside /tmp
โ€ข Modifies /usr/local/bin
โ€ข Writes .dmg/.pkg installers
โ€ข Creates .hidden files/directories
โ€ข File permission modification (chmod +x)
โ€ข Symbolic links (pointing external)
โ€ข Contains binary files (.so/.dylib/.exe/.bin)

3.2.7 Dependencies & Supply Chain

๐ŸŸก Supply chain check:
โ€ข Dependency version range too wide (>1.0.0 not ^1.0.0)
โ€ข Dependencies from private/unknown sources
โ€ข Dependencies on deprecated packages
โ€ข Silent additional dependency downloads
โ€ข References other unvetted Skills
โ€ข Uses git submodule (may point to malicious repo)

3.2.8 Social Engineering

๐ŸŸก Social engineering check:
โ€ข Mimics popular Skill names (e.g., "github", "weather-ai")
โ€ข README overpromises ("one-click to do everything...")
โ€ข No source code, only compiled binaries
โ€ข Author has no history
โ€ข Downloads vs stars ratio suspicious (fake reviews)

4. Risk Classification

Risk Level Example Checks Action
๐ŸŸข LOW Text processing, weather, note formatting Basic review, OK to install
๐ŸŸก MEDIUM File I/O, browser control, API calls Full review + limited permissions
๐Ÿ”ด HIGH Credential access, Keychain, network requests Human approval + sandbox test
โ›” EXTREME Persistence, root access, keylogging, reverse shell Refuse

5. Trust Hierarchy

Source Review Level Recommendation
Official OpenClaw Skills Low (still review) Basic check
High-star Repo (1000+) Medium Standard check
Known Authors Medium Standard check
Unknown Sources High Full check
Requests credentials Extreme Refuse
Modifies system files Extreme Refuse

6. Automated Scanning Scripts

6.1 Quick Scan (quick-scan.sh)

#!/bin/bash
# Usage: ./quick-scan.sh /path/to/skill
# Output: Quick risk assessment report

SKILL_PATH=$1
echo "๐Ÿ” 360Guard Quick Scan: $SKILL_PATH"
echo "================================"

# Check dangerous functions
echo -e "\n๐Ÿ“ก Network request check:"
grep -r "curl\|wget\|fetch\|http\.\|https\.\|socket" "$SKILL_PATH" --include="*.sh" --include="*.js" --include="*.py" | head -5

# Check sensitive file access
echo -e "\n๐Ÿ”‘ Sensitive path check:"
grep -r "~/.ssh\|~/.aws\|~/.config\|/etc/hosts\|authorized_keys" "$SKILL_PATH" --include="*.sh" --include="*.js" --include="*.py"

# Check dangerous commands
echo -e "\nโš ๏ธ Dangerous command check:"
grep -r "eval\|exec\|shell=True\|base64 -d\|openssl" "$SKILL_PATH" --include="*.sh" --include="*.js" --include="*.py"

echo -e "\nโœ… Quick scan complete"

6.2 Full Scan (full-scan.sh)

#!/bin/bash
# Usage: ./full-scan.sh /path/to/skill
# Output: Complete security assessment report

SKILL_PATH=$1
REPORT="$SKILL_PATH/360guard-report.txt"

echo "๐Ÿ›ก๏ธ 360Guard Full Scan: $SKILL_PATH" | tee "$REPORT"
echo "========================================" | tee -a "$REPORT"

# 1. File structure check
echo -e "\n๐Ÿ“ File structure:" | tee -a "$REPORT"
find "$SKILL_PATH" -type f | head -20 | tee -a "$REPORT"

# 2. Dangerous function scan
echo -e "\nโš ๏ธ Dangerous function scan:" | tee -a "$REPORT"
for pattern in "eval(" "exec(" "shell=True" "base64" "subprocess" "importlib" "__import__" "pickle" "yaml.load" "xmlrpc" "socket.create_connection"; do
  result=$(grep -r "$pattern" "$SKILL_PATH" --include="*.sh" --include="*.js" --include="*.py" 2>/dev/null)
  if [ -n "$result" ]; then
    echo "  โŒ Found: $pattern" | tee -a "$REPORT"
    echo "$result" | head -3 | tee -a "$REPORT"
  fi
done

# 3. Sensitive path scan
echo -e "\n๐Ÿ”‘ Sensitive path scan:" | tee -a "$REPORT"
for pattern in "~/.ssh" "~/.aws" "~/.config" "/etc/hosts" "authorized_keys" "keychain" "credentials" ".env"; do
  result=$(grep -r "$pattern" "$SKILL_PATH" --include="*.sh" --include="*.js" --include="*.py" 2>/dev/null)
  if [ -n "$result" ]; then
    echo "  โš ๏ธ Warning: $pattern" | tee -a "$REPORT"
  fi
done

# 4. Network request scan
echo -e "\n๐ŸŒ Network request scan:" | tee -a "$REPORT"
grep -r "http://\|https://\|wget\|curl\|fetch" "$SKILL_PATH" --include="*.sh" --include="*.js" --include="*.py" | grep -v "^#" | head -10 | tee -a "$REPORT"

# 5. Persistence check
echo -e "\nโฐ Persistence check:" | tee -a "$REPORT"
for pattern in "cron" "systemd" "launchd" "login item" "startup" "autostart"; do
  result=$(grep -ri "$pattern" "$SKILL_PATH" --include="*.sh" --include="*.js" --include="*.py" 2>/dev/null)
  if [ -n "$result" ]; then
    echo "  ๐Ÿ”ด High risk: $pattern" | tee -a "$REPORT"
  fi
done

# 6. Dependency check
echo -e "\n๐Ÿ“ฆ Dependency check:" | tee -a "$REPORT"
if [ -f "$SKILL_PATH/package.json" ]; then
  cat "$SKILL_PATH/package.json" | grep -E "dependencies|devDependencies" -A 20 | tee -a "$REPORT"
fi
if [ -f "$SKILL_PATH/requirements.txt" ]; then
  cat "$SKILL_PATH/requirements.txt" | tee -a "$REPORT"
fi
if [ -f "$SKILL_PATH/package.yaml" ]; then
  cat "$SKILL_PATH/package.yaml" | tee -a "$REPORT"
fi

# 7. Binary file check
echo -e "\n๐Ÿ’พ Binary file check:" | tee -a "$REPORT"
find "$SKILL_PATH" -type f \( -name "*.so" -o -name "*.dylib" -o -name "*.exe" -o -name "*.bin" -o -name "*.dll" \) 2>/dev/null | tee -a "$REPORT"

echo -e "\n========================================" | tee -a "$REPORT"
echo "โœ… Full scan complete, report saved to: $REPORT"

6.3 Node.js Scanner (scanner.js)

#!/usr/bin/env node
/**
 * 360Guard Node.js Scanner
 * Usage: node scanner.js /path/to/skill
 */

const fs = require('fs');
const path = require('path');
const { execSync } = require('child_process');

const DANGER_PATTERNS = {
  CRITICAL: [
    { pattern: /eval\s*\(/, name: 'eval() execution' },
    { pattern: /exec\s*\(/, name: 'exec() execution' },
    { pattern: /shell\s*=\s*true/i, name: 'subprocess shell=True' },
    { pattern: /base64.*decode/i, name: 'base64 decode' },
    { pattern: /pickle\.load/i, name: 'pickle deserialization' },
    { pattern: /yaml\.load/i, name: 'yaml deserialization' },
    { pattern: /__import__\s*\(/, name: 'dynamic import' },
    { pattern: /importlib\.import_module/i, name: 'dynamic module load' },
    { pattern: /xmlrpc/i, name: 'XML-RPC remote call' },
    { pattern: /reverse.*shell|nc\s+-e|bash\s+-i/i, name: 'reverse shell' }
  ],
  HIGH: [
    { pattern: /curl\s+/, name: 'curl request' },
    { pattern: /wget\s+/, name: 'wget download' },
    { pattern: /fetch\s*\(/, name: 'fetch request' },
    { pattern: /https?:\/\/\d{1,3}\.\d{1,3}/, name: 'direct IP connection' },
    { pattern: /process\.env/i, name: 'environment variable access' },
    { pattern: /child_process/, name: 'subprocess execution' }
  ],
  MEDIUM: [
    { pattern: /\/\.ssh\//, name: 'SSH directory access' },
    { pattern: /\/\.aws\//, name: 'AWS directory access' },
    { pattern: /keychain/i, name: 'Keychain access' },
    { pattern: /credentials|token|secret/i, name: 'credential related' },
    { pattern: /cron|systemd|launchd/i, name: 'persistence mechanism' }
  ]
};

function scanFile(filePath) {
  const results = { CRITICAL: [], HIGH: [], MEDIUM: [] };
  
  try {
    const content = fs.readFileSync(filePath, 'utf8');
    
    for (const [level, patterns] of Object.entries(DANGER_PATTERNS)) {
      for (const { pattern, name } of patterns) {
        if (pattern.test(content)) {
          results[level].push({ file: filePath, issue: name });
        }
      }
    }
  } catch (e) {
    // Skip unreadable files
  }
  
  return results;
}

function scanDirectory(dirPath) {
  const allResults = { CRITICAL: [], HIGH: [], MEDIUM: [] };
  
  function walk(dir) {
    const files = fs.readdirSync(dir);
    for (const file of files) {
      const fullPath = path.join(dir, file);
      const stat = fs.statSync(fullPath);
      
      if (stat.isDirectory() && !file.startsWith('.')) {
        walk(fullPath);
      } else if (stat.isFile()) {
        const ext = path.extname(file);
        if (['.js', '.ts', '.py', '.sh', '.bash'].includes(ext)) {
          const results = scanFile(fullPath);
          for (const level of Object.keys(allResults)) {
            allResults[level].push(...results[level]);
          }
        }
      }
    }
  }
  
  walk(dirPath);
  return allResults;
}

function generateReport(skillPath, results) {
  console.log('\n๐Ÿ›ก๏ธ 360Guard Security Scan Report');
  console.log('='.repeat(50));
  console.log(`๐Ÿ“‚ Scan path: ${skillPath}`);
  console.log('');
  
  const riskOrder = ['CRITICAL', 'HIGH', 'MEDIUM'];
  const emoji = { CRITICAL: '๐Ÿ”ด', HIGH: 'โš ๏ธ', MEDIUM: '๐ŸŸก' };
  
  for (const level of riskOrder) {
    if (results[level].length > 0) {
      console.log(`\n${emoji[level]} ${level} risk (${results[level].length} items):`);
      for (const item of results[level]) {
        console.log(`  โ€ข ${item.issue}`);
        console.log(`    File: ${item.file}`);
      }
    }
  }
  
  console.log('\n' + '='.repeat(50));
  
  if (results.CRITICAL.length > 0) {
    console.log('๐Ÿ”ด Conclusion: Critical risks found, NOT recommended to install');
    process.exit(1);
  } else if (results.HIGH.length > 0) {
    console.log('โš ๏ธ Conclusion: High risk found, human approval required');
    process.exit(2);
  } else if (results.MEDIUM.length > 0) {
    console.log('๐ŸŸก Conclusion: Medium risk found, please review carefully');
    process.exit(0);
  } else {
    console.log('โœ… Conclusion: No obvious risks found');
    process.exit(0);
  }
}

// Main
const skillPath = process.argv[2] || '.';
if (!fs.existsSync(skillPath)) {
  console.error('โŒ Path does not exist:', skillPath);
  process.exit(1);
}

const stat = fs.statSync(skillPath);
const results = stat.isDirectory() ? scanDirectory(skillPath) : scanFile(skillPath);

generateReport(skillPath, results);

7. Output Format

After vetting, produce this format:

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘              ๐Ÿ›ก๏ธ 360Guard Security Review Report           โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘ Skill Name: [name]                                        โ•‘
โ•‘ Source: [ClawHub / GitHub / other]                        โ•‘
โ•‘ Author: [username]                                         โ•‘
โ•‘ Version: [version]                                         โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘ ๐Ÿ“Š Scan Statistics                                        โ•‘
โ•‘   โ€ข File count: [count]                                    โ•‘
โ•‘   โ€ข Lines of code: [count]                                 โ•‘
โ•‘   โ€ข Dependencies: [count]                                  โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘ ๐Ÿšจ Issues Found                                           โ•‘
โ•‘   ๐Ÿ”ด Critical: [count]                                     โ•‘
โ•‘   โš ๏ธ  High: [count]                                        โ•‘
โ•‘   ๐ŸŸก Medium: [count]                                       โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘ ๐Ÿ“‹ Detailed Issue List                                    โ•‘
โ•‘   [List each issue with file location, type, risk level]  โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘ ๐Ÿ’พ Permissions Required                                    โ•‘
โ•‘   โ€ข File read: [list or "None"]                            โ•‘
โ•‘   โ€ข File write: [list or "None"]                           โ•‘
โ•‘   โ€ข Network: [list or "None"]                              โ•‘
โ•‘   โ€ข Commands: [list or "None"]                             โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘ ๐ŸŽฏ Risk Level: [๐ŸŸข LOW / ๐ŸŸก MEDIUM / ๐Ÿ”ด HIGH / โ›” EXTREME] โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘ โš–๏ธ  Final Verdict                                          โ•‘
โ•‘   [โœ… Safe to install / โš ๏ธ Install with caution / โŒ Do not install] โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘ ๐Ÿ“ Notes                                                  โ•‘
โ•‘   [Any other observations and recommendations]            โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

8. Quick Commands

Vet ClawHub Skill

# Method 1: Download and scan
wget -O skill.zip "https://clawhub.ai/api/download/SKILL_NAME"
unzip skill.zip
node ~/.npm-global/lib/node_modules/openclaw/skills/360guard/scripts/scanner.cjs ./SKILL_NAME
rm -rf skill.zip SKILL_NAME

# Method 2: GitHub repo scan
curl -s "https://api.github.com/repos/OWNER/REPO" | jq '{stars: .stargazers_count, updated: .updated_at}'
git clone https://github.com/OWNER/REPO
node ~/.npm-global/lib/node_modules/openclaw/skills/360guard/scripts/scanner.cjs ./REPO

Quick Vet Commands

# Check repo stats
curl -s "https://api.github.com/repos/OWNER/REPO" | jq '{stars, forks, updated, language}'

# List all files
curl -s "https://api.github.com/repos/OWNER/REPO/contents/" | jq '.[].name'

# Get SKILL.md
curl -s "https://raw.githubusercontent.com/OWNER/REPO/main/SKILL.md"

9. Remember

  • โŒ No Skill is worth compromising security
  • โ“ When in doubt, don't install
  • ๐Ÿง‘โ€๐Ÿฆฐ High-risk decisions: ask your human
  • ๐Ÿ“ Document your vetting for future reference
  • ๐Ÿ”„ Periodically re-vet installed Skills

๐Ÿ›ก๏ธ 360Guard โ€” 360-degree security for your Agent

Install via CLI
npx skills add https://github.com/LeoYeAI/openclaw-master-skills --skill 360guard
Repository Details
star Stars 2,048
call_split Forks 310
navigation Branch main
article Path SKILL.md
More from Creator