Task Notifier

Desktop notifications when any OpenClaw agent finishes a task. Supports macOS and WSL-on-Windows; works for all agents and subagents automatically.

Audits

Pass

Install

openclaw plugins install clawhub:task-notifier

🔔 Task Notifier — OpenClaw Plugin

Desktop notifications when any OpenClaw agent finishes a task. Supports macOS and WSL-on-Windows. Works for all agents and subagents. Smart suppression, auto-language, per-run state for parallel agents, and optional agent/subagent filters.

🔒 Why the security warning?

During install OpenClaw will flag this plugin as dangerous and require --dangerously-force-unsafe-install. This is normal and not a risk.

Here is exactly what the plugin runs and why:

CommandPlatformPurpose
osascript display notificationmacOSNative notification banner
osascript (System Events)macOSDetect active browser window (so we don't spam you)
afplaymacOSNotification sound (/System/Library/Sounds/Hero.aiff)
powershell.exeWSLWindows tray balloon + foreground window check
notify-sendLinuxFallback notification

What the plugin does NOT do:

  • ❌ No network requests (zero internet access)
  • ❌ No file writes outside ~/.openclaw/
  • ❌ No access to your messages, emails, or documents
  • ❌ No data sent anywhere

All source code is in src/ — review it yourself. OpenClaw shows the exact warnings before install so you can verify.

Install

Task Notifier has two parts on ClawHub. Install both:

# 1. Skill (agent documentation)
clawhub install task-notifier

# 2. Plugin (runtime code — this package)
openclaw plugins install clawhub:task-notifier --dangerously-force-unsafe-install

The --dangerously-force-unsafe-install flag is expected — the plugin runs local OS notification commands (osascript on macOS, PowerShell on WSL).

Restart and verify:

openclaw gateway restart
bash ~/.openclaw/extensions/task-notifier/scripts/doctor.sh

Agent filters

By default Task Notifier watches the main agent and all subagents. Include/exclude entries match either the raw agent id or the display name, case-insensitively; spaces and underscores are treated like hyphens. Optional env settings:

export TASK_NOTIFIER_NOTIFY_MAIN=true
export TASK_NOTIFIER_NOTIFY_SUBAGENTS=true
export TASK_NOTIFIER_INCLUDE_AGENTS="main,forgemaster"
export TASK_NOTIFIER_EXCLUDE_AGENTS="noisy-agent,avito"
export TASK_NOTIFIER_AGENT_IN_BODY=true
export TASK_NOTIFIER_STATE_TTL_HOURS=24

State is stored per run/session under .openclaw-task/runs/, so parallel agents do not overwrite each other. The agent name is included in the title and body because Windows may display the notification source/app name as the visible header.

Quick links