Dispatch
A terminal UI for browsing and launching GitHub Copilot CLI sessions. Built with Go and Bubble Tea.
Dispatch reads your local Copilot CLI session store and presents every past session in a searchable, sortable, groupable TUI. Full-text search, conversation previews, directory filtering, five built-in themes, and three launch modes — all without leaving the terminal.

Features
- Full-text search — two-tier: quick search (summaries, branches, repos, directories) returns results instantly; deep search (turns, checkpoints, files, refs) kicks in after 300ms
- Directory filtering — hierarchical tree panel for toggling directory exclusion, persisted to config
- Sorting — 5 fields (updated, folder, name, created, turns) with toggleable direction (
s / S)
- Grouping (pivot) modes — flat, folder, repo, branch, date — displayed as collapsible trees with session counts
- Time range filtering — 1 hour, 1 day, 7 days, all (
1–4 keys)
- Preview panel — metadata, chat-style conversation bubbles, checkpoints (up to 5), files (up to 5), refs (up to 5), scroll indicators
- Three launch modes — in-place, new tab, new window with per-session overrides
- Session hiding —
h to hide, H to show hidden, persistent state
- Settings panel —
, to open. 8 fields: Yolo Mode, Agent, Model, Launch Mode, Terminal, Shell, Custom Command, Theme
- Shell picker — auto-detects installed shells, modal picker when multiple available
- 5 built-in themes — Dispatch Dark, Dispatch Light, Campbell, One Half Dark, One Half Light + custom via Windows Terminal JSON
- Help overlay —
? for two-column grouped keyboard shortcuts
- Mouse support — click, double-click, Ctrl+double-click (window), Shift+double-click (tab), pane-aware scroll wheel
- Nerd Font detection — auto-detects Nerd Fonts and uses rich icons, falls back to ASCII
- Windows Terminal theme detection — inherits the active terminal color scheme
- Demo mode —
dispatch --demo with synthetic data for experimentation
- Maintenance —
--reindex (full chronicle reindex via Copilot CLI PTY), --clear-cache (reset config)
- Cross-platform — Windows (amd64/arm64), macOS (amd64/arm64), Linux (amd64/arm64)
Feature Highlights
| Search & Preview |
Grouping & Filtering |
 |
 |
 |
 |
| Settings |
Help Overlay |
 |
 |
