
Gemini CLI Hooks
https://github.com/shanraisshan/gemini-cli-hooks- Category
- Developer Tools
- Rank
- No. 2034Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- shanraisshan
- GitHub
- 11 stars
- Date
About
Gemini CLI hooks that add voice notifications on each hook event.
What it does
It turns Gemini CLI lifecycle signals into audible status cues. A Python handler reads each event as JSON, selects its matching sound, and gives Git commits a specialized cue.
Why it's ranked here
The appeal is focused and practical: broad event coverage, cross-platform playback, per-event controls, and quiet failure behavior. Manual project setup and default event logging keep it from being a frictionless choice.
What's good
It covers session, agent, model, tool, compression, and notification stages with separate sound mappings. Local settings can override defaults or silence individual events. Playback adapts to built-in macOS and Windows facilities or several common Linux players. Sound errors do not interrupt Gemini CLI.
Tradeoffs
Installation requires copying repository content into each project and merging settings by hand. Python 3 is mandatory, while Linux also needs a supported audio player. Logging is enabled unless disabled; it removes the working directory and transcript path but otherwise copies received event data. Unsupported systems receive no playback.
How to use it well
Use it when long or parallel Gemini CLI sessions make visual monitoring inconvenient. Keep only the lifecycle cues that help you switch attention, and disable logging if event records are unnecessary. It does not provide workflow automation, analytics, or general desktop notifications.
Technical notes+
.gemini/settings.json registers command hooks with five-second timeouts for all eleven Gemini events and invokes .gemini/hooks/scripts/hooks.py. The handler reads JSON from stdin, logs through log_hook_data, checks per-event configuration through is_hook_disabled, and resolves audio through get_sound_name and HOOK_SOUND_MAP. BASH_PATTERNS detects git commit during shell-tool events. play_sound rejects traversal-like sound names, prefers WAV before MP3 on Unix-like systems, uses detached subprocesses there, and uses winsound synchronously on Windows. Platform-specific setup is documented in install/README-mac.md, install/README-linux.md, and install/README-windows.md.
Observed
- License
- MIT License
- Primary language
- Python
- Interface
- Gemini CLI command-hook integration receiving JSON on standard input
- Install surface
- Manual project-local folder copy plus settings merge
- Platform support
- macOS, Linux, and Windows
- Runtime requirements
- Python 3; Linux additionally requires paplay, aplay, ffplay, or mpg123
Read from README.md, .codex/hooks/scripts/hooks.py, .claude/hooks/scripts/hooks.py, .gemini/hooks/scripts/hooks.py, LICENSE, .codex/hooks.json, .github/FUNDING.yml, .claude/settings.json, .gemini/settings.json, install/README-mac.md, install/README-linux.md, install/README-windows.md, install/settings-mac.json, install/settings-linux.json, install/settings-windows.json.
What it can do
Play voice notification on pre-commit hook
Git pre-commit event → Audio notification
Play voice notification on post-commit hook
Git post-commit event → Audio notification
Play voice notification on pre-push hook
Git pre-push event → Audio notification
Play voice notification on post-push hook
Git post-push event → Audio notification
Play voice notification on hook failure
Failed Git hook event → Audio notification
Install Git hooks with voice notifications
Git repository → Configured Git hooks with audio alerts
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.