openclaw-ops — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited openclaw-ops (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
One skill for all OpenClaw operations: config, troubleshoot, sessions, nodes.
~/.openclaw/openclaw.json (JSON5)~/.openclaw/cron/jobs.json/tmp/openclaw/openclaw-YYYY-MM-DD.log~/.openclaw/agents/main/sessions/Always cat ~/.openclaw/openclaw.json before editing.
Edit agents.list[0].model.primary:
"model": { "primary": "kimi/kimi-k2.5", "fallbacks": ["anthropic/claude-opus-4-6"] }"models": { "providers": { "new-provider": {
"baseUrl": "https://api.example.com/v1",
"api": "openai-completions", // or anthropic-messages | google-generative-ai
"apiKey": "${NEW_API_KEY}",
"models": [{ "id": "model-id", "name": "Name", "contextWindow": 128000, "maxTokens": 8192 }]
}}}Use /model kimi/kimi-k2.5 in chat, or session_status(model="anthropic/claude-opus-4-6").
openclaw cron list # List all
openclaw cron add --name "Brief" --cron "0 7 * * *" \
--tz "Asia/Kuala_Lumpur" --session isolated \
--message "Morning summary" --announce \
--channel telegram --to "267378578" # Recurring
openclaw cron add --name "Remind" --at "20m" \
--session main --system-event "Check deploy" \
--wake now --delete-after-run # One-shot
openclaw cron edit <jobId> --message "New prompt" # Edit
openclaw cron run <jobId> # Force run
openclaw cron runs --id <jobId> --limit 5 # History| Session type | Use for |
|---|---|
main | Uses heartbeat context, shared session |
isolated | Fresh per run, delivery supported |
"telegram": { "enabled": true, "botToken": "...", "dmPolicy": "pairing", "streaming": "partial" }"discord": { "enabled": true, "token": "${DISCORD_BOT_TOKEN}" }
"whatsapp": { "dmPolicy": "pairing", "allowFrom": ["+60..."] }
"signal": { "enabled": true, "allowFrom": ["+60..."] }| Profile | Scope |
|---|---|
minimal | session_status only |
coding | fs + runtime + sessions + memory |
messaging | messaging + sessions |
full | Everything (current) |
"agents": { "list": [
{ "id": "main", "default": true, ... },
{ "id": "public", "tools": { "profile": "messaging", "deny": ["exec","browser"] } }
]},
"bindings": [{ "agentId": "public", "match": { "channel": "telegram", "peer": { "kind": "group" } } }]sessions_list() # All sessions
sessions_list(activeMinutes=60) # Recent
sessions_history(sessionKey="<key>", limit=20) # History
sessions_send(sessionKey="<key>", message="...") # Send to sessionsessions_spawn(task="Research X", mode="run") # One-shot
sessions_spawn(task="Fix bug", runtime="acp", thread=true) # Coding agentsubagents(action="list") # List running
subagents(action="steer", target="<id>", message="Focus on API")
subagents(action="kill", target="<id>") # Kill stucknodes(action="status") # List devices
nodes(action="camera_snap", node="<name>", facing="back") # Photo
nodes(action="camera_clip", node="<name>", durationMs=10000) # Video
nodes(action="location_get", node="<name>") # GPS
nodes(action="notifications_list", node="<name>") # Notifications
nodes(action="screen_record", node="<name>", durationMs=10000) # Screen
nodes(action="notify", node="<name>", title="Alert", body="Done")
nodes(action="device_status", node="<name>") # Battery/storageDevice must be foregrounded for camera/screen. Max video: 60s.
openclaw status # Gateway health
openclaw doctor --fix # Auto-fix common issues
tail -50 /tmp/openclaw/openclaw-$(date +%Y-%m-%d).log | grep -i "error\|warn"| Symptom | Fix |
|---|---|
| No messages | Check channels.telegram.enabled, bot token |
| No reply | Model provider down → check API key, fallback chain |
| Slow | Check model latency in logs |
| Cron silent | openclaw cron list, check timezone |
| Memory empty | Check memory/*.md exists |
| "Model not found" | Check models.providers in config |
| Sub-agent stuck | subagents(action="kill", target="<id>") |
openclaw gateway restart # Drops active sessionscat ~/.openclaw/openclaw.jsonedit tool with exact old/new)openclaw gateway restart if neededopenclaw status~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.