Releases

Release notes

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.2 June 17, 2026 Latest
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.
Get DPMux 2.0.2
Existing installs update automatically — without killing your shells.
2.0.0 June 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.1 June 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.0 June 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.0 June 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.1 June 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.0 June 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.0 June 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.0 June 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.1 June 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.0 June 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.
  • NewGPU-accelerated rendering (xterm.js WebGL over ConPTY), session restore, command palette, find-in-terminal.
  • 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.