# Grove
A terminal UI for managing git worktrees with integrated AI agent notifications.
## Features
- **TUI Dashboard** - Navigate worktrees and notifications with vim-style keys
- **Agent Notifications** - AI agents can report task completion status
- **TMUX Integration** - Popup support for seamless workflow
- **Shell Integration** - Automatic `cd` to selected worktree
## Installation
### From Source
```bash
git clone https://github.com/yourusername/grove.git
cd grove
cargo install --path crates/grove-cli
```
### Shell Integration
Add to your `~/.zshrc`:
```bash
source /path/to/grove/scripts/grove.zsh
```
This enables:
- `grove` - Launch TUI with cd integration
- `grove-popup` - TMUX popup launcher
### TMUX Integration
Add to your `~/.tmux.conf`:
```bash
bind g display-popup -E -w 80% -h 70% -T " grove " "grove popup"
```
Now `prefix + g` opens grove in a popup.
## Usage
### TUI
```bash
grove # Open TUI
grove popup # Open TUI (always outputs path for shell integration)
```
**Keybindings:**
| `j`/`k` | Navigate up/down |
| `Tab` | Switch between Worktrees/Inbox |
| `Enter` | Switch to selected worktree |
| `n` | Create new worktree |
| `d` | Delete worktree |
| `r` | Mark notification as read |
| `a` | Archive notification |
| `?` | Toggle help |
| `q`/`Esc` | Quit |
### CLI Commands
```bash
grove list [--json] # List worktrees
grove new <branch> [-b base] # Create worktree
grove remove <branch> [-f] # Remove worktree
grove switch <branch> # Output worktree path
grove notify send --status success --summary "Done"
grove notify list [--unread] [--json]
grove notify read <id>
grove notify archive <id>
```
## Configuration
Create `~/.config/grove/config.toml`:
```toml
[general]
worktree_dir = ".worktrees"
default_base = "main"
[theme]
selected_bg = "#3b4252"
success = "#a3be8c"
failure = "#bf616a"
warning = "#ebcb8b"
muted = "#4c566a"
highlight = "#88c0d0"
```
## Agent Integration
AI agents can send notifications after completing tasks:
```bash
grove notify send \
--status success \
--summary "Implemented feature X" \
--branch feature/x \
--agent claude-code \
--commit abc1234
```
See [docs/agent-integration.md](docs/agent-integration.md) for details.
## Project Structure
```
grove/
├── crates/
│ ├── grove-core/ # Git operations, config
│ ├── grove-notify/ # Notification system
│ ├── grove-tui/ # Terminal UI
│ └── grove-cli/ # CLI binary
├── scripts/
│ └── grove.zsh # Shell integration
└── docs/
└── agent-integration.md
```
## License
MIT