Requirements
- GitHub Copilot CLI installed and used at least once (so the session store exists)
- Go 1.26+ — only required when building from source; binary releases have no dependencies
Installation
Shell script (Linux / macOS)
curl -fsSL https://raw.githubusercontent.com/jongio/dispatch/main/install.sh | sh
PowerShell (Windows)
irm https://raw.githubusercontent.com/jongio/dispatch/main/install.ps1 | iex
From source
Requires Go 1.26+:
go install github.com/jongio/dispatch/cmd/dispatch@latest
Or clone and build locally:
git clone https://github.com/jongio/dispatch.git
cd dispatch
go install ./cmd/dispatch/
The installer also creates a disp alias automatically.
Usage
dispatch
Example Workflow
- Run
dispatch (or disp) in your terminal
- Press
/ to search for previous sessions — try a keyword like "auth" or "refactor"
- Navigate with arrow keys or
j/k
- Press
p to toggle the preview pane and read the conversation
- Press
Enter to resume the selected session (opens in a new tab by default)
- Use
Tab to cycle grouping modes (folder → repo → branch → date → flat)
- Press
s to cycle sort fields, S to flip direction
- Press
, to open settings — change theme, launch mode, model, and more
Key Bindings
Navigation
| Key |
Action |
↑ / k |
Move up |
↓ / j |
Move down |
← |
Collapse group |
→ |
Expand group |
Launch & Session
| Key |
Action |
Enter |
Launch selected session (or toggle folder) |
w |
Launch in new window |
t |
Launch in new tab |
h |
Hide/unhide current session |
H |
Toggle visibility of hidden sessions |
Search & Filter
| Key |
Action |
/ |
Focus search bar |
Esc |
Clear search / close overlay |
f |
Open filter panel |
View & Sorting
| Key |
Action |
s |
Cycle sort field |
S |
Toggle sort direction |
Tab |
Cycle grouping mode |
p |
Toggle preview panel |
PgUp / PgDn |
Scroll preview |
r |
Refresh session store |
, |
Open settings panel |
Time Range (when search is not focused)
| Key |
Action |
1 |
Last 1 hour |
2 |
Last 1 day |
3 |
Last 7 days |
4 |
All time |
Settings & Info
| Key |
Action |
? |
Show help overlay |
q |
Quit |
Ctrl+C |
Force quit |
Overlay Navigation
Keys inside overlays (filter, settings, shell picker, help):
| Key |
Action |
↑ / k, ↓ / j |
Navigate |
Enter |
Select / apply / toggle |
Esc |
Close overlay |
Space |
Toggle checkbox (filter panel) |
← / → |
Collapse / expand (filter panel) |
Mouse
| Action |
Effect |
| Click session |
Select it |
| Click folder header |
Expand or collapse |
| Double-click session |
Launch it |
| Double-click folder |
Launch new session in that directory |
| Ctrl + double-click |
Force new window |
| Shift + double-click |
Force new tab |
| Scroll wheel (list) |
Scroll session list |
| Scroll wheel (preview) |
Scroll preview pane |
| Click header elements |
Interact with search, time range, sort, pivot |
Configuration
Configuration is stored in the platform-specific config directory:
- Linux:
~/.config/dispatch/config.json
- macOS:
~/Library/Application Support/dispatch/config.json
- Windows:
%APPDATA%\dispatch\config.json
Options
| Key |
Type |
Default |
Description |
default_shell |
string |
"" |
Preferred shell (bash, zsh, pwsh, cmd.exe). Empty = auto-detect |
default_terminal |
string |
"" |
Terminal emulator. Empty = auto-detect |
default_time_range |
string |
"1d" |
Time filter: 1h, 1d, 7d, all |
default_sort |
string |
"updated" |
Sort field: updated, created, turns, name, folder |
default_pivot |
string |
"folder" |
Grouping: none, folder, repo, branch, date |
show_preview |
bool |
true |
Show preview pane on startup |
max_sessions |
int |
100 |
Maximum sessions to load |
yoloMode |
bool |
false |
Pass --allow-all to Copilot CLI (auto-confirm commands) |
agent |
string |
"" |
Pass --agent <name> to Copilot CLI |
model |
string |
"" |
Pass --model <name> to Copilot CLI |
launch_mode |
string |
"tab" |
How to open sessions: in-place, tab, window |
custom_command |
string |
"" |
Custom launch command ({sessionId} is replaced) |
excluded_dirs |
array |
[] |
Directory paths to hide from session list |
theme |
string |
"auto" |
Color scheme: auto or a named scheme |
Example config.json
{
"default_shell": "",
"default_terminal": "",
"default_time_range": "1d",
"default_sort": "updated",
"default_pivot": "folder",
"show_preview": true,
"max_sessions": 100,
"yoloMode": false,
"agent": "",
"model": "",
"launch_mode": "tab",
"custom_command": "",
"excluded_dirs": [],
"theme": "auto"
}
Custom Command
Set custom_command to replace the default Copilot CLI launch entirely. Use {sessionId} as the placeholder. When set, Agent, Model, and Yolo Mode fields are ignored.
"custom_command": "my-tool resume {sessionId}"
Themes
Five built-in color schemes:
- Dispatch Dark
- Dispatch Light
- Campbell
- One Half Dark
- One Half Light
| Dispatch Dark |
Dispatch Light |
Campbell |
 |
 |
 |
| One Half Dark |
One Half Light |
 |
 |
Set theme to "auto" (default) for automatic light/dark detection based on your terminal background. Or set it to any built-in scheme name.
Custom Themes
Add custom color schemes using Windows Terminal JSON format in the schemes array of your config file. Each scheme name becomes available in the settings theme selector.
CLI Flags
| Flag |
Description |
--demo |
Load a demo database with synthetic sessions |
--reindex |
Full chronicle reindex via Copilot CLI (falls back to FTS5 rebuild) |
--clear-cache |
Reset all configuration to defaults |
Environment Variables
| Variable |
Description |
DISPATCH_DB |
Override the path to the Copilot CLI session store database |
Shell Aliases
The installer creates a disp shorthand automatically. To add it manually:
# bash / zsh
alias disp="dispatch"
# PowerShell
Set-Alias -Name disp -Value dispatch
Troubleshooting
"dispatch: command not found"
- Ensure
$GOPATH/bin (or the install directory) is in your PATH
- Restart your terminal after installation
"session store not found"
- Copilot CLI must have been used at least once to create the session database
- Check that
~/.copilot/session-store.db exists (or the platform equivalent)
- Override with the
DISPATCH_DB environment variable if your database is elsewhere
Sessions not appearing
- Check your time range filter — the default shows only the last day
- Use
/ to search by keyword
- Check
excluded_dirs in your config
- Try
dispatch --reindex to rebuild the session index (or press r inside the TUI)
Contributing
See CONTRIBUTING.md for development setup and guidelines.
Security
See SECURITY.md for the security policy and vulnerability reporting.
Built With
License
MIT