openclaw agent runs a single agent turn from the command line without needing
an inbound chat message. Use it for scripted workflows, testing, and
programmatic delivery.
Quick start
This sends the message through the Gateway and prints the reply.
# Target a phone number (derives session key)
openclaw agent --to +15555550123 --message "Status update"
# Reuse an existing session
openclaw agent --session-id abc123 --message "Continue the task"
```
# Deliver to Slack
openclaw agent --agent ops --message "Generate report" \
--deliver --reply-channel slack --reply-to "#reports"
```
Flags
| Flag | Description |
|---|---|
--message \<text\> | Message to send (required) |
--to \<dest\> | Derive session key from a target (phone, chat id) |
--agent \<id\> | Target a configured agent (uses its main session) |
--session-id \<id\> | Reuse an existing session by id |
--local | Force local embedded runtime (skip Gateway) |
--deliver | Send the reply to a chat channel |
--channel \<name\> | Delivery channel (whatsapp, telegram, discord, slack, etc.) |
--reply-to \<target\> | Delivery target override |
--reply-channel \<name\> | Delivery channel override |
--reply-account \<id\> | Delivery account id override |
--thinking \<level\> | Set thinking level for the selected model profile |
--verbose \<on|full|off\> | Set verbose level |
--timeout \<seconds\> | Override agent timeout |
--json | Output structured JSON |
Behavior
- By default, the CLI goes through the Gateway. Add
--localto force the embedded runtime on the current machine. - If the Gateway is unreachable, the CLI falls back to the local embedded run.
- Session selection:
--toderives the session key (group/channel targets preserve isolation; direct chats collapse tomain). - Thinking and verbose flags persist into the session store.
- Output: plain text by default, or
--jsonfor structured payload + metadata.
Examples
# Simple turn with JSON output
openclaw agent --to +15555550123 --message "Trace logs" --verbose on --json
# Turn with thinking level
openclaw agent --session-id 1234 --message "Summarize inbox" --thinking medium
# Deliver to a different channel than the session
openclaw agent --agent ops --message "Alert" --deliver --reply-channel telegram --reply-to "@admin"