CLI commands

Pairing

openclaw pairing

Approve or inspect DM pairing requests for channels that support pairing (chat DMs only - node/device pairing uses openclaw devices).

Related: Pairing flow

The same pending requests can be reviewed in the Control UI under Settings → Channels → DM access requests. The Control UI supports approve, optional requester notification, and dismiss. Dismiss removes the current request but does not permanently block the sender.

Commands

bash
openclaw pairing list telegramopenclaw pairing list --channel telegram --account workopenclaw pairing list telegram --json openclaw pairing approve <code>openclaw pairing approve telegram <code>openclaw pairing approve --channel telegram --account work <code> --notify

pairing list

List pending pairing requests for one channel.

Option Description
[channel] positional channel id
--channel <channel> explicit channel id
--account <accountId> account id for multi-account channels
--json machine-readable output

If multiple pairing-capable channels are configured, pass a channel positionally or with --channel. Extension channels work as long as the channel id is valid.

pairing approve

Approve a pending pairing code and allow that sender.

Usage:

  • openclaw pairing approve <channel> <code>
  • openclaw pairing approve --channel <channel> <code>
  • openclaw pairing approve <code> when exactly one pairing-capable channel is configured

Options: --channel <channel>, --account <accountId>, --notify (send a confirmation back to the requester on the same channel).

Owner bootstrap

If commands.ownerAllowFrom is empty when you approve a pairing code, the CLI also records the approved sender as the command owner, using a channel-scoped entry such as telegram:123456789. This only bootstraps the first owner - later pairing approvals never replace or expand commands.ownerAllowFrom. The Control UI presents this elevation as a separate operator.admin-protected checkbox instead of applying it automatically.

The command owner is the human operator account allowed to run owner-only commands and approve dangerous actions such as /diagnostics, /export-session, /export-trajectory, /config, and exec approvals. Pairing only lets a sender talk to the agent; it does not by itself grant owner privileges beyond this one-time bootstrap.

If you approved a sender before this bootstrap existed, run openclaw doctor; it warns when no command owner is configured and shows the exact openclaw config set commands.ownerAllowFrom ... command to fix it.

Was this useful?
On this page

On this page