Skip to content

Command Reference ​

The examples below assume the OpenClaw global CLI. On QClaw, replace openclaw with the wrapper QClaw provides.

Auth ​

bash
openclaw ntf auth set-api-key "ock_xxx"
openclaw ntf auth show
openclaw ntf auth clear

set-token is a compatibility alias for set-api-key (a legacy name); the two behave identically. The api-key is written to credentials.json in the host state directory (mode 0600), and multiple keys are supported (apiKeys[], with one flagged default); the YOOOCLAW_API_KEY environment variable overrides whatever is in the file.

bash
openclaw ntf search
openclaw ntf search --app wechat --from 2026-03-01T00:00:00+08:00 --to 2026-03-09T23:59:59+08:00
openclaw ntf search --keyword "meeting" --limit 20
openclaw ntf search --sender "Zhang San"
openclaw ntf summary --limit 700
openclaw ntf stats --dim app --from 2026-03-01

Notification sync ​

bash
openclaw ntf sync scan
openclaw ntf sync fetch --date 2026-03-09
openclaw ntf sync commit --date 2026-03-09

# iterator style: auto-picks the next pending batch and hands back a ready-to-run commit command
openclaw ntf sync next
openclaw ntf sync next --all
openclaw ntf sync next --from-date 2026-03-01 --to-date 2026-03-09

sync next is a convenience wrapper for memory-sync workflows: it auto-locates the next unprocessed date/batch and returns a ready-to-run commitCommand, so you don't have to compute --date / --end-index yourself.

Notification monitors ​

bash
openclaw ntf monitor create boss-alert \
  --description "Monitor important WeChat messages" \
  --match-rules '{"appName":"wechat","senderKeywords":["Boss Zhang"]}' \
  --schedule "*/30 * * * *"

openclaw ntf monitor list
openclaw ntf monitor show boss-alert
openclaw ntf monitor enable boss-alert
openclaw ntf monitor disable boss-alert
openclaw ntf monitor delete boss-alert --yes

Recordings ​

bash
openclaw ntf rec list
openclaw ntf rec status <recording-id>
openclaw ntf rec storage-path
openclaw ntf rec setup

