Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
Security
HostGuard
Try itCheck whether OpenClaw is listening beyond localhost or running with elevated privileges, then offer a conservative lockdown fix. 检查OpenClaw安全配置。
What it does
Security assistant for OpenClaw. Check whether the local OpenClaw service is reachable beyond localhost and whether it is running with elevated privileges.
The skill document
ClawGuard
Security assistant for OpenClaw. Check whether the local OpenClaw service is reachable beyond localhost and whether it is running with elevated privileges.
Features
- 🔒 Network Binding Check: Detect if OpenClaw is exposed beyond localhost
- 🔐 Privilege Check: Detect if running with elevated privileges (root/admin)
- 📋 Configuration Analysis: Review host/port settings in env files
- 🔧 Conservative Fix: Offer safe lockdown recommendations
Trigger Conditions
- "Check OpenClaw security" / "检查OpenClaw安全"
- "Is OpenClaw exposed?" / "OpenClaw是否暴露?"
- "Check if running as root" / "检查是否以root运行"
- "Lockdown OpenClaw" / "锁定OpenClaw"
- "claw-guard"
Quick Check Commands
Check Network Binding (macOS/Linux)
# Find OpenClaw process and check binding
PORT=${OPENCLAW_PORT:-18789}
echo "Checking port $PORT..."
lsof -i :$PORT -P -n 2>/dev/null | grep LISTEN || echo "No listener on port $PORT"
Check Privilege
# Check if running as root
if [ "$(id -u)" = "0" ]; then
echo "⚠️ Running as root (elevated privileges)"
else
echo "✅ Running as user $(whoami) (uid=$(id -u))"
fi
Check Configuration
# Check env files for HOST setting
for f in .env.local .env.development .env.production .env; do
if [ -f "$f" ]; then
HOST_VAL=$(grep -E "^(OPENCLAW_HOST|HOST)=" "$f" 2>/dev/null | cut -d= -f2)
if [ -n "$HOST_VAL" ]; then
echo "Found HOST=$HOST_VAL in $f"
fi
fi
done
Full Security Check
# Run all checks
echo "🛡️ ClawGuard Security Check"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━"
# 1. Check user
echo ""
echo "🔐 User/Privilege:"
if [ "$(id -u)" = "0" ]; then
echo " ⚠️ Running as root"
else
echo " ✅ Running as $(whoami) (uid=$(id -u))"
fi
# 2. Check port
PORT=${OPENCLAW_PORT:-18789}
echo ""
echo "🔌 Network Binding (port $PORT):"
LISTEN_INFO=$(lsof -i :$PORT -P -n 2>/dev/null | grep LISTEN)
if [ -n "$LISTEN_INFO" ]; then
echo " $LISTEN_INFO"
if echo "$LISTEN_INFO" | grep -q "127.0.0.1"; then
echo " ✅ Loopback only (safe)"
elif echo "$LISTEN_INFO" | grep -q "0.0.0.0\|::"; then
echo " ⚠️ Listening on all interfaces (may be exposed)"
else
echo " ℹ️ Check binding manually"
fi
else
echo " ℹ️ No listener detected"
fi
# 3. Check config
echo ""
echo "📋 Configuration:"
for f in .env.local .env.development .env.production .env; do
if [ -f "$f" ]; then
HOST_VAL=$(grep -E "^(OPENCLAW_HOST|HOST)=" "$f" 2>/dev/null | cut -d= -f2)
if [ -n "$HOST_VAL" ]; then
echo " $f: HOST=$HOST_VAL"
fi
fi
done
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━"
What to Check
1. Configuration Check
Read local env files in this order:
.env.local.env.development.env.production.env
Look for:
OPENCLAW_HOSTorHOSTOPENCLAW_PORTorPORT- Default port:
18789
2. Network Binding Check
Use system commands to check if the port is listening:
lsof -i :{port}(macOS/Linux)netstat -tlnp | grep {port}(Linux)netstat -ano | findstr :{port}(Windows)
Classify the binding:
- loopback only (127.0.0.1, ::1) → ✅ Safe
- wildcard (0.0.0.0, ::) → ⚠️ May be exposed
- private network (10.x, 192.168.x) → ⚠️ Local network only
- public address → ❌ Potentially exposed
3. Privilege Check
Check if running with elevated privileges:
- Unix: Check if
uid == 0(root) - Windows: Check for Administrator group membership
Reporting Behavior
- Distinguish runtime listener state from config file state
- Do not claim definite public exposure based only on
0.0.0.0or:: - Use wording like "may be reachable beyond localhost" unless you have stronger evidence
- If no active listener is detected, say so explicitly
- Elevated privileges are a warning, not proof of compromise
Fix Behavior
- Never modify files without explicit user permission
- Only offer a fix when an existing
HOSTorOPENCLAW_HOSTentry is present - Before editing, create a
.bakbackup beside the file - Change only the host value to
127.0.0.1 - Preserve comments and quoting where possible
- If no existing host entry is found, explain that the active config source may be elsewhere
Example Report
🛡️ ClawGuard Security Report
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 Configuration
├─ Host: 127.0.0.1 (from .env)
├─ Port: 18789
└─ Status: ✅ Loopback only
🔌 Network Binding
├─ Listening: Yes
├─ Binding: 127.0.0.1:18789
└─ Assessment: ✅ Local only
🔐 Privileges
├─ User: bingo (uid=501)
└─ Status: ✅ Not elevated
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 Conclusion: ✅ Secure configuration
Error Handling
No env file found → "⚠️ No configuration file found"
Port not listening → "ℹ️ No active listener detected"
Permission denied → "❌ Cannot check privileges"
Command not available → "⚠️ Required tool not available"
Notes
- This is a read-only security assessment tool
- No files are modified without explicit permission
- All checks are conservative and non-invasive
- Use system tools (lsof, netstat, whoami) for detection
Related skills
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.
Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
Run Git operations — commits, branches, merges, rebases, conflict resolution, and recovery — with safety rules enforced.
Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.
More from tobewin
Browse all skillsGenerate editable PowerPoint decks from a JSON description with 11 slide layouts and 5 color themes.
Translate Word, PDF, Excel, PowerPoint, HTML, Markdown, and TXT files into another language while preserving the original layout.
Professional Excel spreadsheet generator. Use when user needs to create data tables, reports, charts, financial models, or any structured data in Excel forma...
中国新闻资讯聚合工具。Use when user wants to get latest news from Chinese sources. Supports multiple news sites (Sina, Sohu, NetEase, Tencent) via browser automation an...
Data analysis tool for Excel, CSV, Word, PDF, TXT, Markdown files. Use when user needs to analyze, summarize, or compare data from multiple files. Supports f...
Marketing plan generator with web research and Word output. Use when user needs to create marketing plans, promotional campaigns, social media strategies. Fe...