Installation
Prerequisites
Section titled “Prerequisites”- Go 1.25+ (for building from source)
- tmux (required for session management)
- jq (optional, for automatic hook configuration merging)
- gh CLI (optional, for GitHub PR detection and the
github-issuestask provider)
Quick Install
Section titled “Quick Install”Clone the repository and run the install script:
git clone https://github.com/stwalsh4118/navi.gitcd navi./install.shThe install script will:
- Create
~/.claude-sessions/and~/.claude-sessions/hooks/ - Copy hook scripts (
notify.sh,tool-tracker.sh) with execute permissions - Merge hook configuration into
~/.claude/settings.json - Build the
navibinary
If jq is not available, the script will save the hook configuration for manual merging and provide instructions.
Building Manually
Section titled “Building Manually”go build -o navi ./cmd/naviMove the binary to a directory in your $PATH:
mv navi ~/.local/bin/Hook Setup
Section titled “Hook Setup”Navi relies on Claude Code hooks to receive status updates. The hooks are configured in ~/.claude/settings.json and fire shell scripts that write session status JSON files.
Hook Events
Section titled “Hook Events”| Event | Purpose |
|---|---|
UserPromptSubmit | Marks session as working |
Stop | Marks session as done |
PermissionRequest | Marks session as needing approval |
SessionEnd | Marks session as offline |
PostToolUse | Clears stale permission status |
SubagentStart | Tracks teammate agent start |
SubagentStop | Tracks teammate agent stop |
TeammateIdle | Tracks teammate idle state |
TaskCompleted | Tracks task completion |
Manual Hook Configuration
Section titled “Manual Hook Configuration”If automatic merging failed, add the hook arrays from hooks/config.json to your ~/.claude/settings.json:
{ "hooks": { "UserPromptSubmit": [ { "type": "command", "command": "~/.claude-sessions/hooks/notify.sh working" } ], "Stop": [ { "type": "command", "command": "~/.claude-sessions/hooks/notify.sh done" } ], "PermissionRequest": [ { "type": "command", "command": "~/.claude-sessions/hooks/notify.sh permission" } ] }}See hooks/config.json in the repository for the complete configuration.
First Run
Section titled “First Run”- Start one or more Claude Code sessions inside tmux
- Run
navifrom any terminal - Sessions will appear as they send status updates via hooks
- Use
j/kto navigate,Enterto attach to a session