mrkeyoor.com_
Tue 01 Sept 17:41 UTC
Dev Toolsevaluationupdated 01 Sept 2026

workmux review

Workmux pairs each Git worktree with a tmux window or another supported terminal multiplexer, giving every branch its own shell, editor, server, and coding agent. It creates the workspace, runs setup commands, tracks agent status, and can merge and remove the branch when the task is finished.

trackingstars / 7d
Verdict

Our run of Workmux built successfully in 100 seconds and all 3,144 tests passed in 40 seconds, a strong outcome for a tool that can create, merge, and delete working environments. Use it when tmux and Git worktrees are already habits and parallel agents are becoming hard to track. Skip it when one feature spans several repositories, restored tmux windows must retain identity, or an external orchestrator needs a durable final report after each agent exits.

We ran it

Lab card: what happened when we ran workmuxScreenshot of workmux (workmux.raine.dev)
Install✓ · 25s258 packages
Build✓ · 100s
Tests✓ · 40s3144 passed · 0 failed of 3144 (cargo test)
Repo411 files~108,438 lines of source · 17.6 MB · 6 CI workflows · tests dir

Answers from our run

Does workmux build from source?

Dependencies installed in 25 seconds (258 packages), and the build succeeded in 100 seconds. We cloned commit 1731c66 into a clean Debian container with 3 CPUs and no project-specific setup.

Do workmux's tests pass?

Yes: 3144 of 3144 passed when we ran the project's own test command (cargo test). Some failures need services or credentials a bare container does not have.

Who should not use workmux?

Developers who do not want a terminal multiplexer in their workflow: tmux is the recommended interface, and the WezTerm, Kitty, and Zellij backends are marked experimental.

What are the alternatives to workmux?

wtp, Claude Squad, Vibe Kanban. Our run of Workmux built successfully in 100 seconds and all 3,144 tests passed in 40 seconds, a strong outcome for a tool that can create, merge, and delete working environments.

Setup4/525-second install; real setup is learning worktrees and mux rules
Docs5/5Commands, hooks, sandboxes, ports, permissions, and caveats are clear
Community4/52,340 stars with a current release and active issue and PR queue
Maturity4/53,144 tests passed, but restore and output-capture gaps remain

Who it’s for

Terminal-focused developers who already understand Git branches and use tmux daily.
Teams running Claude Code, Codex, OpenCode, or other CLI agents on several independent tasks.
Developers who want repeatable pane layouts, copied configuration, setup hooks, and per-worktree services.
Agent operators who want container or Lima isolation while keeping status and merge controls on the host.

Who it’s NOT for

Developers who do not want a terminal multiplexer in their workflow: tmux is the recommended interface, and the WezTerm, Kitty, and Zellij backends are marked experimental.
Features that must coordinate worktrees across several repositories as one unit: open issue 161 says workmux is scoped to one repository per invocation.
Jujutsu-first teams expecting native workspace operations: open issue 59 requests jj support, while the current workflow is built around Git worktrees.
tmux-resurrect users who need restored windows to be adopted automatically: open issue 238 says restored windows lose workmux tokens and cannot be closed through the normal command.
Automation that must collect an agent's final output after its pane exits: open issue 246 says capture reads only a live pane and leaves no durable result artifact.

Setup reality

Our sandbox installed 258 packages in 25 seconds. The build succeeded in 100 seconds, and Cargo tests finished in 40 seconds with 3,144 passed and 0 failed out of 3,144.

Prebuilt binaries, Homebrew, Nix, or mise avoid the source build. Runtime still needs Git 2.5 or newer and tmux or another supported backend. Workmux itself needs no model key for branch and window management; agent use needs that agent's credentials, automatic naming may call a configured model, and PR checkout needs an authenticated gh CLI.

Fresh worktrees omit ignored files, so .env, dependencies, and caches need explicit copy, symlink, or setup rules. Parallel services also need separate ports. Alternative multiplexer backends are experimental, session mode is tmux-only, and sandboxing adds a container engine or Lima.

411 files turn Git worktrees into agent workspaces

Workmux wraps a clear unit of work: one branch, one Git worktree, and one terminal-multiplexer window. Its 411-file checkout contains about 108,438 source lines because it also manages pane layouts, agent prompts, status hooks, a dashboard, a sidebar, merge cleanup, and sandboxes. workmux add feature-name creates the branch and worktree, copies or links configured files, runs setup hooks, opens the window, and starts the chosen commands. The default stays understandable because Git and tmux remain visible.

The 17.6 MB repository supports tmux first, with experimental WezTerm, Kitty, and Zellij backends. Project config defines panes, while global settings supply personal defaults. A nearer .workmux.yaml can override them in a monorepo. Prompts can enter known agent commands, be written for an editor plugin, or create several worktrees for competing implementations. Workmux coordinates the processes and leaves code judgment to the user.

The 100-second source build is optional for ordinary use

Homebrew, release binaries, Nix, mise, and Cargo are documented installation paths. Building from source took 100 seconds in our sandbox, so a packaged binary is the practical first route. Runtime requires Git 2.5 or newer and a supported multiplexer. Tmux is the only backend with session mode, where each worktree receives its own session and may contain several windows. Agent commands bring their own logins and subscriptions. Automatic branch naming can use an installed agent or an external llm command.

