OpenClaw CLI
Complete reference for openclaw command-line interface operations.
When to Use
Managing OpenClaw gateway, agents, channels, skills, hooks, and automation.
Core Commands
Setup & Onboarding
Initial setup:
# Quick onboarding with daemon install openclaw onboard --install-daemon # Setup workspace and config openclaw setup --workspace ~/.openclaw/workspace # Interactive configuration openclaw configure
Health check:
openclaw doctor
Gateway Management
Run gateway:
# Interactive mode openclaw gateway # With specific port openclaw gateway --port 18789 # With tailscale openclaw gateway --tailscale serve
Gateway service:
# Install as system service openclaw gateway install # Control service openclaw gateway start openclaw gateway stop openclaw gateway restart openclaw gateway status
Gateway health:
openclaw status openclaw status --deep # Probe channels openclaw health
Agent Management
List agents:
openclaw agents list openclaw agents list --bindings # Show routing
Add agent:
# Interactive wizard openclaw agents add <name> # Non-interactive openclaw agents add dev \ --workspace ~/.openclaw/workspace-dev \ --model claude-sonnet-4.5 \ --non-interactive
Delete agent:
openclaw agents delete <id>
Set identity:
# From IDENTITY.md openclaw agents set-identity --agent main --from-identity # Explicit values openclaw agents set-identity --agent main \ --name "MyAgent" \ --emoji "🤖" \ --avatar avatars/bot.png
Skills Management
List skills:
openclaw skills list openclaw skills list --eligible # Only ready skills openclaw skills list --json # JSON output
Skill info:
openclaw skills info <skill-name>
Check eligibility:
openclaw skills check
Hooks Management
List hooks:
openclaw hooks list openclaw hooks list --eligible openclaw hooks list --verbose # Show missing requirements
Hook info:
openclaw hooks info <hook-name>
Enable/disable:
openclaw hooks enable session-memory openclaw hooks disable command-logger
Install hooks:
# From npm openclaw hooks install @openclaw/my-hooks # Local directory openclaw hooks install ./my-hooks # Link (development) openclaw hooks install -l ./my-hooks
Update hooks:
openclaw hooks update <id> openclaw hooks update --all
Channel Management
List channels:
openclaw channels list
Channel status:
openclaw channels status openclaw channels status --probe
Add channel:
# Interactive openclaw channels add # Telegram bot openclaw channels add --channel telegram \ --account alerts \ --name "Alerts Bot" \ --token $TELEGRAM_BOT_TOKEN # Discord openclaw channels add --channel discord \ --account work \ --token $DISCORD_BOT_TOKEN
Remove channel:
openclaw channels remove --channel telegram --account alerts openclaw channels remove --channel discord --account work --delete
WhatsApp login:
openclaw channels login --channel whatsapp
Channel logs:
openclaw channels logs openclaw channels logs --channel whatsapp --lines 100
Models & Authentication
Status:
openclaw models status openclaw models status --probe # Live check openclaw models status --probe-provider anthropic
List models:
openclaw models list openclaw models list --all openclaw models list --provider anthropic
Set default:
openclaw models set claude-sonnet-4.5 openclaw models set-image claude-sonnet-4.5
Auth setup:
# Anthropic (recommended) claude setup-token openclaw models auth setup-token --provider anthropic # Or paste token openclaw models auth paste-token --provider anthropic
Fallbacks:
openclaw models fallbacks list openclaw models fallbacks add claude-opus-4.6 openclaw models fallbacks remove claude-haiku-4.5 openclaw models fallbacks clear
Scan for models:
openclaw models scan openclaw models scan --set-default
Messaging
Send message:
openclaw message send \ --target +15555550123 \ --message "Hello from OpenClaw" # Discord channel openclaw message send \ --channel discord \ --target channel:123456 \ --message "Deployment complete"
Send poll:
openclaw message poll \ --channel discord \ --target channel:123 \ --poll-question "Lunch?" \ --poll-option "Pizza" \ --poll-option "Sushi"
Other message operations:
openclaw message read --target +15555550123 openclaw message react --target <id> --emoji "👍" openclaw message edit --target <id> --message "Updated" openclaw message delete --target <id>
Browser Control
Status & control:
openclaw browser status openclaw browser start openclaw browser stop openclaw browser tabs
Navigate:
openclaw browser open https://example.com openclaw browser navigate https://example.com --target-id <id>
Interact:
openclaw browser click "#submit-button" openclaw browser type "#email" "user@example.com" openclaw browser press Enter
Capture:
openclaw browser screenshot openclaw browser screenshot --full-page openclaw browser snapshot --format ai
Profiles:
openclaw browser profiles openclaw browser create-profile --name dev openclaw browser delete-profile --name old
Nodes & Devices
List nodes:
openclaw nodes list openclaw nodes status --connected
Node operations:
# Describe node openclaw nodes describe --node <id> # Run command on node openclaw nodes run --node <id> --cwd /path -- ls -la # Notify (macOS) openclaw nodes notify --node <id> \ --title "Build Complete" \ --body "Success" \ --sound default
Camera:
openclaw nodes camera list --node <id> openclaw nodes camera snap --node <id> --facing front openclaw nodes camera clip --node <id> --duration 10s
Canvas:
openclaw nodes canvas snapshot --node <id> openclaw nodes canvas present --node <id> --target index.html openclaw nodes canvas hide --node <id>
Screen recording:
openclaw nodes screen record --node <id> --duration 30s
System Commands
System event:
openclaw system event --text "Deployment complete" --mode now
Heartbeat:
openclaw system heartbeat last openclaw system heartbeat enable openclaw system heartbeat disable
Presence:
openclaw system presence
Cron Jobs
List jobs:
openclaw cron list openclaw cron list --all openclaw cron status
Add job:
# System event every hour openclaw cron add \ --name "hourly-check" \ --every "1h" \ --system-event "Hourly check" # Message at specific time openclaw cron add \ --name "morning-reminder" \ --at "09:00" \ --message "Good morning!"
Manage jobs:
openclaw cron enable <id> openclaw cron disable <id> openclaw cron rm <id> openclaw cron run <id>
Job runs:
openclaw cron runs --id <id> --limit 10
Configuration
Get/set config:
# Get value openclaw config get agents.defaults.model.primary # Set value openclaw config set agents.defaults.model.primary "claude-sonnet-4.5" # Unset value openclaw config unset some.config.path
Memory Operations
Memory status:
openclaw memory status
Index memory:
openclaw memory index
Search memory:
openclaw memory search "GraphQL implementation patterns"
Logs
Tail logs:
openclaw logs openclaw logs --follow openclaw logs --limit 200 openclaw logs --json
Sandbox
List sandboxes:
openclaw sandbox list
Recreate sandbox:
openclaw sandbox recreate
Security
Security audit:
openclaw security audit openclaw security audit --deep openclaw security audit --fix
Plugins
List plugins:
openclaw plugins list openclaw plugins list --json
Plugin info:
openclaw plugins info <plugin-id>
Install plugin:
openclaw plugins install <path-or-spec>
Enable/disable:
openclaw plugins enable <id> openclaw plugins disable <id>
Plugin health:
openclaw plugins doctor
Update & Maintenance
Update OpenClaw:
openclaw update
Reset config:
openclaw reset --scope config openclaw reset --scope config+creds+sessions openclaw reset --scope full
Uninstall:
openclaw uninstall --service openclaw uninstall --state openclaw uninstall --workspace openclaw uninstall --all
Global Flags
Available everywhere:
--dev # Use ~/.openclaw-dev for isolation --profile <name> # Use ~/.openclaw-<name> --no-color # Disable ANSI colors --json # Machine-readable output -V, --version # Show version
Common Workflows
First-Time Setup
# 1. Onboard with daemon openclaw onboard --install-daemon # 2. Pair WhatsApp (or other channel) openclaw channels login # 3. Start gateway openclaw gateway # 4. Test with message openclaw message send --target +1234567890 --message "Test"
Multi-Agent Setup
# 1. Add agent
openclaw agents add work --workspace ~/.openclaw/workspace-work
# 2. Set identity
openclaw agents set-identity --agent work --from-identity
# 3. Add binding (in openclaw.json)
# bindings: [{ agentId: "work", match: { channel: "discord" } }]
# 4. List to verify
openclaw agents list --bindings
Hook Automation
# 1. Enable session memory hook openclaw hooks enable session-memory # 2. Enable command logger openclaw hooks enable command-logger # 3. Verify openclaw hooks check # 4. Restart gateway openclaw gateway restart
Channel Setup
# 1. Add Telegram bot openclaw channels add --channel telegram \ --account alerts \ --token $TELEGRAM_BOT_TOKEN # 2. Verify openclaw channels status # 3. Send test message openclaw message send --channel telegram \ --target <chat-id> \ --message "Bot online"
Model Configuration
# 1. Setup auth claude setup-token # 2. Set default model openclaw models set claude-sonnet-4.5 # 3. Add fallbacks openclaw models fallbacks add claude-opus-4.6 openclaw models fallbacks add claude-haiku-4.5 # 4. Verify openclaw models status
Debugging
Check gateway status:
openclaw status --deep openclaw doctor openclaw health
View logs:
openclaw logs --follow openclaw channels logs --lines 200
Test channel:
openclaw channels status --probe
Check skills/hooks:
openclaw skills check openclaw hooks check openclaw plugins doctor
Tips
- •Use
--jsonfor scripting - All commands support JSON output - •Profile isolation - Use
--profilefor testing without affecting main config - •Doctor fixes - Run
openclaw doctorregularly to catch issues - •Logs location -
~/.openclaw/logs/for file logs - •Config location -
~/.openclaw/openclaw.json - •Workspace -
~/.openclaw/workspace(or custom path)