
Openclaw Config
Diagnose OpenClaw gateway health and edit channels, agents, plugins, credentials, and cron settings in ~/.openclaw without guessing which JSON block broke.
Overview
OpenClaw Config is an agent skill most often used in Operate (also Build agent-tooling) that diagnoses OpenClaw gateway and JSON config problems with copy-paste health checks.
Install
npx skills add https://github.com/adisinghstudent/easyclaw --skill openclaw-configWhat is this skill?
- Copy-paste quick health check: gateway process count, JSON validity, channels, plugins, credentials, cron last status
- jq-based inspection of dmPolicy, enabled flags, and plugin entries
- Credential spot-checks for WhatsApp keys, Telegram token.txt, and Bird cookies.json
- Cron jobs.json reporting with enabled flag, lastStatus, and lastError per job
- Versioned operations runbook (v3.0.0) framed as tested diagnose-and-fix commands
- Quick health check block spans 6 sections: gateway, config JSON, channels, plugins, creds, cron
- Skill version 3.0.0 in frontmatter
Adoption & trust: 2.7k installs on skills.sh; 12 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your OpenClaw bot misroutes messages, fails plugins, or drops cron jobs and you cannot quickly tell whether the gateway, config file, or credentials is broken.
Who is it for?
Solo builders self-hosting OpenClaw with multiple channels and cron who need a repeatable incident checklist on macOS/Linux shells.
Skip if: Teams not using OpenClaw, or greenfield MCP-only agents with no ~/.openclaw layout and gateway process.
When should I use this skill?
Manage OpenClaw bot configuration or diagnose channels, agents, security, and autopilot when anything seems wrong—run Quick Health Check first.
What do I get? / Deliverables
You get a structured health report and targeted config edits so channels, plugins, credentials, and scheduled jobs return to a known-good state.
- Health-check transcript identifying broken JSON, creds, or cron
- Updated channel, plugin, or security settings in openclaw.json
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Day-two bot reliability—gateway process, config JSON, credentials, and cron—is Operate infra work even though initial channel wiring started in Build. The runbook centers on process checks, valid openclaw.json, credential paths, and job state—production plumbing for a running agent gateway, not feature coding.
Where it fits
After wiring Telegram and WhatsApp channels, you validate plugin entries and dmPolicy before exposing the bot to users.
Cron jobs report lastError and you trace whether credentials or JSON corruption caused the failure.
Pre-launch you confirm Bird cookies and Telegram token.txt exist so autopilot jobs do not fail on day one.
How it compares
Ops runbook for an OpenClaw deployment—not a generic Claude Code settings skill or cloud PaaS deploy guide.
Common Questions / FAQ
Who is openclaw-config for?
Indie operators running OpenClaw gateways who manage channels, plugins, credentials, and cron jobs from local JSON and shell tools.
When should I use openclaw-config?
In Operate infra when DMs fail or cron errors appear; during Build agent-tooling when first enabling channels and plugins; during Ship launch prep when validating credentials before going live.
Is openclaw-config safe to install?
Commands read local config and credential paths—treat the skill as high filesystem/secrets exposure; review the Security Audits panel on this Prism page before enabling in a shared agent.
SKILL.md
READMESKILL.md - Openclaw Config
# OpenClaw Operations Runbook Diagnose and fix real problems. Every command here is tested and works. --- ## Quick Health Check Run this first when anything seems wrong. Copy-paste the whole block: ```bash echo "=== GATEWAY ===" && \ ps aux | grep -c "[o]penclaw" && \ echo "=== CONFIG JSON ===" && \ python3 -m json.tool ~/.openclaw/openclaw.json > /dev/null 2>&1 && echo "JSON: OK" || echo "JSON: BROKEN" && \ echo "=== CHANNELS ===" && \ cat ~/.openclaw/openclaw.json | jq -r '.channels | to_entries[] | "\(.key): policy=\(.value.dmPolicy // "n/a") enabled=\(.value.enabled // "implicit")"' && \ echo "=== PLUGINS ===" && \ cat ~/.openclaw/openclaw.json | jq -r '.plugins.entries | to_entries[] | "\(.key): \(.value.enabled)"' && \ echo "=== CREDS ===" && \ ls ~/.openclaw/credentials/whatsapp/default/ 2>/dev/null | wc -l | xargs -I{} echo "WhatsApp keys: {} files" && \ for d in ~/.openclaw/credentials/telegram/*/; do bot=$(basename "$d"); [ -f "$d/token.txt" ] && echo "Telegram $bot: OK" || echo "Telegram $bot: MISSING"; done && \ [ -f ~/.openclaw/credentials/bird/cookies.json ] && echo "Bird cookies: OK" || echo "Bird cookies: MISSING" && \ echo "=== CRON ===" && \ cat ~/.openclaw/cron/jobs.json | jq -r '.jobs[] | "\(.name): enabled=\(.enabled) status=\(.state.lastStatus // "never") \(.state.lastError // "")"' && \ echo "=== RECENT ERRORS ===" && \ tail -10 ~/.openclaw/logs/gateway.err.log 2>/dev/null && \ echo "=== MEMORY DB ===" && \ sqlite3 ~/.openclaw/memory/main.sqlite "SELECT COUNT(*) || ' chunks, ' || (SELECT COUNT(*) FROM files) || ' files indexed' FROM chunks;" 2>/dev/null ``` --- ## File Map ``` ~/.openclaw/ ├── openclaw.json # MAIN CONFIG — channels, auth, gateway, plugins, skills ├── openclaw.json.bak* # Auto-backups (.bak, .bak.1, .bak.2 ...) ├── exec-approvals.json # Exec approval socket config │ ├── agents/main/ │ ├── agent/auth-profiles.json # Anthropic auth tokens │ └── sessions/ │ ├── sessions.json # SESSION INDEX — keys are like agent:main:whatsapp:+1234 │ └── *.jsonl # Session transcripts (one JSON per line) │ ├── workspace/ # Agent workspace (git-tracked) │ ├── SOUL.md # Personality, writing style, tone rules │ ├── IDENTITY.md # Name, creature type, vibe │ ├── USER.md # Owner context and preferences │ ├── AGENTS.md # Session behavior, memory rules, safety │ ├── BOOT.md # Boot instructions (autopilot notification protocol) │ ├── HEARTBEAT.md # Periodic task checklist (empty = skip heartbeat) │ ├── MEMORY.md # Curated long-term memory (main session only) │ ├── TOOLS.md # Contacts, SSH hosts, device nicknames │ ├── memory/ # Daily logs: YYYY-MM-DD.md, topic-chat.md │ └── skills/ # Workspace-level skills │ ├── memory/main.sqlite # Vector memory DB (Gemini embeddings, FTS5 search) │ ├── logs/ │ ├── gateway.log # Runtime: startup, channel init, config reload, shutdown │ ├── gateway.err.log # Errors: connection drops, API failures, timeouts │ └── commands.log # Command execution log │ ├── cron/ │ ├── jobs.json # Job definitions (schedule, payload, delivery target) │ └── runs/ # Per-job run logs: {job-uuid}.jsonl │ ├── credentials/ │ ├── whatsapp/default/ # Baileys session: ~1400 app-state-sync-key-*.json files │ ├── telegram/{botname}/token.txt # Bot tokens (one per bot account) │ └── bird/cookies.json # X/Twitter auth cookies │ ├── extensions/{name}/ # Custom plugins (TypeScript) │ ├── op