Directory Filtering

Overlay panel showing a hierarchical tree of all session directories. Toggle individual folders or entire parent groups. Applied exclusions persist to configuration.

  • Space to toggle a directory on or off
  • Space on a parent toggles all children
  • / to collapse and expand nodes
  • Enter to apply, Esc to cancel
Filter panel showing hierarchical directory tree with toggles
Filter panel with directory tree

Sorting

Five sort fields cycled with s: updated, folder, name, created, turns. Direction toggled with S (Shift+S). The active sort field and direction are shown in the header.

  • Descending by default
  • Ascending via S toggle
  • Sort applies within groups when a pivot mode is active
Session list sorted by last updated timestamp
Sorted by last updated
Session list sorted alphabetically by folder
Sorted by folder

Grouping Modes

Five pivot modes cycled with Tab: flat list, folder, repository, branch, date. Grouped modes display a tree view with collapsible folder headers showing session counts.

  • All groups start expanded
  • / to collapse and expand groups
  • x to expand or collapse all groups at once
  • Double-click a folder header to launch a new session in that directory
Flat list with no grouping
Flat list
Sessions grouped by working directory
Grouped by folder
Sessions grouped by Git repository
Grouped by repository
Sessions grouped by Git branch
Grouped by branch
Sessions grouped by date
Grouped by date

Time Range Filtering

Four ranges via keys 14: last 1 hour, last 1 day (default), last 7 days, all time. Displayed as selectable badges in the header bar.

  • Clickable badge buttons in the header
  • Active range highlighted with a visual indicator
  • Default range is "last 1 day"
Time range set to last 1 hour
Last 1 hour
Time range set to last 7 days
Last 7 days
Time range set to all time
All time

Preview Panel

Toggle with p. Shows session metadata (created, updated, turn count, working directory), conversation history rendered as chat-style bubbles, checkpoints (up to 5), referenced files (up to 5), and external references (up to 5). Sessions with a plan.md file show a "Plan: Yes" indicator.

  • PgUp / PgDn for keyboard scrolling
  • Mouse wheel scrolling in 3-line increments
  • Scroll indicators: ▲ lines above / ▼ lines below
  • Responsive width: 30–40% of terminal
  • o to toggle conversation sort order (oldest/newest first)
  • c to copy session ID to clipboard (or click the ID row)
  • y to copy selected preview text to clipboard
Preview panel showing session conversation bubbles
Preview with session conversation
Preview panel scrolled to checkpoint details
Scrolled preview showing checkpoint details

Preview Position

Cycle the preview pane through four positions with the P key: right (default), bottom, left, and top. The chosen position is saved to configuration and restored on next launch.

  • Right — preview beside the session list (default)
  • Bottom — preview below the session list
  • Left — preview to the left of the session list
  • Top — preview above the session list

Launch Modes

Five launch modes: in-place (replaces the TUI), new tab, new window, split pane (Windows Terminal only), and resume interrupted (N). The default is configurable via settings. Override per-session with w (window), t (tab), or e (pane).

  • Ctrl+double-click forces a new window
  • Shift+double-click forces a new tab
  • Pane mode supports directional splits: auto, right, down, left, up (see pane direction semantics below)
  • Windows: uses wt commands for Windows Terminal
  • macOS: supports Terminal.app and iTerm2
  • Linux: detects and delegates to the active terminal emulator

Pane Direction Semantics

The pane_direction config value maps to Windows Terminal's -H / -V split-pane flags:

  • down-H — horizontal split (divider runs horizontally, new pane below)
  • up-H — horizontal split (WT controls actual placement)
  • right-V — vertical split (divider runs vertically, new pane right)
  • left-V — vertical split (WT controls actual placement)
  • auto / empty — no flag; Windows Terminal decides automatically

Note: -H / -V control split orientation only. Windows Terminal decides actual pane placement based on available space.

Launch behavior is platform-specific and adapts to the detected terminal. No screenshot — the result is a new Copilot CLI session opening in your configured terminal.

Multi-Session Open

Select multiple sessions with Space, then open them all at once with L. Use Ctrl+click for mouse selection, or Shift+click for range select. Works with folders too — L on a folder opens every session under it.

  • Space toggles selection on the current session (✓ indicator)
  • Shift+/ extends selection in a contiguous range
  • a selects all visible sessions
  • d deselects all
  • L launches all selected sessions, or all in a folder
  • Selection count shown in footer
