用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/johnalbertini14-glitch/openclaw-skills --skill arc-shield命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Use this skill to create a Polymarket wallet for your agent and trade on prediction markets. Browse markets, place bets, manage positions — all without exposing private keys.
ClawSec suite manager with embedded advisory-feed monitoring, cryptographic signature verification, approval-gated malicious-skill response, and guided setup for additional security skills.
Automated daily security audits for OpenClaw agents with email reporting. Runs deep audits and sends formatted reports.
正在显示 SKILL.md
基于 SOC 职业分类
| name | arc-shield |
| version | 1.0.0 |
| category | security |
| tags | ["security","sanitization","secrets","output-filter","privacy"] |
| requires | ["bash","python3"] |
| author | OpenClaw |
| description | Output sanitization for agent responses - prevents accidental secret leaks |
Output sanitization for agent responses. Scans ALL outbound messages for leaked secrets, tokens, keys, passwords, and PII before they leave the agent.
⚠️ This is NOT an input scanner — clawdefender already handles that. This is an OUTPUT filter for catching things your agent accidentally includes in its own responses.
Agents have access to sensitive data: 1Password vaults, environment variables, config files, wallet keys. Sometimes they accidentally include these in responses when:
Arc-shield catches these leaks before they reach Discord, Signal, X, or any external channel.
--strict mode)ops_*), GitHub (ghp_*), OpenAI (sk-*), Stripe, AWS, Bearer tokenspassword=... or passwd: ...~/.secrets/*, paths containing "password", "token", "key"ENV_VAR=secret_value exportscd ~/.openclaw/workspace/skills
git clone <arc-shield-repo> arc-shield
chmod +x arc-shield/scripts/*.sh arc-shield/scripts/*.py
Or download as a skill bundle.
# Scan agent output before sending
agent-response.txt | arc-shield.sh
# Block if critical secrets found (use before external messaging)
echo "Message text" | arc-shield.sh --strict || echo "BLOCKED"
# Redact secrets and return sanitized text
cat response.txt | arc-shield.sh --redact
# Full report
arc-shield.sh --report < conversation.log
# Python version with entropy detection
cat message.txt | output-guard.py --strict
Add to your messaging skill or wrapper:
#!/bin/bash
# send-message.sh wrapper
MESSAGE="$1"
CHANNEL="$2"
# Sanitize output
SANITIZED=$(echo "$MESSAGE" | arc-shield.sh --strict --redact)
EXIT_CODE=$?
if [[ $EXIT_CODE -eq 1 ]]; then
echo "ERROR: Message contains critical secrets and was blocked." >&2
exit 1
fi
# Send sanitized message
openclaw message send --channel "$CHANNEL" "$SANITIZED"
Before any external message:
# Generate response
RESPONSE=$(agent-generate-response)
# Sanitize
CLEAN=$(echo "$RESPONSE" | arc-shield.sh --redact)
# Send
signal send "$CLEAN"
cd skills/arc-shield/tests
./run-tests.sh
Includes test cases for:
Patterns are defined in config/patterns.conf:
CRITICAL|GitHub PAT|ghp_[a-zA-Z0-9]{36,}
CRITICAL|OpenAI Key|sk-[a-zA-Z0-9]{20,}
WARN|Secret Path|~\/\.secrets\/[^\s]*
Edit to add custom patterns or adjust severity levels.
| Mode | Behavior | Exit Code | Use Case |
|---|---|---|---|
| Default | Pass through + warnings to stderr | 0 | Development, logging |
--strict | Block on CRITICAL findings | 1 if critical | Production outbound messages |
--redact | Replace secrets with [REDACTED:TYPE] | 0 | Safe logging, auditing |
--report | Analysis only, no pass-through | 0 | Auditing conversations |
The Python version (output-guard.py) includes Shannon entropy analysis to catch secrets that don't match regex patterns:
# Detects high-entropy strings like:
kJ8nM2pQ5rT9vWxY3zA6bC4dE7fG1hI0 # Novel API key format
Zm9vOmJhcg== # Base64 credentials
Threshold: 4.5 bits (configurable with --entropy-threshold)
Fast enough to run on every outbound message without noticeable delay.
From our own agent sessions:
# 1Password token
"ops_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
# Instagram password in debug output
"instagram login: user@example.com / MyInsT@Gr4mP4ss!"
# Wallet mnemonic in file listing
"cat ~/.secrets/wallet-recovery-phrase.txt
abandon ability able about above absent absorb abstract..."
# GitHub PAT in git config
"[remote "origin"]
url = https://ghp_abc123:@github.com/user/repo"
All blocked by arc-shield before reaching external channels.
--strict for external messages (Discord, Signal, X, email)--redact for logs you want to review latermessage | arc-shield.sh --strict | output-guard.py --strict
Use in combination with agent instructions and careful prompt engineering.
Full OpenClaw agent integration:
# In your agent's message wrapper
send_external_message() {
local message="$1"
local channel="$2"
# Pre-flight sanitization
if ! echo "$message" | arc-shield.sh --strict > /dev/null 2>&1; then
echo "ERROR: Message blocked by arc-shield (contains secrets)" >&2
return 1
fi
# Double-check with entropy detection
if ! echo "$message" | output-guard.py --strict > /dev/null 2>&1; then
echo "ERROR: High-entropy secret detected" >&2
return 1
fi
# Safe to send
openclaw message send --channel "$channel" "$message"
}
False positives on normal text:
output-guard.py --entropy-threshold 5.0config/patterns.conf to refine regex patternsSecrets not detected:
--report to see what's being scannedtests/run-tests.sh using your samplePerformance issues:
head -c 10000arc-shield.sh --report &Add new patterns to config/patterns.conf following the format:
SEVERITY|Category Name|regex_pattern
Test with tests/run-tests.sh before deploying.
MIT — use freely, protect your secrets.
Remember: Arc-shield is your safety net, not your strategy. Train your agent to never include secrets in responses. This tool catches mistakes, not malice.