What's new in every version. DPMux updates itself in the background —
when a release ships, your install picks it up and shows a Restart to update toast
(or run dpmux update-restart).
2.0.2June 17, 2026Latest
Blocks you can see — an optional sunken view
2.0 gave your terminal blocks; now you can see them, if you like. Switch on a subtly
recessed panel view and each finished command's output sits in a gentle dip with a status-colored
edge — telling you where one command ends and the next begins. Off by default; turn it on when you
want it.
NewOptional sunken command blocks. Set
"blocks": { "panels": true } in settings.json and finished commands render
as a softly inset panel — your scrollback reads as a record, not a stream. The status marker sits in
its own slim left column, set off from the text; the panel hugs the output exactly.
Green rail for ok, red for failed.
The active command stays flush; long output stays correctly framed as you scroll and resize, and
full-screen apps like vim are never tinted. It hot-reloads, so toggle it live.
Existing installs update automatically — without killing your shells.
2.0.0June 17, 2026
Blocks — your terminal becomes a searchable record
Until now DPMux remembered your layout but forgot your work — scrollback, and
nothing more. 2.0 adds a structured session layer: every command becomes a block you can
search, re-run, review, and reuse. The idea Warp is built on, done the Windows way — layered on the
durable shells you already have, with secrets stripped locally before anything is ever stored.
NewCommand blocks. Turn capture on once with
dpmux install-shell-integration (PowerShell, bash, zsh) and DPMux records every command
as a block — the command line, its output, exit code, working directory, and how long it took. A
colored tick in the gutter marks each one: running,
ok, failed.
NewCommand history, everywhere.Ctrl+Shift+H
opens a searchable history of the active terminal — ↵ to jump back to a command,
Ctrl+R to re-run it, bookmark the ones worth keeping. The command palette searches your whole
history too, so a docker run … from yesterday is two keystrokes away in any pane —
or query it from a script with dpmux search-blocks.
NewA reusable workflow library. Save the setups you
run constantly as workflows, prompts, and env sets.
dpmux library run wf-dev-preview spins up a workspace, starts the dev server, and splits
a live browser preview beside it — one command, the whole layout. Fill parameters in a little form
from the palette, or let an agent run one with the new run_workflow MCP tool.
NewSecrets stay yours. Before a block is stored or
shown it runs through a local redaction pass — AWS / GitHub / OpenAI / Anthropic
keys, bearer tokens, private keys, connection-string passwords, SECRET=… assignments.
Nothing leaves your machine; preview exactly what it strips with dpmux redact-preview "…".
NewReview what your agents ran.dpmux workspace-blocks opens an HTML transcript of a workspace's commands — every block
with its status, timing and output, errors highlighted — the fastest way to see what an agent
actually did. A local Event log in the palette lets you watch DPMux's own event stream, too.
1.7.1June 13, 2026
Steady under Codex — choose your renderer
Animated agent TUIs — like OpenAI Codex's "working" spinner — could strobe on some
Windows GPUs, the cursor flickering as the screen repainted dozens of times a second. That's the
terminal's GPU renderer fighting the redraw. Now you choose how it draws.
New"renderer" in settings.json:
webgl | canvas | dom.webgl (default) is the fastest GPU path; canvas is a steadier GPU
renderer that stops the strobe most animated agents trigger; dom is the most
flicker-proof of all. It hot-reloads — the moment a spinner shimmers, set
"renderer": "canvas" and watch it settle, no restart.
ImprovedIf the chosen renderer can't start — no GPU,
or too many live contexts — DPMux now falls back to the DOM renderer automatically instead
of going blank. Still seeing a jittery cursor under an agent? Pair it with
"cursor-blink": false.
1.7.0June 13, 2026
Research dispatch — fan out questions, not code
Fleet Dispatch fans code out across worktrees. Research Dispatch fans questions
out — a party of agents that go read, deliberate, and come back with findings. No git in sight.
Newdpmux research "compare Postgres vs SQLite"
"what are people saying about Bun" (aliases research, scout).
Each question gets its own agent in its own workspace + terminal under a Research sidebar
group — a real Claude (or Codex) session pointed at the task, told to lean on web search and the
/last30days skill for recent Reddit / X / HN / YouTube
chatter. No worktree, no branch, no merge — these agents bring back a sourced summary, not
a diff. Read each one with dpmux capture-pane.
NewClaude dispatches research too. With
dpmux mcp install, agents get research_dispatch (parallel research,
no code) right alongside fleet_dispatch (parallel code) — plus a
close_workspace tool to clear a scout away once its findings are in. The
/dpmux-dispatch skill now teaches when to send out research versus a fleet
versus an inline sub-agent.
Improved"research-command" in
settings.json points research dispatch at any agent CLI (default claude "{task}"),
mirroring "fleet-command".
1.6.0June 13, 2026
OpenAI Codex, wired in
The ground-truth sidebar pills weren't just for Claude Code. Now every OpenAI Codex session
lights up the sidebar the same way.
NewCodex status pills.dpmux install-hooks codex registers Codex's hooks in your user-level
~/.codex/config.toml: a working pill when a turn
starts, needs input + a ring when Codex waits on you to
approve a tool, and done + an unread dot when the turn
finishes. Run Claude Code and Codex side by side and the sidebar tells the truth about both.
Newstdin-safe by design. It uses Codex's
[hooks] engine, which delivers each event's payload on stdin — the agent's output
never touches a shell. Your config.toml is preserved (a backup is kept beside it),
and dpmux install-hooks codex --remove unwires it cleanly.
1.5.1June 13, 2026
Claude Code dispatches its own fleets
Fleet Dispatch was something you ran. Now Claude can run it too — and even when it
doesn't, you can finally see it delegating.
NewClaude dispatches fleets. With
dpmux mcp install, Claude Code gains fleet_dispatch /
fleet_status / fleet_review / fleet_merge /
fleet_discard. Instead of spawning invisible in-process sub-agents, it fans
parallel work out to real worktree agents you watch on the Fleet Board and approve
before they merge — it polls and reviews, you stay in the loop.
NewDelegation you can see. Even when Claude
uses its own built-in sub-agents, a delegating ×N pill now tracks them
live on the workspace — a busy, delegating session never reads as idle again.
NewThe /dpmux-dispatch skill.dpmux install-skill claude teaches Claude when to dispatch a fleet
versus delegate in-process, and how to drive dispatch → review → merge.
ImprovedRe-run dpmux install-hooks
claude to pick up the new delegation pills; the fleet_* tools appear
automatically once the MCP server is registered.
1.5.0June 12, 2026
Fleet Dispatch — one repo, many agents, one merge gate
The converged pattern from the agent-orchestration world — a worktree per agent with a
review board — but in real, fully interactive terminals. And on Windows.
Newdpmux dispatch "task one" "task two"
"task three". Each task gets its own git worktree on a
fleet/<slug> branch, its own workspace under a Fleet: sidebar
group, and its own Claude Code session started on the task. Three agents working the
same repo without stepping on each other.
NewThe review gate.dpmux fleet-review opens a styled diff of everything the agent changed
against your base branch, right in a pane. Like it? fleet-merge wip-commits
any loose work, squash-merges onto base as one clean fleet: <task>
commit, and removes the worktree. Don't? fleet-discard.
NewThe Fleet Board. A mission-control card
pinned in the sidebar — visible whatever group you're in — with one dot per agent
(colored by its live state), an elapsed timer, and per-agent rows showing
+ins −del · commits as the work happens. Hover a row for
diff / merge / drop; click to jump to the agent. The card glows when someone
needs you.
NewGuard rails. Merge refuses if your main
repo is dirty or off the fleet's base branch, and rolls back cleanly on conflicts —
your checkout is never left mid-merge.
NewWorks with everything that came before: hook
pills show who's working / blocked / done across the fleet, and Detach keeps a
dispatched fleet running through app restarts. "fleet-command" in
settings.json points dispatch at any agent CLI.
1.4.0June 12, 2026
The fleet outlives the terminal
tmux-grade persistence, on Windows. Your shells no longer live inside the DPMux
window — they live in a detached dpmux-ptyhost process that owns the consoles.
NewDetach. Close the window, crash the app,
or restart to apply an update — every shell keeps running. Relaunch and each
workspace re-attaches to the same processes with scrollback replayed. The 40-minute
agent run that used to die with the window just… doesn't.
NewUpdates without casualties. DPMux's own
auto-update restart now keeps your fleet alive through the swap.
Newdpmux detach-status shows the host
and every shell it holds; dpmux kill-server ends the fleet for real
(tmux-style). Explicit pane/workspace closes still kill their shells — only the app
going away detaches.
New"detach": false in settings.json
restores the old everything-dies-with-the-window behavior.
1.3.0June 11, 2026
The sidebar learns to get out of the way
NewIcon rail. Collapse the sidebar into a
compact strip of workspace tiles — and keep every signal: the notification ring pulses
around the tile, progress wraps it as a circular ring, the status pill becomes a
colored corner dot (hover for the full text), unread keeps its dot. Each workspace gets
a stable color so your fleet stays tellable-apart at a glance.
NewResize with intent. Drag the sidebar edge
to any width (it's remembered); drag it small and it snaps into the rail; drag back out
to expand. Double-click the edge to toggle, or cycle
expanded → rail → hidden with Ctrl+Shift+B.
Newdpmux sidebar rail|expanded|hidden|toggle
[--width N] — scriptable like everything else, so an agent kicking off long work
can tuck the sidebar away for you.
1.2.1June 11, 2026
Integration fixes
Fixeddpmux install-hooks claude refused
to install (and dpmux mcp install wrote a version-pinned launch command) on
installs living outside the default folder — portable installs, relocated or redirected
profiles. The CLI now locates its launcher from the running binary itself, so
registrations always point at the update-proof shim.
FixedCLI output no longer shows garbled dashes on
legacy console codepages.
1.2.0June 11, 2026
Claude Code, plugged in
DPMux becomes the terminal your agents can actually use — in both directions.
Newdpmux mcp — DPMux is an MCP server.
One command (dpmux mcp install) registers it with Claude Code, and agents get
15 tools to drive the terminal they live in: split panes, run commands, read output,
open a real Chromium tab at your dev server, screenshot it, set status pills and
progress, and ring you. Tools self-target the agent's own workspace — no ids needed.
NewAgents can see.browser_screenshot
and screenshot_app return actual images over MCP, so Claude can open the page
it just changed and visually verify it.
Newdpmux install-hooks claude — ground-truth
status pills. Claude Code sessions declare their own lifecycle on the sidebar:
working when a prompt is running, needs input + a notification ring when
Claude is waiting on you, done + unread dot when it finishes. No output-scraping
heuristics — the agent says so itself.
Newdpmux mcp print emits the
mcpServers JSON for manual setup in any other MCP client;
--remove / uninstall unwire everything cleanly.
1.1.2June 10, 2026
Workspace cards that show what matters
ImprovedSidebar previews now reassemble
wrapped lines and filter out TUI chrome — box-drawing frames, spinner repaints, and
agent status hints. With Claude Code (or any TUI) running, cards show the last
meaningful output instead of a wall of ╭───╮ frame lines.
1.1.1June 10, 2026
Dual update channel
NewDownloads and updates now ship from
GitHub as the primary channel,
with the original channel kept as an automatic fallback — the installer and updater try
sources in order, so a single outage never blocks an update.
1.1.0June 10, 2026
tMux is now DPMux
ChangedRenamed across the board — there's
already a beloved tmux, and it isn't us. The product is DPMux, the CLI is
dpmux, env vars are DPMUX_*, the pipe is
\\.\pipe\dpmux-<user>, and installs live in
%LOCALAPPDATA%\DPMux.
NewThe tmux-compat command aliases
(send-keys, capture-pane, split-window, …) remain —
that part of tmux we borrow proudly.
1.0.4June 10, 2026
No more ghost windows
FixedRunning the CLI inside a DPMux terminal
could launch a ghost second app window and leave commands unanswered. Terminals now get
the CLI first on their PATH, and instances launched from inside DPMux respect the
single-instance lock.
1.0.2 – 1.0.3June 10, 2026
The CLI lands on your PATH
NewInstalls provision the dpmux command
onto your user PATH — open any terminal and drive DPMux from scripts, CI, or agent
hooks.
Fixed1.0.3 moved the CLI shim into its own
bin\ directory so Windows' executable-resolution order (PATHEXT) can't pick
the app launcher instead of the CLI.
1.0.1June 10, 2026
Ghostty-style configuration
Newsettings.json with hot reload —
six built-in themes, full palette overrides, keybind = combo=action custom
bindings, shell selection, and automatic inheritance of your existing
~/.config/ghostty/config.
Newdpmux get-config /
reload-config to inspect and re-apply the resolved configuration.
1.0.0June 10, 2026
Initial release
The terminal built for multitasking, on Windows.
NewVertical workspaces with live previews, status
pills, progress bars, and notification rings (OSC 9/99/777 or
dpmux notify) — plus desktop alerts and taskbar flashing.
NewSplit panes that never restart your shells, and
surfaces — terminal and Chromium browser tabs — inside every pane.
NewA socket API on a named pipe with 45+ commands,
cmux v1/v2 + tmux-compat aliases, an event stream, and self-targeting env vars in every
terminal.
NewChrome-style distribution: a ~110 KB stub
installer, per-user install with no admin prompt, background auto-updates with
restart-to-apply and rollback.