openclaw pairing CLI: approve and list DM pairing requests

Reference for the openclaw pairing command to review and approve direct message pairing requests on channels that support pairing. Also covers listing pending requests and using the Control UI.

Read this when

  • You're using pairing-mode DMs and need to approve senders

openclaw pairing

Review or approve DM pairing requests on channels that support pairing (applies only to chat DMs; node or device pairing uses openclaw devices).

See also: Pairing flow

The same pending requests are also visible in the Control UI under Settings → Channels → DM access requests. The Control UI lets you approve, optionally notify the requester, or dismiss. Dismissing removes the current request but does not permanently block that sender.

Commands

openclaw pairing list telegram
openclaw pairing list --channel telegram --account work
openclaw pairing list telegram --json

openclaw pairing approve <code>
openclaw pairing approve telegram <code>
openclaw pairing approve --channel telegram --account work <code> --notify

pairing list

Show all pending pairing requests for a specific channel.

OptionDescription
[channel]channel id as a positional argument
--channel <channel>channel id given explicitly
--account <accountId>account id for multi-account channels
--jsonoutput in machine-readable format

If more than one pairing-capable channel is set up, specify the channel by position or with --channel. Extension channels are accepted as long as the channel id is valid.

pairing approve

Accept a pending pairing code and authorize that sender.

Usage:

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

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

Owner bootstrap

If commands.ownerAllowFrom is empty at the moment you approve a pairing code, the CLI also marks the approved sender as the command owner, using a channel-scoped entry like telegram:123456789. This only sets the initial owner; later pairing approvals never replace or extend commands.ownerAllowFrom. In the Control UI this elevation appears as a separate checkbox protected by operator.admin rather than being applied automatically.

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

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