Session list with multiple sessions selected showing checkmarks
Multi-select with ✓ indicators

Attention Indicators

Colored dots next to each session show real-time AI activity status. Dispatch scans session-state directories for lock files and event logs to determine which sessions need your input, which are actively working, and which have gone quiet.

  • Waiting (purple ●) — AI finished, waiting for your input
  • Active (green ●) — AI is currently working
  • Stale (yellow ●) — running but no activity for 5+ minutes
  • Interrupted (orange ⚡) — session was killed by crash/reboot mid-work
  • Idle (gray ○) — session not running
  • n to jump to next waiting session
  • N to resume all interrupted sessions
  • R to scan work status across sessions with plans
  • ! to open the attention status filter picker (includes "Has plan", "Favorites only", and work status rows)
Attention status filter picker showing waiting, active, stale, interrupted, and idle options
Filter by attention status

Plan Indicator

Sessions that contain a plan.md file display a small dot indicator in the session list. The plan file lives at ~/.copilot/session-state/{session-id}/plan.md and is scanned automatically when sessions load.

  • Dot indicator on sessions with a plan file
  • v to view the rendered plan in the preview pane
  • Filter via the ! status picker "Has plan" row
  • Footer badge shows ! plans when the filter is active
Session list showing plan indicator dots on sessions with plan.md files
Plan indicator dots in session list
Preview pane showing rendered plan.md content
Plan preview pane
Session list filtered to show only sessions with plans
Plan filter active — only sessions with plans shown

Work Status Detection

Dispatch analyzes plan.md files to identify sessions with incomplete planned work. A three-pass scan chain runs automatically: quick plan parsing detects unchecked checkboxes, a full pass extracts task counts, and an optional AI pass uses the Copilot SDK analyze_completion tool for deeper analysis. Sessions display colored dot indicators in the session list so you can spot unfinished work at a glance.

Status Indicators

  • Complete (green ✓) — all planned tasks are done
  • Incomplete (yellow !) — unchecked tasks remain (shows task count, e.g. "2/5 done")
  • Analyzing (magenta ~) — scan in progress

Scan Chain

  • Quick scan — parses plan.md for unchecked checkboxes and pending items
  • Full scan — counts total/done tasks and extracts remaining items
  • AI scan — Copilot SDK analyze_completion for nuanced completion analysis (requires API access)

Features

  • Work status displayed in preview panel metadata (Work: ✓ Complete / ! Incomplete)
  • Filter by work status via the ! status picker (incomplete, complete)
  • Press R to scan work status across all sessions with plans
  • Scans also run automatically on reindex and periodic attention ticks
  • Continuation plans — sessions with remaining items get a "Remaining Work" section auto-appended to their plan.md
Session list showing triangle warning icons for incomplete work and check icons for complete work
Work status indicators in session list
Status picker showing work status filter rows for incomplete and complete sessions
Work status rows in the status picker

Session Hiding

h hides the currently selected session. H (Shift+H) toggles visibility of all hidden sessions. Hidden sessions appear dimmed when visible. The footer shows the hidden count with an eye icon.

  • Per-session persistence — hiding state saved to config
  • Hidden count displayed in footer with 👁 indicator
  • Dimmed styling differentiates hidden from active sessions
Session list with hidden sessions shown dimmed and eye indicator in footer
Hidden sessions shown dimmed with eye indicator

Session Favorites

* stars or unstars the currently selected session. Use the ! status picker "Favorites only" row to filter the list to show only favorited sessions. Starred sessions display a ★ indicator. Favorites are persisted in config as favoriteSessions.

  • Per-session persistence — favorite state saved to config
  • Star indicator (★) on favorited sessions in the list
  • Quick filter to show only starred sessions
Session list with starred favorite sessions showing star indicator
Favorited sessions with star indicator

Tree View Navigation

When grouped (any pivot mode except flat), sessions display under collapsible folder headers. Each header shows the path and session count. Double-click a folder header to launch a new Copilot CLI session in that directory.

  • to collapse, to expand
  • Folder icon changes between open and closed states
  • Home directory paths abbreviated with ~
Collapsed folder groups showing only headers with counts
Collapsed folder groups
Expanded folders revealing individual sessions
Expanded folders showing sessions

