Phone Notifications Plugin
@yoooclaw/phone-notifications is an OpenClaw / QClaw host plugin. It handles phone notification ingest and local storage, notification search/summary/stats, scheduled monitoring, long-recording sync with ASR transcription, hardware light control and rule evaluation, and Relay Tunnel connectivity.
Features
- Phone notification ingest with local JSON storage, supporting both Gateway Native and HTTP fallback ingest.
- Notification search, summary, stats, and date-based sync into a memory system.
- Scheduled notification monitors, useful for an Agent to periodically process important messages.
- Hardware light control and light-rule management, with async rule evaluation after notifications land.
- Long-recording sync, audio download, ASR transcription, and Markdown transcript output.
- Relay Tunnel status checks and remote connectivity.
Installation
OpenClaw CLI install
For a standard OpenClaw environment with a global openclaw command:
openclaw plugins install @yoooclaw/phone-notifications
openclaw plugins update @yoooclaw/phone-notificationsVerify:
openclaw ntf --help
openclaw ntf --versionIf another plugin already uses the ntf command, use the alias instead:
openclaw phone-notifications --helpAbout installing the npm package directly
In a standard OpenClaw environment, prefer openclaw plugins install @yoooclaw/phone-notifications — it handles downloading the npm package, registering the plugin, and updating the host config. Running the command below on its own only downloads the package into the current project's or global node_modules; it does not write to openclaw.json or restart the host:
npm install @yoooclaw/phone-notificationsSo a bare npm install isn't a recommended install path — it's mainly useful for debugging, packaging verification, or being invoked internally by the OpenClaw plugin manager.
A JvsClaw environment may expose a read-only host root via JVSCLAW_STATE_DIR (e.g. /opt/jvs-claw). A bare npm install won't complete plugin registration there either, and shouldn't attempt to write into that directory. Use the JvsClaw-specific script instead, which writes the plugin and config into the writable state dir /home/admin/.openclaw:
curl -fsSL https://artifact.yoooclaw.com/plugin/install-jvsclaw.sh | bashTo customize the writable directory, use the plugin-specific variables — don't override the host path variable:
curl -fsSL https://artifact.yoooclaw.com/plugin/install-jvsclaw.sh |
PHONE_NOTIFICATIONS_STATE_DIR=/custom/writable/openclaw \
PHONE_NOTIFICATIONS_CONFIG_PATH=/custom/writable/openclaw/openclaw.json bashOne-command install script
Recommended for QClaw, and a valid alternative for OpenClaw. The script downloads the plugin package from CDN, auto-detects the host state directory, pre-checks write permissions, writes the authorization config per the plugin's tool contract, and rolls back on failure.
macOS / Linux:
curl -fsSL https://artifact.yoooclaw.com/plugin/install.sh | bashJvsClaw:
curl -fsSL https://artifact.yoooclaw.com/plugin/install-jvsclaw.sh | bashWindows PowerShell:
& ([scriptblock]::Create((irm https://artifact.yoooclaw.com/plugin/install.ps1)))Common options:
| Option | Description |
|---|---|
--version <ver> | Install a specific version; latest is fetched automatically if omitted. |
--tgz-url <url|path> | Use a specific plugin package URL or local package. |
--target-dir <path> | Specify the install directory. |
--state-dir <path> | Specify the OpenClaw / QClaw / JvsClaw state directory. |
--config-path <path> | Specify the host config file path. |
--channel <name> | Specify the channel: openclaw, arkclaw, or jvsclaw. |
--api-key <key> | Write the API key used by light control etc. during install. |
--retention-days <n> | Set notification data retention in days; unset means keep forever. |
Examples:
curl -fsSL https://artifact.yoooclaw.com/plugin/install.sh | bash -s -- --version 1.11.17-beta.8
curl -fsSL https://artifact.yoooclaw.com/plugin/install.sh | bash -s -- --api-key ock_xxxOn OpenClaw, the script verifies the plugin command works after a restart; on JvsClaw, the script writes into
/home/admin/.openclawand triggers a gateway restart, but skips the immediate CLI self-check to avoid false negatives while platform RPC is recovering. If the host'splugins.denyexplicitly blocks this plugin, the script aborts and asks you to remove the denylist entry first. QClaw usually has no globalopenclawcommand — if the plugin doesn't take effect right away after install, restart the QClaw desktop app, and use QClaw's own wrapper to run OpenClaw subcommands. JvsClaw's host root may be read-only; the dedicated script never treats it as the plugin's write target.
Next steps
- Command Reference — common
openclaw ntfcommands. - Configuration — retention days, ignored apps, Relay, ASR, and more.
- Debugging & Troubleshooting —
doctorhealth check, Relay tunnel diagnosis, log locations.