Features
Explore Dispatch features and workflows.
Full-Text Search
Two-tier search. Quick mode searches session summaries, branches, repositories, and directories instantly as you type. Deep mode kicks in after 300ms and extends into conversation messages, checkpoint content, file paths, and external references — commits, PRs, and issues.
- 128-character input limit
- "Searching…" spinner while deep search runs
- Result count displayed in the header
- Quick results appear immediately; deep results stream in
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
Sorting
Six sort fields cycled with s: updated, created, turns, name, folder, frecency. 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
Grouping Modes
Six pivot modes cycled with Tab: flat list, folder, repository, branch, date, host. 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
Time Range Filtering
Four ranges via keys 1–4: 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"
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), external references (up to 5), and related sessions (up to 5). Sessions with aplan.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)
- Alt+1–Alt+5 or click a related session to jump to it
- y to copy selected preview text to clipboard
Preview Position
Cycle the preview pane through four positions with the Pkey: 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
Four launch modes: in-place (replaces the TUI), new tab, new window, and split pane (Windows Terminal only). Resume interrupted sessions with 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
wtcommands 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 splitorientation 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.
Project Quick Start
Add absolute directories to project_roots and Dispatch scans them for git repositories. Repos without a recent Copilot session appear as New session rows in the session list.
- Enter starts Copilot in the repo root
- Uses the same launch mode, shell, terminal, agent, model, and yolo settings as existing sessions
- Scanning is asynchronous and skipped when no project roots are configured
Quick-start rows are generated locally from configured roots and are hidden automatically once that repo has a recent session.
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
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 15+ 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)
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
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 SDKanalyze_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_completionfor 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 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 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
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
~
Settings Panel
, (comma) to open. Twelve 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), Resume Session Command (text with {sessionId} placeholder), Theme (selector), Crash Recovery (boolean toggle), Preview Position (selector: right/bottom/left/top), and Excluded Words (text, comma-separated).
- Enter to edit or toggle a field
- Agent and Model fields dim when Resume Session Command is set
- Changes saved automatically on Esc
Word Filtering
Hide sessions whose name or conversation content contains specific words. Configure via the Settings panel (,) in the "Excluded Words" field. Enter a comma-separated list of words; matching is case-insensitive.
- Matches against session summary (the name shown in the list)
- Matches against user messages in conversation turns
- Case-insensitive: "MANDATORY" matches "mandatory", "Mandatory", etc.
- Multiple words: each word filters independently (OR logic)
- Persisted to config, applied on every session load
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
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
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 (opens in a new tab)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
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.
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"
Markdown Export
Press X to export the selected session (or all selected sessions) as a structured Markdown document. Exports include session metadata, full conversation history, checkpoints, referenced files, and external refs. Files are saved to ~/.config/dispatch/exports/.
- One Markdown file per session
- Multi-select support — export many at once with Space + X
- Status bar confirmation shows the exported file path
- Also available via the command palette (:)
Export creates self-contained Markdown suitable for archiving, sharing, or feeding into other tools. Secrets are redacted if redaction is enabled.
Git Workspace Badges
Colored status indicators appear next to each session based on the Git state of its working directory. Dispatch runs git status in the background and updates badges as results arrive.
- Dirty (yellow ●) — tracked files have uncommitted changes
- Untracked (blue +) — new untracked files present
- Ahead (green ↑) — local branch ahead of upstream
- Behind (cyan ↓) — local branch behind upstream
- Missing (red ✗) — session directory no longer exists
- Filter with ! → "Git changes" to show only dirty/untracked/ahead/behind sessions
Git Status Overlay
Press i on any session to see the full Git status of the folder it is mapped to, without leaving the TUI. Git commands run under a bounded timeout so the interface never blocks.
- Current branch and upstream ref
- Push/pull stats — commits ahead to push and behind to pull
- Working-tree counts — staged, modified, untracked, deleted, and conflicts
- A scrollable changed-file list with status codes
- c copies a plain-text summary; Esc closes the overlay
The same push/pull stats also appear inline on each session row and in the preview pane's Git section.
Search Tokens
Type structured filters directly in the search bar for precise results. Tokens are parsed as you type and applied alongside free-text search.
repo:name— filter by Git repositorybranch:name— filter by Git branchfolder:path— filter by working directoryhost:name— filter by machine hostnamestatus:waiting— filter by attention statushas:plan— only sessions with a plan.md fileis:favorite— only starred sessionsis:hidden— show hidden sessions
Preview Secret Redaction
Automatically masks sensitive values in the preview pane. Toggle via the "Redact Secrets" option in the settings panel (,). Redacted content is never modified on disk — only the display is masked.
- Bearer tokens →
Bearer [redacted] - GitHub PATs (
ghp_,gho_, etc.) →[redacted] - Azure connection strings →
AccountKey=[redacted] - .env secrets →
API_KEY=[redacted] - Tokens must be at least 20 characters long to avoid false positives
Session Notes
Press m to attach a personal note to any session. Notes appear as a styled indicator in the session list and are displayed at the top of the preview pane. Stored locally in your config — never sent to the cloud.
- m to add or edit a note (up to 200 characters)
- Note indicator (📝) in session list for annotated sessions
- Full note text shown at the top of the preview pane
- Enter to save, Esc to cancel
- Clear a note by saving an empty value
Named Views
Save your current filter configuration as a named preset and switch between presets with V. Each view stores the time range, sort field, sort order, pivot mode, and directory exclusions.
- V to open the view picker
- Select a view to instantly apply its filters
- "Default" view always available (resets all filters)
- Views persist in config and survive restarts
Open Touched Files
Press F to open a file picker showing all files the selected session interacted with (edits, creates, views). Select a file to open it in your system editor.
- Files listed with their operation type (edit, create, view)
- Navigate with ↑/↓, open with Enter
- Warning shown if a file no longer exists on disk
- Esc to close without opening
Activity Timeline
Press T to toggle a chronological view of all session events in the preview pane. The timeline merges turns, checkpoints, file operations, and external references into a single ordered stream.
- Turns show timestamps and message previews
- Checkpoints displayed with their titles
- File operations with tool type (edit/create/view)
- External references: commits, PRs, issues
- Scrollable with PgUp/PgDn and mouse wheel
Compare Sessions
Select two sessions (use Space to select) then press Dto see them side-by-side. The comparison shows metadata differences, file diffs, and reference variations with diff highlighting.
- Metadata comparison: directory, branch, timestamps, turn counts
- File diff: shows files unique to each session
- Reference diff: commits, PRs, issues unique to each side
- Scrollable with ↑/↓
- Esc to close
Command Palette
Press : (colon) to open a filterable overlay listing every available command with its keyboard shortcut. Type to filter, then pressEnter to execute.
- All commands accessible from one place
- Fuzzy filter by command name or description
- Shows keyboard shortcut for each command
- Disabled commands are dimmed (e.g., no session selected)
- Esc to close without executing
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.