Settings Panel

, (comma) to open. Nine editable fields: Yolo Mode (boolean toggle), Agent (text), Model (text), Launch Mode (selector: in-place/tab/window/pane), Pane Direction (selector: auto/right/down/left/up, dimmed when not in pane mode), Terminal (selector), Shell (selector), Custom Command (text with {sessionId} placeholder), and Theme (selector).

  • Enter to edit or toggle a field
  • Agent and Model fields dim when Custom Command is set
  • Changes saved automatically on Esc
Settings panel showing all nine configuration fields
Settings panel with all options
Text field in edit mode with cursor
Editing a text field

Shell Selection

Modal picker shown when multiple shells are detected. The default shell is listed first with a "(default)" label. Navigate with /, select with Enter, cancel with Esc.

  • Auto-detects installed shells: PowerShell, bash, zsh, fish, cmd.exe
  • Default shell marked and listed first
Shell selection modal listing detected shells
Shell selection modal

Themes

Terminal light/dark mode auto-detected by default. Five built-in schemes: Dispatch Dark, Dispatch Light, Campbell, One Half Dark, One Half Light. Custom schemes supported via Windows Terminal JSON format pasted into the schemes config array.

  • Cycled in the settings panel
  • User-defined schemes merged with the built-in list
  • Terminal background detection for automatic selection
Dispatch Dark color scheme
Dispatch Dark theme
Dispatch Light color scheme
Dispatch Light theme
Campbell color scheme from Windows Terminal
Campbell theme

Nerd Font Detection

Dispatch auto-detects whether a Nerd Font is active in your terminal. When detected, the UI uses rich Nerd Font icons for folders, files, sessions, and status indicators. When no Nerd Font is found, it falls back to clean ASCII icons.

  • Automatic detection — no configuration needed
  • Rich icons with Nerd Fonts, ASCII fallback without
  • Works across all platforms and terminals

Install any Nerd Font and set it as your terminal font to enable rich icons.

Help Overlay

? to show. Two-column layout with grouped keyboard shortcuts: Navigation, Search & Filter, View, Time Range, General. A short help bar is always visible in the footer.

  • Grouped by category for quick scanning
  • Persistent help bar in footer shows common shortcuts
Help overlay showing two-column grouped keyboard shortcuts
Help overlay with grouped shortcuts

Mouse Support

Click to select sessions. Double-click to launch. Scroll wheel scrolls whichever pane is under the cursor — the session list or the preview panel. Click header elements (search bar, time range badges, sort indicator, pivot indicator) to interact directly.

  • Ctrl+double-click forces a new window
  • Shift+double-click forces a new tab
  • 300ms double-click debounce
  • Motion tracking enabled for hover states

Mouse interactions mirror keyboard functionality. Every clickable element has an equivalent keyboard shortcut.

Demo Mode

dispatch --demo loads a fake session database for testing and screenshots. Non-destructive — the real session store is untouched. Every screenshot on this site was captured using demo mode.

  • Synthetic sessions with realistic metadata
  • Safe for experimentation — no data modified
  • Used for all documentation screenshots

Run dispatch --demo in any terminal to try it.

CLI Commands

Built-in commands for maintenance, diagnostics, self-update, and help.

  • dispatch update — Update dispatch to the latest release. Downloads the newest binary from GitHub Releases and replaces the current installation in-place.
  • dispatch --help / -h / help — Show usage information with all available flags and environment variables.
  • dispatch --version / -v / version — Print the installed version and exit.
  • dispatch --reindex — Full chronicle reindex via Copilot CLI pseudo-terminal. Rebuilds sessions, turns, checkpoints, files, and refs. Falls back to FTS5 index maintenance if the CLI binary is not found.
  • dispatch --clear-cache — Reset all configuration to defaults.

A background update check runs on every launch and notifies you when a new version is available. All commands run non-interactively and exit immediately. Unknown flags print an error with usage help and exit with code 1.

Loading & Empty States

A loading spinner is shown while sessions are fetched from the database. An empty state message appears when no sessions match the current search query or active filters.

  • Spinner visible on startup during initial database read
  • Empty state differentiates "no results" from "no sessions"
Loading spinner displayed during startup
Loading spinner on startup
Empty state message when no sessions match filters
Empty state with no matching sessions