AI CLI Complete Notify (v2.8.0)
June 4, 2026 · View on GitHub
📖 Introduction
An intelligent task completion notification tool for Claude Code / Codex / OpenCode / Gemini, supporting multiple notification channels and flexible configuration options. Get notified automatically through various methods when AI assistants complete long-running tasks, so you don't have to wait in front of your computer.
Supported Notification Methods:
📱 Webhook (Feishu/DingTalk/WeCom) • 💬 Telegram Bot • 📧 Email (SMTP)
🖥️ Desktop Notifications • 🔊 Sound/TTS Alerts • ⌚ Smart Band / Watch Alerts (via existing notification channels)
✨ Key Features(For more detailed update logs, please refer to the end of the article)
- 🎯 Smart Debouncing: Automatically adjusts notification timing based on task type - 60s for tool calls, only 15s without tool calls
- 🔀 Source Control: Independent enable/disable and threshold settings for Claude / Codex / OpenCode / Gemini
- 📡 Multi-Channel Push: Support multiple notification methods simultaneously to ensure message delivery
- ⏱️ Duration Threshold: Only notify when tasks exceed the set duration to avoid frequent interruptions
- 🪝 Hooks + Watch Integration: Claude Code / Gemini CLI can use native hooks, OpenCode can use a global plugin, while Codex continues through log watching
- 🧠 AI Summary (Optional): Generate a short summary quickly; fallback to the original task if it times out
- 🖥️ Desktop Application: GUI configuration with language switching, tray hiding, and auto-start
- 🔐 Configuration Separation: Runtime configuration separated from sensitive information for security
💡 Recommended Configuration
Important: For the best experience, it's recommended to grant AI assistants full file read/write permissions when using Claude Code / Codex / OpenCode / Gemini.
Benefits:
- ✅ Ensures task logs are correctly recorded to local files
- ✅ Monitoring functions can accurately capture task completion status
- ✅ More precise notification timing, avoiding false positives or missed notifications
- ✅ AI can better manage project files and configurations
Important Notes
- Claude Code often splits a request into sub-tasks. To avoid spam, this tool only notifies after the whole turn completes.
- Log monitoring relies on a quiet period to confirm completion, so notifications are not instant (default 60s with tool calls, 15s without).
- For the fastest and cleanest alerts, prefer Hooks for Claude Code / Gemini CLI and the global plugin for OpenCode; keep Watch for Codex or as a general fallback mode.
Hooks vs Watch
- Hooks / plugin events use explicit lifecycle events emitted by the AI CLI itself. For Claude Code, Gemini CLI, and OpenCode, that means reminders can fire closer to the real finish point instead of waiting for a quiet-period guess.
- Hooks do not require a long-running background watcher for those tools, which reduces idle overhead and lowers the chance of log-parsing false positives.
- Watch remains the universal fallback. It works well for Codex and for cases where hooks are not configured, but it depends on local logs and debounce time to infer that a turn has ended.
- In practice, Hooks / plugin events were added because Claude Code's
Stop, Gemini CLI'sAfterAgent, and OpenCode'ssession.idle/session.errorevents provide more timely and accurate completion signals than watch-based log polling. In the current integration, Codex still uses Watch as the main completion path.
🚀 Quick Start
Windows Users
- Download the latest
ai-cli-complete-notify-<version>-portable-win-x64.zipfrom Releases - Extract the archive and place it in any directory (e.g.,
D:\Tools\) - Copy
.env.exampleto.envand fill in your notification configuration according to the requirements inside - Double-click to run the desktop application
macOS / Linux Users
# Clone repository
git clone https://github.com/ZekerTop/ai-cli-complete-notify.git
cd ai-cli-complete-notify
# Install dependencies
npm install
# Configure environment variables (source/dev mode)
cp .env.example .env
# Edit .env file and fill in your notification configuration
# Run desktop application
npm run dev
Build a double-clickable macOS app:
# Build .app
npm run dist:mac:app
# Build .dmg for distribution
npm run dist:mac:dmg
🖥️ Desktop Application Usage
Interface Overview
- Top Bar: Language switching, Watch monitoring toggle, window controls
- Channel Configuration: Configure Webhook, Telegram, Email, and other notification channels
- Source Settings: Set enable status and duration thresholds for Claude / Codex / OpenCode / Gemini separately
- Monitoring Configuration: Set polling interval and debounce time with smart adjustment support
- Confirm reminder (default: OFF): Effective only in Watch mode. When enabled, it triggers only when Codex shows an interactive choice prompt that requires your selection or submission (Plan mode); normal output text will not trigger it. Only one reminder is sent per turn: once a confirm reminder is triggered, that turn will not send a separate task-complete reminder.
- Watch logs: Persisted locally with one-click open and retention days.
- Test Function: Test whether each notification channel works properly
- AI Summary: Configure API URL / Key / Model and timeout fallback
- Advanced Options: Title prefix, close behavior, auto-start on boot, silent start (hide to tray on launch), click notification to return (best-effort; OS focus rules may block)
Interface Preview

