Configuration
The plugin's config schema is defined by openclaw.plugin.json inside the plugin package; the common fields are listed below.
Common settings
| Setting | Description |
|---|---|
retentionDays | Notification data retention in days; unset means keep forever. |
ignoredApps | List of app package names to ignore. |
relay.heartbeatSec | Heartbeat interval between the plugin and Relay. |
relay.reconnectBackoffMs | Relay reconnect backoff time. |
autoUpdate.enabled | Whether to enable the plugin's auto-update check. |
autoUpdate.checkIntervalHours | Auto-update check interval. |
autoUpdate.channel | Update channel: latest or beta. |
asr.mode | Recording transcription mode: api, local, or yoooclaw. |
asr.api.* | Cloud ASR parameters. |
asr.local.* | Local Whisper parameters. |
Setting example (OpenClaw)
openclaw config set plugins.entries.phone-notifications.config.retentionDays 30
openclaw config set plugins.entries.phone-notifications.config.ignoredApps '["com.android.systemui"]'The relay.*, asr.api.*, and asr.local.* groups are all additionalProperties: false in the schema — writing an unknown field under them fails host-side schema validation outright. If a setting doesn't seem to take effect, check for a typo'd field name first.
Related environment variables
Besides openclaw config set writing into openclaw.json, the plugin also reads these environment variables — useful when debugging environment isolation or multi-key setups:
| Variable | Description |
|---|---|
YOOOCLAW_API_KEY | Overrides the apiKey in credentials.json; highest priority. |
PHONE_NOTIFICATIONS_STATE_DIR | Overrides the plugin state directory. |
PHONE_NOTIFICATIONS_CONFIG_PATH | Overrides the host config file path. |
PHONE_NOTIFICATIONS_CLAW_PROFILE | Selects the CLI profile. |
PHONE_NOTIFICATIONS_LANG | Language for the plugin's runtime output (CLI output, error messages, skill replies): zh-CN / zh-TW / en-US; equivalent to the installer's --lang. |
OPENCLAW_GATEWAY_TOKEN / OPENCLAW_GATEWAY_PASSWORD / OPENCLAW_GATEWAY_PORT | Host gateway auth passthrough and port (QClaw has QCLAW_* equivalents); *_PORT is also the port doctor's local-gateway checker uses when probing the local gateway (default 127.0.0.1:18789). |
PHONE_NOTIFICATIONS_GATEWAY_BASE_URL / OPENCLAW_GATEWAY_BASE_URL / QCLAW_GATEWAY_BASE_URL | Override the full base URL doctor's local-gateway checker probes (checked in this priority order); without one, a 127.0.0.1 URL is assembled from *_PORT. |
OPENCLAW_HOST_DEVELOPMENT / _TEST / _PRODUCTION | Override the Relay / light-control API hostnames for each environment; only needed for self-hosted/internal setups. |
The
PHONE_NOTIFICATIONS_ENVenvironment variable no longer has any effect: earlier versions read it to override the current environment, but a process managed by launchd/systemd re-injects a "managed environment snapshot" on every restart, which was silently clobbering whateverntf env switchhad just written. The only source of truth now is the.envfile thatntf env switchwrites into the state directory — if you used to switch environments by setting this variable, switch toopenclaw ntf env switch <env>instead.
State-directory auto-discovery also relies on JVSCLAW_STATE_DIR/JVSCLAW_HOME/JVSCLAW_CONFIG_PATH, OPENCLAW_STATE_DIR/OPENCLAW_ROOT/OPENCLAW_HOME, QCLAW_STATE_DIR/QCLAW_HOME, ECLAW_STATE_DIR/ECLAW_HOME/ECLAW_CONFIG_PATH, etc. These are normally set by the host itself — confirm which host you're running under before overriding them manually.