dispatch
Sessions waiting on you:0finished:0· all quiet
Sign inStart the trial

Docs Start

Getting started

Install Dispatch, point it at your projects, and open the first few terminals.

Dispatch is a mass-dispatch dashboard: every project you’re working on gets a live terminal, they sit together in one grid, and a single broadcast bar runs across the top of them. It finds your projects for you, groups them by category, and lets you pin the ones that matter and hide the noise.

A tile is an ordinary interactive shell, so whatever you start in it (Claude Code, Codex, Gemini CLI, a build watcher, nothing at all) is what runs. Six of them open is six sessions in front of you instead of six windows to go and check.

First launch

On first launch Dispatch scans a root folder and lists every project it finds under it. Change the root any time with the root button at the top-left of the sidebar. It lists every root you’ve used before, plus Browse for a folder….

The root is per workspace, so one workspace can be your Roblox games directory while the next is your JS/web directory. See Workspaces.

Opening terminals

Three ways, in rough order of how often you’ll use them:

  • Click a project in the sidebar to open a terminal in it.
  • Ctrl+Shift+P fuzzy-opens any project by name, however many you have.
  • + New terminal (or Ctrl+Shift+N) opens one in the workspace’s current folder without asking which project.

Each tile is a full interactive shell, PowerShell by default. Click into it and type as you normally would.

The startup command

A tile can start your agent for you. Settings ▸ New terminals ▸ Startup command is typed into every new terminal once its shell is up, so set it to claude, codex, gemini or whatever you run, and every tile you open comes up in it. Leave it empty for plain shells.

Override it where it matters:

  • Per project: the caret beside + New terminal, or right-click a project row, then Startup command…. That one repo can be on a different agent from the rest.
  • Per workspace: right-click a workspace tab, then Startup command….
  • Once, for this terminal: shift-click a project row for a plain shell, or use Plain shell here on its right-click menu.

Recent commands are kept, so switching a project between two agents is picking one off a list rather than retyping it.

Planned tiles use the same command unless the plan names its own.

Running from a checkout

cd path\to\terminal-dispatch
cargo run -p dispatch-app

Needs a Rust toolchain and the MSVC build tools, and nothing else. There is no C++ of your own to compile.

To sanity-check the environment without opening the window:

cargo test --workspace

It exercises the host: terminals, the licence rules, discovery and documents.

Where to go next

What Dispatch writes to disk

Its own settings live in the app’s user-data folder, alongside a bridge.json that exists only while Dispatch is running. It holds the pipe address and the token the MCP server authenticates with, and is deleted on exit.

Outside that folder it writes nothing until you click an install button, and then only these:

~/.claude.json (or $CLAUDE_CONFIG_DIR/.claude.json)
Written by the Claude Code integration. Holds the dispatch key under mcpServers, and nothing else.
~/.claude/settings.json
Written by the same card, for the Deck. Holds seven hook entries pointing at a loopback port.
Studio's plugins folder
Written by the Roblox Studio integration. Holds Dispatch.rbxmx, which is the app’s own file.

The two Claude Code files are parsed, modified and written whole, a backup is kept beside each, and a config that doesn’t parse is refused rather than rewritten. Nothing else in either file is touched, and Remove on the same Marketplace card takes the entries back out.