Tray Function
After selecting "Hide to tray", the application minimizes to the system tray. The icon may be in the ^ collapsed area of the taskbar. With silent start enabled, the app launches hidden in the tray without a balloon.
💻 Command Line Usage
WSL note: CLI reminders work for webhook/Telegram/email, and sound can also work in WSL through Windows PowerShell. Desktop notifications and tray are Windows-only. Log monitoring works only when the AI CLI runs inside WSL (logs under
~/.claude,~/.codex,~/.gemini). For WSL/CLI config, use.envfor AI summary and Feishu card;.envoverridessettings.json.
Note: For CLI usage from source (Node), run npm install first.
On Windows portable builds:
ai-cli-complete-notify.exeis the desktop GUI.ai-reminder.exeis the packaged CLI/sidecar and should be used for terminal commands.
Show Help
# Source / Node
node ai-reminder.js help
# Windows portable EXE
ai-reminder.exe help
WSL Quick Command Guide (Copy & Run)
# 0) Windows PowerShell: verify WSL is installed
wsl -l -v
# 1) Enter your distro (Ubuntu example)
wsl -d Ubuntu
# 2) Install Node.js / npm inside WSL (Ubuntu example)
sudo apt update
sudo apt install -y nodejs npm
node -v
npm -v
# 3) Enter project and install deps (adjust path to your machine)
cd "/mnt/d/path/to/ai-cli-complete-notify"
npm install
cp .env.example .env
# 4) Start log watch mode (recommended for long-running use)
node ai-reminder.js watch --sources all --gemini-quiet-ms 3000 --claude-quiet-ms 60000
# 5) Wrap an AI command with automatic timing
node ai-reminder.js run --source codex -- codex <args...>
# 6) Keep watcher running in background (nohup option)
nohup node ai-reminder.js watch --sources all > ~/ai-cli-notify.watch.log 2>&1 &
tail -f ~/ai-cli-notify.watch.log
# 7) Optional: keep it in tmux (more stable)
sudo apt install -y tmux
tmux new -s ai-notify
# Run watch command inside tmux, then press Ctrl+b, d to detach
tmux attach -t ai-notify
# 8) Useful WSL <-> Windows path helpers
explorer.exe .
wslpath -w ~/.codex
Notes:
- In WSL, prefer webhook/Telegram/email channels; tray is a Windows GUI feature.
- For WSL CLI behavior, prefer
.envfor webhook and summary-related settings; global channel switches already saved in the desktop app still followsettings.json.
Direct Notification
# Send notification immediately (ignore threshold)
node ai-reminder.js notify --source claude --task "Task completed"
Native Hooks / Plugin Mode (Recommended for Claude Code / Gemini CLI / OpenCode)
# Check current hook status
node ai-reminder.js hooks status
# Install Claude Code hook
node ai-reminder.js hooks install --target claude
# Install Gemini CLI hook
node ai-reminder.js hooks install --target gemini
# Install OpenCode global plugin
node ai-reminder.js hooks install --target opencode
# Preview the hook / plugin file that will be written
node ai-reminder.js hooks preview --target opencode
# Remove a hook
node ai-reminder.js hooks uninstall --target claude
Notes:
- Claude Code currently uses the native
Stophook event. - Gemini CLI currently uses the native
AfterAgenthook event. - OpenCode currently uses a global plugin and listens to
session.idle/session.error. - In the current integration, Codex completion reminders are still handled mainly through Watch mode.
Log Monitoring Mode (Recommended)
# Windows (EXE)
ai-reminder.exe watch --sources all --gemini-quiet-ms 3000 --claude-quiet-ms 60000
# macOS / Linux / WSL (Node)
node ai-reminder.js watch --sources all --gemini-quiet-ms 3000 --claude-quiet-ms 60000
Auto Timer Mode
# Windows (EXE)
ai-reminder.exe run --source codex -- codex <args...>
# macOS / Linux / WSL (Node)
node ai-reminder.js run --source codex -- codex <args...>
Note: -- separates this tool's arguments from the real command to execute. codex <args...> is just the actual AI CLI invocation (you can replace it with claude or gemini).
Manual Timer Mode
# Start timer
node ai-reminder.js start --source gemini --task "Build project"
# ...execute your task...
# Stop timer and send notification
node ai-reminder.js stop --source gemini --task "Build project"
Common Parameters
--source/--sources: Specify AI source (claude / codex / opencode / gemini / all).watch --sources allcurrently covers Claude / Codex / Gemini; OpenCode uses the plugin path above.--task: Task description--interval-ms: Polling interval (milliseconds)--gemini-quiet-ms: Gemini debounce time (milliseconds)--claude-quiet-ms: Claude debounce time (milliseconds)--force: Force send notification, ignore threshold
Diagnostics / Inspection
# Print settings.json, state file, and watch-log paths
node ai-reminder.js paths
# Print the current effective runtime config
node ai-reminder.js config
# Check whether .env exists; create .env.example when missing
node ai-reminder.js env-status --create-example
⚙️ Configuration
Environment Variables (.env)
Copy from .env.example and fill in your configuration:
Where to put .env:
- Windows portable build: put it next to
ai-cli-complete-notify.exe, same as previous versions. - Packaged macOS app (.app / .dmg): put it at
~/.ai-cli-complete-notify/.env. Do not put it inside the.appbundle, and do not rely on the read-only.dmgvolume. - Source/dev or CLI mode: put it in the project root or in the data directory.
- Run
ai-reminder pathsto see the current data directory and recommended.envpath. To fully override it, setAI_CLI_COMPLETE_NOTIFY_ENV_PATH=/path/to/.env.
On first launch, the packaged macOS app checks for .env automatically. If it is missing, the app creates .env.example in the data directory and shows a setup reminder; if .env exists, the app shows that the configuration loaded successfully. If Finder does not show .env.example, press Command + Shift + . to show hidden files, then copy .env.example to .env and fill in your settings.
# Webhook configuration (supports Feishu/DingTalk/WeCom)
WEBHOOK_URLS=https://open.feishu.cn/open-apis/bot/v2/hook/XXXXX
# Feishu card format (true/false). .env overrides settings.json.
# WEBHOOK_USE_FEISHU_CARD=false
# Webhooks send summary-only when AI summary succeeds by default.
# Turn this on to also include the original output.
# WEBHOOK_INCLUDE_OUTPUT_WHEN_SUMMARY=false
# Max characters for original output in non-card webhooks.
# WEBHOOK_OUTPUT_MAX_LENGTH=3000
# Desktop notifications and sound
# Used as defaults only when settings.json has not explicitly set these channel switches
NOTIFICATION_ENABLED=true
# Used as a default only when settings.json has not explicitly set the sound switch
SOUND_ENABLED=true
# Telegram Bot
TELEGRAM_BOT_TOKEN=your_bot_token
TELEGRAM_CHAT_ID=your_chat_id
# Email configuration (optional)
# EMAIL_HOST=smtp.example.com
# EMAIL_PORT=465
# EMAIL_SECURE=true
# EMAIL_USER=bot@example.com
# EMAIL_PASS=your_smtp_password
# EMAIL_FROM=AI Notify <bot@example.com>
# EMAIL_TO=you@example.com
# AI summary (optional)
# SUMMARY_ENABLED=false
# SUMMARY_PROVIDER=openai # model platform: openai | anthropic | google | qwen | deepseek
# SUMMARY_API_URL=https://api.openai.com
# SUMMARY_API_KEY=your_api_key
# SUMMARY_MODEL=gpt-4o-mini
# SUMMARY_TIMEOUT_MS=30000
# SUMMARY_PROMPT=You are a technical assistant. Output one short summary sentence.
# Custom paths (optional)
# AI_CLI_COMPLETE_NOTIFY_DATA_DIR=...
# AI_CLI_COMPLETE_NOTIFY_ENV_PATH=...
WSL/CLI quick toggles:
# .env (WSL/CLI)
SUMMARY_ENABLED=true
WEBHOOK_USE_FEISHU_CARD=true
Runtime Configuration (settings.json)
Configuration file location:
- Windows:
%APPDATA%\ai-cli-complete-notify\settings.json - macOS / Linux:
~/.ai-cli-complete-notify/settings.json
This file is automatically managed by the desktop application and contains source enable status, thresholds, and other settings.
🔧 Development & Build
Development Mode
# Tauri dev mode (recommended)
npm run dev
# Frontend only
npm run dev:ui
Build Release Version
# Default build: platform-specific output
# Windows:
# dist/ai-cli-complete-notify-<version>-portable-win-x64/
# dist/ai-cli-complete-notify-<version>-portable-win-x64.zip
# macOS:
# src-tauri/target/release/bundle/macos/ai-cli-complete-notify.app
npm run dist
# Windows portable build
npm run dist:portable
# Windows NSIS installer build (optional)
npm run dist:installer
# macOS .app
npm run dist:mac:app
# macOS .dmg (optional, for distribution)
npm run dist:mac:dmg
# Build sidecar only
npm run build:sidecar
Windows notes:
npm run distnow looks for Rust automatically fromCARGO_HOME,D:\cargo, or%USERPROFILE%\\.cargo.- If you still prefer the batch entry,
build-tauri.batdefaults to the portable package. - Use
build-tauri.bat installerif you still need the NSIS installer. - The portable package intentionally excludes
README*.md; only the executables and required runtime files are shipped.
macOS notes:
npm run build:sidecargenerates the Tauri sidecar for the current Mac architecture, for examplesrc-tauri/binaries/ai-reminder-aarch64-apple-darwinon Apple Silicon.npm run dist:mac:appoutputs a double-clickable.app.npm run dist:mac:dmgoutputs a.dmgfor distribution.- The packaged
.appsends desktop notifications through the Tauri native notification plugin. macOS may ask for notification permission once; after allowingai-cli-complete-notify, regular reminders should not trigger repeated AppleScript access prompts. - For regular use, install the
.appinto/Applicationsfrom the.dmg. Running the app directly from Desktop or Downloads can trigger macOS "allow access to Desktop/Downloads" privacy prompts because the sidecar runtime and resources are inside the app bundle at that protected path. - Public macOS distribution may still require Apple Developer code signing and notarization.
📝 Usage Tips
- ⏱️ Threshold function requires timing data (via
run/start-stop/watchmode),notifycommand ignores threshold and sends directly - 🔗 Webhook uses Feishu post format by default; "Use Feishu card format" only applies to Feishu. WeCom/DingTalk will use text format and validate success by
errcode. - ⌚ Smart band / watch alerts do not have a dedicated native channel yet; they are typically achieved indirectly through phone notification sync, webhook relays, Telegram, or email pipelines.
- 🚀 Auto-start on boot is configured in the "Advanced" tab (supports Windows / macOS)
- 🎯 Smart debouncing automatically adjusts wait time based on AI message type, improving notification accuracy
- 💡 Monitoring mode is suitable for long-term operation, recommend setting auto-start or keeping it running in a background terminal
- 💡 EXE starts with Watch enabled by default: toggle it in the top bar if you don?t need it.
- 🪝 Hooks / plugin mode is the preferred choice for Claude Code / Gemini CLI / OpenCode because it uses explicit completion events; when enabled, Watch mainly remains for Codex.
- ✅ Confirm prompt toggle guidance (default: OFF): turn it on if AI often asks “confirm/approve/continue”; keep it off if you only want final completion alerts without intermediate interruptions. Note: if you set
CODEX_COMPLETION_ONLY=1in.env, Codex confirm alerts are disabled (set it to0or remove it). - 🧭 Click to return is more reliable but still best-effort due to OS focus rules; for VSCode extensions choose the VSCode target and ensure VSCode is not minimized
Changelog
View version history
v2.xis the current Tauri-based desktop line.v1.xwas the Electron-based line.
2.8.0
- Added an AI Summary test path that sends a real test notification and reports both summary generation and notification delivery in the desktop UI.
- Improved AI Summary setup hints: the API URL input now explains base URL, exact endpoint, and trailing slash behavior.
- Fixed summary test JSON parsing by keeping webhook logs out of stdout, so webhook status output no longer breaks the desktop test result.
- Increased the AI Summary default timeout to 30 seconds and migrated the old 15-second default to reduce accidental fallback on slower API responses.
- Added success/error coloring to the AI Summary test result box.
- Added a Webhook option to include or hide the original output when an AI summary succeeds. When included, the AI summary and original output are separated with a divider and labeled clearly. When AI summary is disabled or fails, the original output is still kept to avoid blank notifications, and failures are shown inline, for example
AI Summary: request timed out, original output is shown. - Added original-output length limiting for non-card webhooks through
WEBHOOK_OUTPUT_MAX_LENGTH.
2.7.0
- Added macOS desktop compatibility: the packaged
.appnow routes desktop notifications through Tauri native notifications to avoid repeated AppleScript access prompts, while CLI/source runs keeposascript display notificationas a fallback. Sound alerts supportsay/beep, and custom audio files useafplay. - Added the macOS Tauri sidecar build path, generating
ai-reminder-aarch64-apple-darwinorai-reminder-x86_64-apple-darwinfor the current architecture so packaged macOS builds can find the sidecar correctly. - Added macOS packaging scripts:
npm run dist:mac:appbuilds a double-clickable.app, whilenpm run dist:mac:dmgbuilds a.dmgfor distribution. - Changed
npm run distto pick the output by platform: Windows keeps the portable package flow, while macOS builds the.app. - Defined the packaged macOS
.envlocation as~/.ai-cli-complete-notify/.envand added it to thepathsoutput; Windows portable builds still support.envnext to the exe. - The packaged macOS app now checks
.envat startup: when missing it creates.env.exampleand prompts the user to configure it, including a Finder hint to pressCommand + Shift + .when hidden files are not visible; when present it shows a successful load state. - Fixed "open config file" behavior outside Windows; macOS now uses the system
opencommand. - Fixed the stale frontend sidebar version by injecting the version from
package.jsonat build time instead of hard-coding it. - Updated README / README_zh with macOS build instructions,
.app/.dmgoutput notes, and the reminder that public macOS distribution may require code signing and notarization.
2.6.0
- Fixed premature Codex reminders when Superpowers / parallel subagents are used: Codex Desktop subagent sessions are now detected from
session_metaand their completion/confirm reminders are suppressed, so the reminder is sent only by the parent conversation when the whole turn finishes. - Fixed subagent detection for already-large Codex session files: when Watch attaches mid-session, it now reads the file head for
session_metainstead of relying only on the tail seed window. - Fixed unrelated Codex sessions suppressing each other: completion coordination is now grouped by workspace
cwd, so a long-running turn in one project no longer blocks completion alerts from another project. - Fixed Codex forked-chat replay reminders: copied history in a newly forked session is now treated as seed context only, so the new branch no longer replays completion alerts from the original branch.
- Fixed false Codex failure reminders caused by recoverable TUI background
WARNlines, such as plugin/app-list/tool-suggestion 403 responses that do not stop the current turn. - Added regression tests for multi-session parent/child-agent completion, Codex Desktop subagent metadata including file-head loading, cwd-grouped session coordination, forked-session history replay, and recoverable Codex TUI background warnings.
2.5.0
- Fixed Codex session watch reliability so completion reminders no longer depend only on
task_complete. - Serialized Codex session event processing to avoid missed notifications caused by JSONL event races.
2.4.0
- Desktop popup notifications on Windows no longer steal focus from the current input field. When the reminder appears while you are typing in apps such as WeChat, the caret should stay in the original textbox.
- Improved the notification mode selector in the Hooks panel: the hard-to-read dropdown has been replaced with directly visible mode cards, while the underlying
watch / hooksbehavior remains unchanged.
2.3.0
- Global channel toggles now stay in sync with per-source channel switches: turning a global channel off or back on updates the same channel under every source.
.envdefaults such asSOUND_ENABLED/NOTIFICATION_ENABLEDno longer forcibly override global channel switches already saved insettings.json.- Desktop notification no longer plays the Windows system sound — the Toast notification is now forced silent so it no longer triggers the OS default chime.
- Desktop notification fires in parallel with sound, so both arrive at the same time instead of sound lagging behind.
- Watch mode no longer sends premature notifications mid-task; it now always waits the full quiet period before notifying.
- Added a warning prompt when starting Watch mode without hooks installed, so users know accuracy may be reduced.
- Hook install/uninstall now shows a loading indicator and immediately refreshes the config preview on completion.
- Added "Open config file" button to each hook card and the preview section; clicking it opens the file in the system default editor.
- On startup, the app now checks hook installation status automatically. If any hooks are missing in Hooks mode, a yellow banner appears at the top warning that notifications may not fire at the right time; the banner updates immediately after any install or uninstall action.
2.2.0
- Added
OpenCodeas a fourth source with independent enable/threshold/channel settings. - Added
hooks install --target opencode, which writes a global plugin under~/.config/opencode/plugins/and triggers reminders fromsession.idle/session.error. - OpenCode completion reminders now use event callbacks instead of watch-based guessing.
- The Hooks panel, Test panel, and CLI now fully support
OpenCode, including install, status, and reminder testing. - Tray behavior was refined with dedicated tray icons and more reliable hide-to-tray visibility and window restore behavior.
2.1.0
- Desktop notification popup migrated from HTA (mshta.exe) to PowerShell WPF, completely eliminating the white flash before popup appears.
- Added WPF assembly pre-warming on app startup, pre-loading PresentationFramework and related assemblies in the background to reduce first-popup latency.
- Desktop notifications now fire fully in parallel with Webhook and other channels, removing the previous headstart delay for faster popup response.
- Desktop notification countdown shortened to 3 seconds for less visual interruption.
- Popup UI refined: rounded card with shadow, thin animated progress bar, cleaner and more polished look.
2.0.1
- Major architecture migration from Electron to Tauri 2. Based on the current
dist/ai-cli-complete-notify-2.0.1-portable-win-x64/output, the full portable desktop package is now roughly in the40-50 MBrange, and the zip package is about20 MB. - Desktop UI rebuilt with
React 18 + TypeScript + Tailwind CSS, with the current bilingual settings console and simplified navigation structure. - Node CLI kept intact as a standalone sidecar executable via
pkg, so existingnode ai-reminder.js ...workflows remain compatible. - Build chain streamlined around
Vite + Tauri, with separate frontend, sidecar, portable package, and optional installer outputs. - Desktop runtime adapted for the new stack: tray behavior, close-to-tray flow, packaged sidecar invocation, and startup diagnostics all moved to the Tauri implementation.
- Current integration model clarified in the desktop app: Hooks were added mainly to improve reminder timing accuracy for
Claude CodeandGemini CLI, whileCodexcurrently continues to rely primarily on log watching for completion reminders.
1.5.3
- Webhook delivery now auto-detects
Feishu,DingTalk, andWeCom, and sends the proper payload format for each platform. - Webhook testing became more reliable by validating platform-specific success responses (
code/errcode).
1.5.2
- Codex reminder flow was stabilized so interaction prompts trigger confirm alerts and real task completion triggers completion alerts.
- Confirmation content selection was made deterministic: options first, otherwise the current question or output.
- Fixed prompt text reuse across interaction boundaries to avoid completion alerts inheriting stale confirm content.
- Codex completion detection now prefers explicit
task_completeevents for faster and more stable final reminders. - AI Summary API URL input was upgraded to support base URLs, auto-appended provider suffixes, live preview, and exact-URL override rules.
1.5.0
- Codex completion detection was hardened with pending-state handling, token-count grace, and a final-answer-first strategy to reduce premature alerts.
- Added Codex session locking, idle-session switching guards, and fallback flush behavior before the next user turn to reduce missed or cross-session notifications.
- Added
CODEX_COMPLETION_ONLY=1and disabled confirm alerts by default to keep completion reminders clean. - Improved tray restore behavior, reduced startup white-flash, and refined tray icon rendering.
1.4.3
- Added Watch-mode confirm alerts so Codex interaction prompts and plan-selection turns can notify without keyword matching.
- Added persistent watch logs, quick log opening, and retention-day control.
- Enabled Watch auto-start when the packaged Windows app launches.
- Improved completion timing for
gpt-5.3-codexto avoid premature reminders. - Upgraded desktop notification UX with a better notification window, click-to-return behavior, sound options, and WSL playback support via Windows PowerShell.
- Added
.envcontrol for Feishu card format with.envtaking precedence.
1.3.0
- Added Feishu card webhook support with theme-aware logos.
- Added multi-provider AI Summary, summary testing, and streaming response parsing.
- Added summary-first webhook output with fallback to the original task content.
- Refined several UI details and added watch-log persistence.
1.2.0
- Fixed multi-instance issues when hiding to tray.
- Added more in-app guidance.
- Fixed language switching behavior.
1.1.0
- Fixed Claude Code full-turn completion detection so subtasks no longer trigger premature alerts.
- Added adaptive debounce based on message type.
1.0.0
- Initial public release.
🤝 Contributing
Issues and Pull Requests are welcome!
🔗 Links
📈 Project Stats
Enjoy smart notifications and let AI work for you! 🎉