Our install resolved 258 packages in 25 seconds. The source tree includes backend-specific container recipes and a workflow for sandbox images, although the lab's conventional-file scan reported no plain Dockerfile. Normal setup can stay small, but useful projects often need file operations and hooks. A clean worktree lacks .env, node_modules, caches, and editor state because Git ignores them. Workmux can copy or symlink those paths and run post_create, pre_merge, or pre_remove commands in the worktree.

What happened when we ran it

Our sandbox installed workmux in 25 seconds, pulled 258 packages, and built commit 1731c66 in 100 seconds. Cargo then completed in 40 seconds with 3,144 tests passed and 0 failed out of 3,144. The run used 3 CPUs, 12 GB of RAM, a fresh unprivileged Debian container, and no secrets. Nothing failed, timed out, or left an uncertain result in the supplied log. That makes source installation credible even though compiling it is slower than fetching a binary.

The checkout held 411 files, roughly 108,438 source lines, and 17.6 MB before dependencies. It had 6 CI workflows, a tests directory, and no conventional root Dockerfile. The 3,144-test result covers the measured Rust commit. User tmux settings, shell startup, Git hooks, agent CLIs, container engines, and project hooks remain outside that result. The README addresses those boundaries with dry runs, explicit parent sessions, path rules, and backend notes.

Merge removes 3 resources unless you choose to keep them

workmux merge can merge the branch, close its multiplexer window, remove the worktree, and delete the local branch. Three resources disappear after the Git merge: the window, worktree, and branch. The command refuses uncommitted changes by default, runs a configured pre-merge hook, and supports merge, rebase, or squash strategies. A keep flag and merge_keep setting preserve the environment. This convenience deserves the same pause as any cleanup command: inspect the branch and target before running it.

The 3,144 passing tests give that lifecycle code useful credibility, and workmux add --dry-run previews the path, base, multiplexer target, file operations, and hooks before creation. Worktrees still share Git history. Two agents editing the same area can produce ordinary merge conflicts, while branches with different dependency versions should not share node_modules. Rust worktrees should use sccache instead of a shared target directory because Cargo locking would serialize the builds. The tool reduces setup repetition; it cannot remove dependency and merge semantics.

Parallel services still compete for ports and credentials

The README's monorepo example assigns each worktree distinct ports because copied .env files otherwise make several servers bind the same addresses. That detail matters more than the 108,438 lines of tool code: parallel agents are only useful when their applications can run side by side. Hooks receive the worktree path and handle, so a project can generate a per-worktree environment file. File copies may include secrets, and symlinked permission files can share agent approvals across worktrees, so configuration review belongs in onboarding.

Sandbox mode can place agents in Docker, Podman, Apple Container, or a Lima VM. Containers are ephemeral and can restrict outbound domains; Lima is persistent and has unrestricted networking. Both can proxy selected host commands, mount extra paths, and share agent credentials. Those escape hatches are intentional capabilities, so the sandbox boundary is only as narrow as its configuration. The repository had 6 CI workflows and 3,144 passing tests, but a team should still test mounts, network policy, and host-command rules with disposable credentials.

Version 0.1.250 is active, with restore and capture gaps

Version 0.1.250 was released on August 30, 2026, and the repository was pushed the next day. Its changelog fixes pane-less status updates sent to the wrong tmux pane. Some alarming open tickets, including active-pane deletion, were fixed in later versions, so issue state alone misleads. Two gaps lack a later changelog fix: issue 238 covers lost identity after tmux-resurrect restores a window, and issue 246 asks for agent output that survives pane exit.

GitHub listed 2,340 stars and 43 combined open issues and pull requests, split into 29 issues and 14 pull requests. Open issue 261 also reports that workmux send can leave text unsubmitted in an active Codex pane on version 0.1.248; the latest release notes do not mention that path. Workmux is a good fit for an experienced tmux user who wants parallel agents without moving to a separate GUI. Multi-repository tasks, Jujutsu, durable result collection, and restored-window adoption remain reasons to choose a narrower alternative.

Alternatives

ProjectWhat it isPick it when
wtpA focused Git worktree CLI with setup hooks, branch tracking, and shell navigation.pick this instead when you want worktree automation without coupling every task to an agent dashboard or tmux window.
Claude Squad gh↗A terminal interface for managing several coding-agent sessions in isolated workspaces.pick this instead when the agent manager should be the interface and your existing tmux layout is unimportant.
Vibe KanbanA task-board interface for assigning and reviewing work across coding agents.pick this instead when a visual queue and task review matter more than staying inside terminal windows.

What people are saying

  1. [github-trending] raine/workmux

Sources

  1. Workmux README
  2. Workmux changelog
  3. Workmux v0.1.250 release
  4. Multi-repository workspace issue 161
  5. Jujutsu support issue 59
  6. tmux-resurrect identity issue 238
  7. Durable agent output issue 246
  8. Codex send issue 261

More dev tools reviews

v2rayNG · SecLists · hashcat · eslint · fastfetch · composer · the whole board →