Back to the catalog

gemini-warp

Warp terminal integration for Gemini CLI - native notifications and session status

Open source Open in the app JSON README (API)

About

Warp terminal integration for Gemini CLI - native notifications and session status

Details

Kind
Plugins
Topic
AI, RAG & memory
Publisher
warpdotdev
Origin
gemini
Category
ferramentas
Version
1.0.0
Stars
7
Forks
2
Last push
2026-04-15T20:25:01Z
Repository state
ativo
Language
Shell
License
MIT
Added
2026-08-30 14:13:39
Updated
2026-08-30 14:13:39
Origin id
warpdotdev/gemini-cli-warp

README

# Gemini CLI + Warp

Official [Warp](https://warp.dev) terminal integration for [Gemini CLI](https://github.com/google-gemini/gemini-cli).

## Features

### ๐Ÿ”” Native Notifications

Get native Warp notifications when Gemini CLI:
- **Completes a task** โ€” with a summary showing your prompt and Gemini's response
- **Needs your input** โ€” when Gemini has been idle and is waiting for you
- **Requests permission** โ€” when Gemini wants to run a tool and needs your approval

Notifications appear in Warp's notification center and as system notifications, so you can context-switch while Gemini works and get alerted when attention is needed.

### ๐Ÿ“ก Session Status

The extension keeps Warp informed of Gemini's current state by emitting structured events on every session transition:
- **Prompt submitted** โ€” you sent a prompt, Gemini is working
- **Tool completed** โ€” a tool call finished, Gemini is back to running

This powers Warp's inline status indicators for Gemini CLI sessions.

## Installation

```bash
gemini extensions install <github-url-or-local-path>
```

For local development:

```bash
gemini extensions link ~/gemini-warp
```

> โš ๏ธ **Important**: After installing, **restart Gemini CLI** for the extension to activate.

Once restarted, notifications will appear automatically.

## Requirements

- [Warp terminal](https://warp.dev) (macOS, Linux, or Windows)
- [Gemini CLI](https://github.com/google-gemini/gemini-cli) v0.26.0+
- `jq` for JSON parsing (install via `brew install jq` or your package manager)

## How It Works

The extension communicates with Warp via OSC 777 escape sequences. Each hook script builds a structured JSON payload (via `build-payload.sh`) and sends it to `warp://cli-agent`, where Warp parses it to drive notifications and session UI.

Payloads include a protocol version negotiated between the extension and Warp (`min(plugin_version, warp_version)`), the session ID, working directory, and event-specific fields.

The extension registers five hooks:
- **SessionStart** โ€” emits the extension version on startup
- **AfterAgent** โ€” fires when Gemini finishes a turn, sends a task-complete notification with your prompt and Gemini's response
- **Notification** โ€” handles both idle notifications and tool-permission requests (Gemini merges these into one event, dispatched by `notification_type`)
- **BeforeAgent** โ€” fires when you submit a prompt, signaling the session is active again
- **AfterTool** โ€” fires when a tool call completes, signaling the session is no longer blocked

## Configuration

Notifications work out of the box. To customize Warp's notification behavior (sounds, system notifications, etc.), see [Warp's notification settings](https://docs.warp.dev/features/notifications).

## Uninstall

```bash
gemini extensions uninstall warp
```

## Versioning

The extension version in `gemini-extension.json` is checked by the Warp client to detect outdated installations.
When bumping the version here, also update `MINIMUM_PLUGIN_VERSION` in the Warp client.

## License

MIT License โ€” see [LICENSE](LICENSE) for details.

More