Back to the catalog

gemini-notifier

System desktop notifications for Gemini CLI agent events.

Open source Open in the app JSON README (API)

About

System desktop notifications for Gemini CLI agent events.

Details

Kind
Plugins
Topic
AI, RAG & memory
Publisher
thoreinstein
Origin
gemini
Category
ferramentas
Version
1.1.0
Stars
25
Forks
5
Last push
2026-05-26T10:49:12Z
Repository state
ativo
Language
JavaScript
License
NOASSERTION
Added
2026-08-30 14:13:39
Updated
2026-08-30 14:13:39
Origin id
thoreinstein/gemini-notifier

README

# Gemini Notifier Extension

A Gemini CLI extension that provides desktop system notifications when the agent requires attention (e.g., waiting for tool permissions).

## Features

- **Native Terminal Notifications**: Supports modern terminals (Ghostty, iTerm2, Kitty, VSCode) via OSC escape codes.
- **OS Fallback**: Falls back to system-level notifications (`osascript` on macOS, `notify-send` on Linux) if the terminal is not supported.
- **Zero Config**: Works out of the box with the Gemini CLI `Notification` hook.

## Supported Environments

### Terminals (Native Integration)
The extension attempts to send native terminal notifications (OSC 9) for the following:
- Ghostty
- iTerm2
- Kitty
- VS Code Terminal
- Apple Terminal

### Operating Systems (Fallback)
If the terminal is not detected or supported, the extension attempts to use OS utilities:

- **Android (Termux)**: Uses `termux-notification` (Requires `termux-api` package).
- **macOS**: Uses `osascript` (built-in).
- **Linux**: Uses `notify-send`.
  - **Requirement**: Ensure `libnotify-bin` (Debian/Ubuntu) or `libnotify` (Arch/Fedora) is installed.
  - Test with: `notify-send "Test" "Message"`

## Installation

This extension is typically installed via the Gemini CLI extensions manager.

```bash
gemini extensions install https://github.com/thoreinstein/gemini-notifier
# OR linked locally
gemini extensions link .
```

## How it Works

1. The extension registers a **Notification** hook with the Gemini CLI.
2. When the CLI emits a `ToolPermission` event (Agent waiting for user), the hook triggers.
3. The script (`src/notify.js`) checks your `TERM_PROGRAM` environment variable.
4. If a supported terminal is found, it sends an escape code to stdout.
5. If not, it attempts to spawn a system notification process (`osascript` or `notify-send`).

More