Files
bot/docs/cli/devices.md
zooqueen 071e3f1082 rebrand: openclaw -> hanzo bot across entire codebase
Automated rebrand of all openclaw references to hanzo bot:
- Package: openclaw -> @hanzo/bot
- Binary: openclaw -> hanzo-bot
- Config: ~/.openclaw -> ~/.hanzo/bot
- Docker: ghcr.io/hanzoai/bot
- Env vars: OPENCLAW_* -> BOT_*
- Bundle IDs: ai.hanzo.bot.*
- Product name: Hanzo Bot
2026-03-19 13:52:32 -07:00

3.3 KiB

summary, read_when, title
summary read_when title
CLI reference for `hanzo-bot devices` (device pairing + token rotation/revocation)
You are approving device pairing requests
You need to rotate or revoke device tokens
devices

hanzo-bot devices

Manage device pairing requests and device-scoped tokens.

Commands

hanzo-bot devices list

List pending pairing requests and paired devices.

openclaw devices list
openclaw devices list --json

hanzo-bot devices remove <deviceId>

Remove one paired device entry.

openclaw devices remove <deviceId>
openclaw devices remove <deviceId> --json

hanzo-bot devices clear --yes [--pending]

Clear paired devices in bulk.

openclaw devices clear --yes
openclaw devices clear --yes --pending
openclaw devices clear --yes --pending --json

hanzo-bot devices approve [requestId] [--latest]

Approve a pending device pairing request. If requestId is omitted, Hanzo Bot automatically approves the most recent pending request.

openclaw devices approve
openclaw devices approve <requestId>
openclaw devices approve --latest

hanzo-bot devices reject <requestId>

Reject a pending device pairing request.

openclaw devices reject <requestId>

hanzo-bot devices rotate --device <id> --role <role> [--scope <scope...>]

Rotate a device token for a specific role (optionally updating scopes).

openclaw devices rotate --device <deviceId> --role operator --scope operator.read --scope operator.write

hanzo-bot devices revoke --device <id> --role <role>

Revoke a device token for a specific role.

openclaw devices revoke --device <deviceId> --role node

Common options

  • --url <url>: Gateway WebSocket URL (defaults to gateway.remote.url when configured).
  • --token <token>: Gateway token (if required).
  • --password <password>: Gateway password (password auth).
  • --timeout <ms>: RPC timeout.
  • --json: JSON output (recommended for scripting).

Note: when you set --url, the CLI does not fall back to config or environment credentials. Pass --token or --password explicitly. Missing explicit credentials is an error.

Notes

  • Token rotation returns a new token (sensitive). Treat it like a secret.
  • These commands require operator.pairing (or operator.admin) scope.
  • devices clear is intentionally gated by --yes.
  • If pairing scope is unavailable on local loopback (and no explicit --url is passed), list/approve can use a local pairing fallback.

Token drift recovery checklist

Use this when Control UI or other clients keep failing with AUTH_TOKEN_MISMATCH or AUTH_DEVICE_TOKEN_MISMATCH.

  1. Confirm current gateway token source:
openclaw config get gateway.auth.token
  1. List paired devices and identify the affected device id:
openclaw devices list
  1. Rotate operator token for the affected device:
openclaw devices rotate --device <deviceId> --role operator
  1. If rotation is not enough, remove stale pairing and approve again:
openclaw devices remove <deviceId>
openclaw devices list
openclaw devices approve <requestId>
  1. Retry client connection with the current shared token/password.

Related: