Session Observer
The session observer watches your Claude sessions in real-time — tracking what each one is doing, logging progress, and suggesting next steps when a session goes idle. It runs per-session, with zero-cost pattern matching for common events and LLM-powered analysis for deeper context.
How it works
Section titled “How it works”Each open session gets its own observer that operates in two modes:
Monitor mode runs while a session is actively working. Every 15 seconds, it reads the terminal screen and updates the session’s notebook with the current goal and progress notes. The LLM can only use update_goal and log_progress tools — it cannot make suggestions while you’re working.
Suggest mode fires once after a session goes idle (2-second debounce). The LLM analyzes the final state and suggests what to do next.
Pattern matching (zero LLM cost)
Section titled “Pattern matching (zero LLM cost)”Before calling the LLM, the observer runs regex-based pattern detectors on every status change. These detect:
- Test results — Jest, Vitest, pytest, Mocha pass/fail counts
- Git commits — commit hashes and messages
- Error stack traces — file, line, and error message
- Build output — Vite, TypeScript, Webpack success/failure
Pattern-detected events are logged directly to the notebook as notes — no API call needed.
The notebook
Section titled “The notebook”Each session maintains a notebook — a lightweight summary of what the observer has seen:
| Field | Description |
|---|---|
goal | What the session is working toward |
notes | Timestamped log of key events (last 20 kept) |
status | active, idle, or suggesting |
suggestion | The observer’s recommended next step (if any) |
Notebooks are persisted at ~/.multi-claude/notebooks/ and survive app restarts. They’re also broadcast to the UI in real-time via the control WebSocket.
SessionInfoBar
Section titled “SessionInfoBar”Each terminal displays a SessionInfoBar at the bottom — a compact bar that shows the observer’s current state for that session.
The bar has several modes:
- Idle — shows the session’s current activity or goal
- Suggest — displays the observer’s suggestion with accept/dismiss buttons
- Ask user — highlights when the observer needs your input
- Complete — shows a completion summary
Click the bar to expand a peek drawer showing the full goal, recent notes, and suggestion reasoning.
Autopilot
Section titled “Autopilot”Toggle autopilot to let the observer automatically send its suggestions to the session without waiting for approval. Useful for long-running tasks where you trust the observer’s judgment.
- Add your Anthropic API key in Settings > API Keys
- Enable the observer toggle in Settings
- The observer starts automatically for new sessions
The observer requires an ANTHROPIC_API_KEY — it makes its own LLM calls separate from Claude Code’s.
Voice integration
Section titled “Voice integration”When the observer is active, its notebooks are fed to the voice assistant as additional context. This means you can ask the voice assistant about any session’s progress without switching tabs.