PM Dashboard
Overview
Section titled “Overview”The PM (Project Manager) dashboard gives you a bird’s-eye view of all your projects. It discovers projects from active sessions, captures state snapshots, detects changes, and optionally invokes a Claude-powered PM agent for intelligent briefings. Press P to toggle the PM view.
Quick Start
Section titled “Quick Start”- Have one or more tmux sessions with Claude Code running in project directories
- Press
Pto open the PM view - Browse projects with
↑/↓, expand withSpace, jump to sessions withEnter - Press
ito trigger an on-demand PM briefing (requires Claude CLI) - Press
PorEscto return to the session list
Three-Zone Layout
Section titled “Three-Zone Layout”The PM view divides the terminal into three zones:
Zone 1: Briefing (~30% height)
Section titled “Zone 1: Briefing (~30% height)”Shows AI-generated project analysis when a PM agent has run:
- Summary: Overall status across all projects
- Attention items: High-priority issues to act on
- Breadcrumbs: Context notes Claude leaves for future invocations
Displays “No PM briefing yet” until the first PM agent invocation. Shows “Refreshing…” with a loading indicator during updates.
Zone 2: Projects (~30% height)
Section titled “Zone 2: Projects (~30% height)”Lists all active projects with:
| Column | Content |
|---|---|
| Status icon | Highest-priority session status |
| Project name | Directory basename (bold) |
| PBI | Current PBI ID and title |
| Progress | Task completion (e.g., 3/5 tasks) |
| Sessions | Number of active sessions |
| Activity | Time since last activity |
- Sorted by attention priority (permission > error > waiting > working > idle), then by recency
- Expandable: Press
Spaceto show task breakdown, branch, commits, and PR info - Actionable: Press
Enterto jump to filtered session list for that project
Zone 3: Events (~40% height)
Section titled “Zone 3: Events (~40% height)”Chronological event log showing project activity:
| Event Type | Color | Example |
|---|---|---|
task_completed | Green | Task 38-3 completed |
task_started | Green | Task 38-1 started |
commit | Cyan | 3 new commits on main |
branch_created | Cyan | Branch feature/pbi-38 created |
pr_created | Cyan | PR #42 opened |
session_status_change | Yellow | Status changed to permission |
pbi_completed | Green | All tasks completed |
Events are pruned after 24 hours.
PM View Keybindings
Section titled “PM View Keybindings”| Key | Action |
|---|---|
P | Toggle PM view on/off |
Tab | Switch focus between projects and events |
↑/↓ | Navigate projects (zone 2) or scroll events (zone 3) |
Enter | Jump to filtered sessions for selected project |
Space | Expand/collapse project row |
PgUp/PgDn | Page scroll events |
g/G | Jump to top/bottom of events |
i | Trigger on-demand PM briefing |
r | Manual refresh (invalidate caches) |
Esc/P | Close PM view |
How It Works
Section titled “How It Works”Project Discovery
Section titled “Project Discovery”Projects are discovered from active session working directories. Multiple sessions in the same directory are grouped as one project. The project name is derived from the directory basename.
Snapshot Pipeline
Section titled “Snapshot Pipeline”On each PM polling cycle (every 5 minutes, or on-demand):
- Discover projects from session CWDs
- Capture snapshot per project: git state, task counts, session status
- Diff against previous snapshot to detect changes
- Emit events for detected changes
- Append events to
~/.config/navi/pm/events.jsonl
Current PBI Detection
Section titled “Current PBI Detection”The PM uses a multi-strategy resolver to determine which PBI each project is working on:
| Priority | Strategy | Source |
|---|---|---|
| 1 | Provider hint | current_pbi_id in provider output |
| 2 | Session metadata | current_pbi field in session JSON |
| 3 | Branch pattern | Regex match on branch name (e.g., feature/pbi-54-...) |
| 4 | Status heuristic | Prefer InProgress > Agreed > InReview > Proposed > Done |
| 5 | First group | Legacy fallback |
The resolution source is recorded for observability (visible in expanded project rows).
Default Branch Patterns
Section titled “Default Branch Patterns”feature/pbi-(\d+) # matches feature/pbi-54-session-scopedpbi-(\d+) # matches pbi-54 or pbi-54/desc(\d+)- # matches 54-session-scopedPM Agent
Section titled “PM Agent”The optional PM agent uses Claude CLI to synthesize events into human-readable briefings.
Invocation
Section titled “Invocation”The agent runs claude -p (pipe mode) with:
- Structured JSON output via
--json-schema - Read/Edit/Write tools for memory management
- Sonnet model for cost efficiency
- 120-second timeout
Trigger Events
Section titled “Trigger Events”The agent is invoked when specific events occur:
| Event | Triggers Agent |
|---|---|
task_completed | Yes |
commit | Yes |
session_status_change | No (accumulated) |
branch_created | No (accumulated) |
pr_created | No (accumulated) |
On-demand (i key) | Yes |
Non-triggering events accumulate and are included in the next invocation’s inbox.
Memory System
Section titled “Memory System”Claude maintains context across invocations via a file-based memory system at ~/.config/navi/pm/:
~/.config/navi/pm/├── system-prompt.md # Claude's instructions├── output-schema.json # JSON schema for output├── last-output.json # Cached briefing for fallback├── memory/│ ├── short-term.md # Recent context (~2000 tokens)│ ├── long-term.md # Historical patterns (~3000 tokens)│ └── projects/│ ├── project-a.md # Per-project memory (~1000 tokens)│ └── project-b.md└── events.jsonl # Event logClaude reads and updates memory files during each invocation, allowing it to:
- Avoid repeating observations
- Track long-term patterns
- Build per-project context
- Notice escalations or improvements
Error Recovery
Section titled “Error Recovery”| Scenario | Behavior |
|---|---|
| Non-zero exit | Fall back to cached briefing, mark as stale |
| Parse failure | Fall back to cached briefing, mark as stale |
| Rate limiting | Exponential backoff (1s, 2s, 4s), up to 3 retries |
| First-run failure | Returns error (no cache to fall back to) |
Stale briefings are displayed with a visual indicator so users know the data may be outdated.
Responsive Layout
Section titled “Responsive Layout”The PM view adapts to terminal size:
| Terminal Height | Behavior |
|---|---|
| Normal (30+ rows) | Briefing 30%, Projects 30%, Events 40% |
| Short (15-29 rows) | Briefing 1 line, remaining split 40/60 |
| Very short (<15 rows) | Briefing hidden, Projects/Events 40/60 |
| Terminal Width | Behavior |
|---|---|
| 120+ columns | All columns visible |
| 100-119 columns | Hide last activity column |
| 80-99 columns | Hide session count, truncate names |
| <80 columns | ”Terminal too narrow” message |
Configuration
Section titled “Configuration”The PM system stores its data at ~/.config/navi/pm/. No manual configuration is required — the directory structure is created automatically on first use.
The PM agent requires the Claude CLI to be installed and authenticated. Without it, the PM view still works for project snapshots and events — only the briefing zone shows a placeholder.
Related Features
Section titled “Related Features”- Session Monitoring — Session data that feeds the PM engine
- Task View — Task provider data used for PBI detection and progress
- Git Integration — Git state included in project snapshots