ArifOS openclaw-ops
Complete OpenClaw operations skill: configure models/providers/channels/tools/agents/cron, manage sessions and sub-agents, control paired nodes (camera/location/notifications), and troubleshoot gateway issues. Use when: (1) changing AI models or providers, (2) managing cron jobs, (3) configuring channels (Telegram/Discord/WhatsApp), (4) troubleshooting gateway/model/channel failures, (5) managing sessions or sub-agents, (6) controlling paired mobile devices, (7) any 'fix yourself', 'change settings', 'what's running', 'restart', 'add model', 'phone camera', 'send notification' request.
install
source · Clone the upstream repo
git clone https://github.com/ariffazil/arifOS
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ariffazil/arifOS "$T" && mkdir -p ~/.claude/skills && cp -r "$T/archive/WORKSPACE/skills/openclaw-ops" ~/.claude/skills/ariffazil-arifos-openclaw-ops && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ariffazil/arifOS "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/archive/WORKSPACE/skills/openclaw-ops" ~/.openclaw/skills/ariffazil-arifos-openclaw-ops && rm -rf "$T"
manifest:
archive/WORKSPACE/skills/openclaw-ops/SKILL.mdsource content
OpenClaw Ops — Self-Management Skill
One skill for all OpenClaw operations: config, troubleshoot, sessions, nodes.
Config Location
- Config:
(JSON5)~/.openclaw/openclaw.json - Cron:
~/.openclaw/cron/jobs.json - Logs:
/tmp/openclaw/openclaw-YYYY-MM-DD.log - Sessions:
~/.openclaw/agents/main/sessions/
Always
cat ~/.openclaw/openclaw.json before editing.
1. Models & Providers
Switch primary model
Edit
agents.list[0].model.primary:
"model": { "primary": "kimi/kimi-k2.5", "fallbacks": ["anthropic/claude-opus-4-6"] }
Add provider
"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 }] }}}
Quick model switch (no restart)
Use
/model kimi/kimi-k2.5 in chat, or session_status(model="anthropic/claude-opus-4-6").
2. Cron Jobs
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 |
|---|---|
| Uses heartbeat context, shared session |
| Fresh per run, delivery supported |
3. Channels
Telegram (current)
"telegram": { "enabled": true, "botToken": "...", "dmPolicy": "pairing", "streaming": "partial" }
Add Discord / WhatsApp / Signal
"discord": { "enabled": true, "token": "${DISCORD_BOT_TOKEN}" } "whatsapp": { "dmPolicy": "pairing", "allowFrom": ["+60..."] } "signal": { "enabled": true, "allowFrom": ["+60..."] }
4. Tools & Agents
| Profile | Scope |
|---|---|
| session_status only |
| fs + runtime + sessions + memory |
| messaging + sessions |
| Everything (current) |
Multi-agent
"agents": { "list": [ { "id": "main", "default": true, ... }, { "id": "public", "tools": { "profile": "messaging", "deny": ["exec","browser"] } } ]}, "bindings": [{ "agentId": "public", "match": { "channel": "telegram", "peer": { "kind": "group" } } }]
5. Sessions & Sub-Agents
sessions_list() # All sessions sessions_list(activeMinutes=60) # Recent sessions_history(sessionKey="<key>", limit=20) # History sessions_send(sessionKey="<key>", message="...") # Send to session
Spawn sub-agent
sessions_spawn(task="Research X", mode="run") # One-shot sessions_spawn(task="Fix bug", runtime="acp", thread=true) # Coding agent
Manage
subagents(action="list") # List running subagents(action="steer", target="<id>", message="Focus on API") subagents(action="kill", target="<id>") # Kill stuck
6. Paired Nodes (Android/iOS/macOS)
nodes(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/storage
Device must be foregrounded for camera/screen. Max video: 60s.
7. Troubleshooting
Quick check
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"
By symptom
| Symptom | Fix |
|---|---|
| No messages | Check , bot token |
| No reply | Model provider down → check API key, fallback chain |
| Slow | Check model latency in logs |
| Cron silent | , check timezone |
| Memory empty | Check exists |
| "Model not found" | Check in config |
| Sub-agent stuck | |
Nuclear (confirm first)
openclaw gateway restart # Drops active sessions
8. Config Edit Workflow (F1 Safe)
- Read current:
cat ~/.openclaw/openclaw.json - Show diff (use
tool with exact old/new)edit - 888_HOLD for: API key rotation, channel removal, agent deletion
- Apply edit
if neededopenclaw gateway restart- Verify:
openclaw status