Recording results are written only through the Gateway WebSocket method recordings.result.write; HTTP POST /recordings is disabled as of 1.18.0 — the route remains but always returns 410 Gone (direct clients, including Tailscale, use the Gateway RPC too). A write response only means "accepted"; clients should confirm audio_status=downloaded with a non-empty audioFile via the recording.status event or a recordings.status query. The request may carry an optional top-level ossTaskId (the upload service's task ID): on a 403 the plugin uses it to fetch a fresh signed URL from the cloud once and retries, and echoes it in responses, events and queries.

Synced web pages (browser extension) ​

Page content captured by a browser extension is delivered to the plugin via webPages.save (Gateway Native) or POST /web-pages; these commands are pure reads of the local capture index and never touch the Internet:

bash
openclaw ntf synced-web-page list
openclaw ntf synced-web-page list --from 2026-03-01T00:00:00+08:00 --to 2026-03-09T23:59:59+08:00
openclaw ntf synced-web-page search "keyword" --limit 20
openclaw ntf synced-web-page path <urlHash>
openclaw ntf synced-web-page storage-path

list's --from is inclusive and --to is exclusive, filtering on capturedAt; pass a timezone-qualified timestamp. path accepts a unique hash prefix of at least 8 characters.

Light control ​

bash
openclaw ntf light setup-tools
openclaw ntf light send \
  --segments '[{"mode":"wave","duration_s":4,"brightness":192,"color":{"r":255,"g":0,"b":0}}]'

To only show text on second-gen hardware with a screen, omit --segments and pass just --title / --reason:

bash
openclaw ntf light send --title "Meeting" --reason "15:00 product review"

light send supports at most MAX_LIGHT_SEGMENTS segments (exceeding it raises light_control supports 1-N segments), and repeat_times must be a non-negative integer.

Cloud todos ​

bash
openclaw ntf todo list --is-done false
openclaw ntf todo get <id>
openclaw ntf todo create --title "Product review" --due-at 2026-10-10T15:00:00+08:00 --is-full-day false
openclaw ntf todo update <id> --is-done true     # false reopens
openclaw ntf todo delete <id> --yes

Shares one client with the native Agent tools ai_todo_list / ai_todo_get / ai_todo_create / ai_todo_update / ai_todo_delete, reusing the app's todo service and the plugin API key. --due-at is the start time: ISO with timezone for timed items, a date for all-day, null for none. list also takes --start-time / --end-time / --keyword / --page-no / --page-size; replay an uncertain create with the returned --request-key and identical arguments; create / update also accept a JSON object via --json-file.

Data transfer ​

Moves notifications, recording transcripts, summaries and saved web pages (optionally audio / images / HTML archives) between environments; the source is kept intact and existing target records are never overwritten; memory, configuration and credentials are not transferred. The package format is interchangeable with the standalone CLI's yoooclaw transfer.

bash
# Cloud relay (since 1.18.0, recommended default)
openclaw ntf transfer export --via oss                # pack and upload; returns a taskId and a copyable import sentence
openclaw ntf transfer import --task <taskId>          # target side: download, verify and import automatically
openclaw ntf transfer import --task <taskId> --dry-run
openclaw ntf transfer complete --task <taskId> --object-key <objectKey>   # retry a failed upload confirmation

# Local packages
openclaw ntf transfer capabilities --out ./target-capabilities.json      # run on the target
openclaw ntf transfer export --dry-run
openclaw ntf transfer export --out ./transfer-package.tar.gz --target-capabilities ./target-capabilities.json
openclaw ntf transfer import --file ./transfer-package.tar.gz            # stage + preview only
openclaw ntf transfer import --local <localTransferId> --plan <planId> [--resume]
  • Scope: --include notifications,recordings,web-pages,images, --from / --to (timezone-qualified, start inclusive / end exclusive), --with-audio / --with-images / --with-html (audio excluded by default).
  • An --out ending in .tar.gz / .tgz writes a single archive (since 1.18.0), anything else a package directory; targets older than 1.18.0 only accept directories. The archive is just packaging — the contents are still plaintext.
  • Cloud relay uses the plugin API key, and source / target must be the same account and environment; uploads use the Alibaba Cloud SDK's resumable multipart upload with STS credentials renewed automatically, downloads use the plugin's Range downloader, and resumption only works within the same command. Client-side limit is 5 GiB per package; at most 3 task creations per day, never retried automatically. The server deletes cloud packages 24 hours after upload completes and the plugin has no delete command; download URLs are only used inside the command and never reach messages or logs.
  • Imports run in the locally running plugin process: imported historical notifications land by the target's timezone and skip automatic memory consumption (every ntf sync consumer of that storage must be on 1.16.0+). A successful import cleans local staging automatically; partial or failed imports keep the staged package and report under plugins/phone-notifications/transfers/ for retry — that directory holds plaintext data, so don't share it like a public log.
  • In web chat sessions the Agent runs ntf transfer export --via oss --delivery-reference to get only a delivery reference (e.g. [[transfer:1]]), and the native result_deliver tool sends the privacy warning and copyable import sentence after the turn ends; the real task ID never passes through the model.

Switching environments ​

bash
openclaw ntf env show             # current environment (development / test / production) and its endpoints
openclaw ntf env switch test      # switch environment; triggers a gateway reload automatically

Switching to a nonexistent environment name fails with 无效的环境名称: <env>,可选值: development, test, production without affecting the current environment.

Diagnostics & ops ​

bash
openclaw ntf doctor
openclaw ntf doctor --json
openclaw ntf doctor --fix         # auto-fix whatever can be auto-fixed (state-dir permission bits, dangerous flags)
openclaw ntf storage-path
openclaw ntf tunnel-status
openclaw ntf log --keyword error
openclaw ntf log --keyword relay --from 2026-03-01 --to 2026-03-09 --limit 100
openclaw ntf update
openclaw ntf update --beta        # switch to the beta channel; beta builds don't redact logs, useful for debugging
openclaw ntf update --accept-capabilities   # grant explicitly after reviewing, when a new version declares new capabilities (CAPABILITY_CONSENT_REQUIRED)

ntf update reuses the host's native installer; logs and results land in <stateDir>/extensions/.phone-notifications-update/ — see Updating & Upgrading · OpenClaw plugin.