Skip to content

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.

Each open session gets its own observer that operates in two modes:

Monitor modeWhile session is activeLog progress every 15sidleSuggest modeWhen session goes idleSuggest next steps

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.

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.

Each session maintains a notebook — a lightweight summary of what the observer has seen:

FieldDescription
goalWhat the session is working toward
notesTimestamped log of key events (last 20 kept)
statusactive, idle, or suggesting
suggestionThe 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.

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.

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.

  1. Add your Anthropic API key in Settings > API Keys
  2. Enable the observer toggle in Settings
  3. 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.

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.