dispatch

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 13, 2026 License: MIT

README

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.

Dispatch terminal UI

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 (14 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 hidingh 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 modedispatch --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
Search Grouping by folder
Preview panel Filter panel
Settings Help Overlay
Settings panel 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
  1. Run dispatch (or disp) in your terminal
  2. Press / to search for previous sessions — try a keyword like "auth" or "refactor"
  3. Navigate with arrow keys or j/k
  4. Press p to toggle the preview pane and read the conversation
  5. Press Enter to resume the selected session (opens in a new tab by default)
  6. Use Tab to cycle grouping modes (folder → repo → branch → date → flat)
  7. Press s to cycle sort fields, S to flip direction
  8. 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
Dispatch Dark Dispatch Light Campbell
One Half Dark One Half Light
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

Directories

Path Synopsis
cmd
dispatch command
internal
config
Package config manages user preferences for copilot-dispatch.
Package config manages user preferences for copilot-dispatch.
copilot
Package copilot wraps the GitHub Copilot SDK to provide a streaming AI chat interface for the Dispatch TUI.
Package copilot wraps the GitHub Copilot SDK to provide a streaming AI chat interface for the Dispatch TUI.
data
Package data provides Go data models that map to the Copilot CLI session store SQLite database, along with types for filtering, sorting, and pivoting session queries.
Package data provides Go data models that map to the Copilot CLI session store SQLite database, along with types for filtering, sorting, and pivoting session queries.
platform
Package platform provides cross-platform path resolution, shell detection, and session launching for dispatch.
Package platform provides cross-platform path resolution, shell detection, and session launching for dispatch.
tui
Package tui implements the Bubble Tea terminal user interface for browsing and launching Copilot CLI sessions.
Package tui implements the Bubble Tea terminal user interface for browsing and launching Copilot CLI sessions.
tui/components
Package components provides the sub-models (session list, search bar, filter panel, preview, help overlay, shell picker, reindex) that compose the Copilot CLI Session Browser TUI.
Package components provides the sub-models (session list, search bar, filter panel, preview, help overlay, shell picker, reindex) that compose the Copilot CLI Session Browser TUI.
tui/styles
Package styles — icons.go defines Nerd Font icon constants and a fallback mechanism for terminals without a Nerd Font installed.
Package styles — icons.go defines Nerd Font icon constants and a fallback mechanism for terminals without a Nerd Font installed.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL