Skip to content

feat(notify-user-input): add macOS desktop notifications plugin - #429

Merged
baleen37 merged 6 commits into
mainfrom
feat/notify-ghostty
Feb 6, 2026
Merged

feat(notify-user-input): add macOS desktop notifications plugin#429
baleen37 merged 6 commits into
mainfrom
feat/notify-ghostty

Conversation

@baleen37

@baleen37 baleen37 commented Feb 6, 2026

Copy link
Copy Markdown
Owner

Summary

Add notify-user-input plugin that sends macOS desktop notifications when Claude Code asks for user input via the AskUserQuestion tool.

What's Included

  • plugin.json: Plugin manifest with metadata (v5.2.0)
  • hooks.json: PreToolUse hook configuration for AskUserQuestion matcher
  • ask-user-question.sh: Hook script that:
    • Extracts question text from PreToolUse JSON input
    • Truncates to 100 characters if needed
    • Sends macOS notification with "Glass" sound
    • Handles errors gracefully
  • README.md: Brief documentation
  • marketplace.json: Added plugin entry

Testing

  • Plugin structure validated with claude plugin validate
  • Hook script tested with manual JSON input
  • Successfully installed from local marketplace

Files Changed

  • plugins/notify-user-input/.claude-plugin/plugin.json (new)
  • plugins/notify-user-input/hooks/hooks.json (new)
  • plugins/notify-user-input/hooks/ask-user-question.sh (new, executable)
  • plugins/notify-user-input/README.md (new)
  • .claude-plugin/marketplace.json (modified)

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • New "notify-user-input" plugin available in the marketplace. Delivers macOS desktop notifications when Claude Code requests user input. Version 5.2.0, categorized as productivity with notification and desktop support.

baleen37 and others added 6 commits February 6, 2026 13:31
Add the plugin.json manifest file with:
- Plugin name: notify-user-input
- Version: 5.2.0 (matches current release)
- Description: macOS notification when Claude waits for user input
- Author: jito <git@baleen.me>

The semantic-release config will automatically synchronize this version
with marketplace.json during releases.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…serQuestion

Defines the PreToolUse hook configuration that triggers when Claude invokes
the AskUserQuestion tool. The hook will execute the ask-user-question.sh script
to send a macOS notification.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The $schema path was ../../schemas/hooks-schema.json which incorrectly
pointed to plugins/schemas/ (nonexistent). Corrected to
../../../schemas/hooks-schema.json to properly reference the root
schemas/ directory.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Create the PreToolUse hook script that sends macOS notifications
when Claude invokes the AskUserQuestion tool.

Features:
- Reads JSON input from stdin
- Extracts tool_name and questions using jq
- Filters for AskUserQuestion only
- Truncates long questions to 100 characters
- Sends macOS notification with Glass sound
- Silently ignores errors (notification failure is non-blocking)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add basic README documentation for the notify-user-input plugin.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add notify-user-input plugin to the marketplace manifest.
Inserted alphabetically between 'me' and 'ralph-loop'.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Feb 6, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

This PR adds a new "notify-user-input" plugin to the marketplace that sends macOS desktop notifications when Claude Code requests user input. The addition includes plugin metadata, documentation, and hook scripts that integrate with the plugin system.

Changes

Cohort / File(s) Summary
Marketplace Registration
.claude-plugin/marketplace.json
Adds new plugin entry to marketplace with metadata for the notify-user-input plugin (version 5.2.0, category: productivity, tags: notification, macOS, desktop, hooks).
Plugin Configuration
plugins/notify-user-input/.claude-plugin/plugin.json
Plugin manifest metadata defining name, version, description, and author information.
Documentation
plugins/notify-user-input/README.md
Plugin documentation with description, installation instructions, and basic usage guidance.
Hook Implementation
plugins/notify-user-input/hooks/ask-user-question.sh, plugins/notify-user-input/hooks/hooks.json
Bash script that extracts user input questions from JSON, truncates to 100 characters, and triggers macOS notifications via osascript. Hook configuration maps PreToolUse event for AskUserQuestion tool to script execution.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

A plugin so nimble, it hops through the hooks,
When Claude asks questions, notifications it cooks,
On macOS desktops, they gently appear,
"The user must answer!" the notifications cheer,
🐰✨ A notifier's joy, no input's unclear!

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/notify-ghostty

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@baleen37
baleen37 enabled auto-merge February 6, 2026 05:16
@baleen37
baleen37 merged commit b279e4b into main Feb 6, 2026
4 of 5 checks passed
@baleen37
baleen37 deleted the feat/notify-ghostty branch February 6, 2026 05:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant