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)