Skip to content

Releases: psmux/psmux

v3.3.5

28 May 06:33

Choose a tag to compare

psmux v3.3.5

Terminal multiplexer for Windows - tmux alternative for PowerShell and Windows Terminal.

Changelog (v3.3.4-fix-273 → v3.3.5)

  • bump: v3.3.5 with portable-pty-psmux 0.9.4, vt100-psmux 0.16.7 (e10aaa2)
  • fix: capture-pane CLI expands POSIX short flag clusters (#326) (72d08aa)
  • feat: add #{pane_last_special_key} format variable (#315) (aca1120)
  • fix(platform): sleep before FreeConsole in send_ctrl_c_event (#307) (9346519)
  • fix(list-panes/list-windows): iterate all sessions for -a flag (#325) (5a10bac)
  • fix: client freezes permanently when server write timeout fires (Windows) (5224012)
  • Fix $N session ID targets not resolving correctly (62f8de6)
  • fix: increase list-sessions TCP read timeout for libtmux compatibility (cfb0d66)
  • Fix if-shell brace-block ignoring condition (#317), show-options -w fallback (#321) (c99ca5b)
  • fix(clipboard): wire set-buffer -w to propagate to Windows clipboard (#298) (f96a7c1)
  • fix(pane_current_command): report shell name for idle panes, prefer immediate child (#299) (b003802)
  • fix(conpty): disable preemptive DSR response that dropped first keystroke (#313) (b4bd81b)
  • refactor: reframe as a text-input ROUTE signal + fix sync/dead set (review #311) (13eed2e)
  • feat: add #{pane_last_input} — read-only live human-input signal (183dcd0)
  • fix: use Win32 input mode for Ctrl+letter keys so PSReadLine receives proper KEY_EVENTs (#305) (60e1714)
  • Fix #284: scroll-enter-copy-mode now skips root PageUp binding in both server and client (9ed1f48)
  • fix(#303): command-prompt keybindings with arguments now open overlay (a9c9d6a)
  • chore(deps): bump the cargo group across 2 directories with 1 update (686eb45)
  • fix: forward pane-emitted OSC 52 to host terminal for clipboard (054703b)
  • fix #296: nvim hangs when spawned from Claude Code via Ctrl+G (4d4d0ae)
  • fix(mouse): pass wheel button_state/event_flags to inject_mouse_combined (#295) (e444065)
  • fix(rendering): reserve row for pane-border-status label (#288) (57a67fe)
  • fix(keybindings): normalize AltGr (Ctrl+Alt) modifiers for German/intl keyboard layouts (fixes #287) (019bd0b)
  • Fix #286: suppress IME during prefix mode to prevent command key interception (a04e573)
  • feat(options): toggle boolean options with set without value (#278) (9a205e6)
  • fix(mouse): restore heuristic fallback in pane_wants_mouse for TUI apps (#285) (b64408e)
  • fix: propagate load-buffer -w to the Windows system clipboard (c5f2d57)
  • fix: display-message -d 0 should wait for key press, not display 0ms (fb9bf8b)
  • Potential fix for pull request finding (788c8a7)
  • fix(#290): route clipboard paste into active overlay buffer (4e1fe6e)
  • fix: reset created_at when warm server is claimed as new session (c8f505b)
  • fix: remove unused import get_window_option_value in server::mod (#289) (c8ebc6d)
  • fix(#261): close native iTerm2 window when session ends (emit %exit via DCS) (2b5a200)
  • test(#274): add WezTerm-specific + TUI wedge reproduction tests (4a7556d)
  • fix: respond to ESC[6n cursor position queries reactively (#283) (8066250)
  • Fix blank initial iTerm2 window on -CC attach (issue #261) (ed31311)
  • fix(#261): emit pane-death notifications + handle CC client resize (940f390)
  • docs(iterm2): document Cmd-T flow, cluster-flag parsing, and first-prompt-at-top quirk (49c043a)
  • fix(cc): parse combined short-flag clusters for new-window -PF / split-window / capture-pane (c150a3f)
  • feat(#261): full iTerm2 tmux -CC integration over SSH (dab336a)
  • fix(#198): bypass paste buffering when paste-detection is off (494e0ab)
  • fix: add set-window-option CLI dispatch and quote display-message format strings (8220efe)
  • feat: allow kill-pane/kill-window without confirmation (matches tmux) (9fc6156)
  • fix: restore scroll for Bubble Tea/Go TUI apps (opencode) in ConPTY (#277, #245) (9c46e09)
  • feat(#275): add detach-client CLI command with full tmux flag parity (ef29e19)
  • test(#274): add isolation + sustained-load proof tests; bug not reproducible (17113a8)
  • fix(#167): drop STARTF_USESTDHANDLES, add PSMUX_BARE_ENV + visible startup error log (97fc9b5)
  • fix(#266): honour explicit -n NAME for new-session initial window and per-window automatic-rename reporting (4f31cde)
  • test: add investigation/repro scripts for #261, #263, #264, #266 (10d8da6)

Downloads

Portable (zip):

Platform File
Windows x64 (Intel/AMD 64-bit) psmux-v3.3.5-windows-x64.zip
Windows x86 (Intel/AMD 32-bit) psmux-v3.3.5-windows-x86.zip
Windows ARM64 (Snapdragon/Surface Pro X) psmux-v3.3.5-windows-arm64.zip

Installer (NSIS setup — kills running instances, adds to PATH, warmup):

Platform File
Windows x64 psmux-v3.3.5-x64-setup.exe
Windows x86 psmux-v3.3.5-x86-setup.exe
Windows ARM64 psmux-v3.3.5-arm64-setup.exe

Installation

Via Scoop (recommended):

scoop bucket add psmux https://github.com/psmux/scoop-psmux
scoop install psmux

Via Chocolatey:

choco install psmux

Via WinGet:

winget install marlocarlo.psmux

Via Cargo:

cargo install psmux

Via PowerShell:

irm https://raw.githubusercontent.com/psmux/psmux/master/scripts/install.ps1 | iex

Manual Installation:

  1. Download the zip matching your architecture
  2. Extract to a folder in your PATH
  3. psmux, pmux, and tmux commands will all be available

What's Included

  • psmux.exe - Main executable
  • pmux.exe - Alias
  • tmux.exe - Alias for tmux compatibility

v3.3.4

28 Apr 08:47

Choose a tag to compare

psmux v3.3.4

Terminal multiplexer for Windows - tmux alternative for PowerShell and Windows Terminal.

Changelog (v3.3.3 → v3.3.4)

  • bump: v3.3.4 -- fix release workflow (remove double-download checksum verify, make crates.io idempotent) (3c5d58e)
  • tests: add issue repro scripts and updated test files (7e7b962)
  • CC: emit %error for unknown commands, fire after-select-window hook on FocusWindow, comprehensive iTerm2 compat suite (b5c7341)
  • CC: honour list-sessions -F over the control mode socket (362a8c5)
  • Fix #261: emit DCS \033P1000p opener and ST closer for -CC, matching tmux exactly (9c4a399)
  • Add comprehensive test for issue #261 -CC attach bootstrap (530c58e)
  • Fix #261: emit initial state burst on -CC attach for iTerm2 compat (95263ee)
  • docs: add developer integration guide and cross-platform documentation (42ab389)
  • docs: document digit-jump buffer in all pickers (77f8489)
  • docs: document hjkl + g/G picker navigation (issue #259) (5f8a536)
  • Add hjkl picker navigation parity with tmux mode-tree (issue #259) (2887e08)
  • feat: named buffers, libtmux native API compat, PR #207 workaround elimination (10ebb81)
  • test(pr255): add visual proof of border indicator fix via _render-preview (e9ef4a3)
  • fix: correct active pane border indicator for all split layouts (#255) (b47366b)
  • docs: document mouse-selection option (#245) (8d70bf6)
  • Add mouse-selection option to disable client-side drag selection (#245) (de07d78)
  • feat(picker): extend digit-jump to choose-tree, choose-buffer, and customize-mode (0f774f4)
  • test(preview): prove choose-tree-preview option works through every code path (09ccf89)
  • feat(preview): add choose-tree-preview option and document preview feature (388dda1)
  • fix(preview): clip pane to fit instead of reflowing (e735637)
  • fix(preview): replace lossy nearest-neighbour downscale with reflow wrap (eedda43)
  • feat(preview): default off; preserve original popup look when disabled (#257) (bc68412)
  • fix(preview): scale pane buffers to fit preview area instead of cropping (#257) (3af24ae)
  • fix(preview): guarantee min 1-cell allocation in nested splits (#257) (23d65e0)
  • fix(#257): preview now reuses the EXACT same renderer as the real window (e10df64)
  • fix(#257): preview now renders like real psmux - thin separators, no labels (8228b4a)
  • issue #257: reuse main render path for choose-tree/choose-session preview (d6f5c58)
  • issue #257: preview keeps colors/attrs (capture-pane -e) + 'p' toggle (f31be46)
  • issue #257 followup: render full split layout in choose-tree/choose-session preview (5640038)
  • Add live preview pane and draggable popup to choose-tree/choose-session (#257) (9dfe174)
  • Fix #246: snapshot-vs-reader race causing sparse-cell render artifacts (4314006)
  • Add issue #246 reproduction harness: Ink-style frame emitter + sparse-row detector (4f17b71)
  • WIP: pending changes before issue #246 investigation (11fce82)
  • Issue #250 root-cause fix: centralize AUTH+command picker fetches (79ca29c)
  • Add full-layer proof for issue #226 (a20e831)
  • Fix #226: send-keys C-/ no longer collides with C-o (8146ded)
  • fix(picker): skip AUTH ack reliably in session-info fetch (#250) (bb24d2c)
  • fix: preserve select-pane -Z flag in bind-key (#249) (f0b94c2)
  • feat(picker): digit jump buffer + Enter in session chooser (#247) (bf0a14a)
  • fix(join-pane): tmux parity for empty args, same-window, and bad-source error reporting (#230) (ac2d67e)
  • fix: capture-pane -S negative/-S - now reads scrollback history (fixes #244) (1150128)
  • ci: change release workflow trigger to manual dispatch only (7e721a3)

Downloads

Portable (zip):

Platform File
Windows x64 (Intel/AMD 64-bit) psmux-v3.3.4-windows-x64.zip
Windows x86 (Intel/AMD 32-bit) psmux-v3.3.4-windows-x86.zip
Windows ARM64 (Snapdragon/Surface Pro X) psmux-v3.3.4-windows-arm64.zip

Installer (NSIS setup — kills running instances, adds to PATH, warmup):

Platform File
Windows x64 psmux-v3.3.4-x64-setup.exe
Windows x86 psmux-v3.3.4-x86-setup.exe
Windows ARM64 psmux-v3.3.4-arm64-setup.exe

Installation

Via Scoop (recommended):

scoop bucket add psmux https://github.com/psmux/scoop-psmux
scoop install psmux

Via Chocolatey:

choco install psmux

Via WinGet:

winget install marlocarlo.psmux

Via Cargo:

cargo install psmux

Via PowerShell:

irm https://raw.githubusercontent.com/psmux/psmux/master/scripts/install.ps1 | iex

Manual Installation:

  1. Download the zip matching your architecture
  2. Extract to a folder in your PATH
  3. psmux, pmux, and tmux commands will all be available

What's Included

  • psmux.exe - Main executable
  • pmux.exe - Alias
  • tmux.exe - Alias for tmux compatibility

v3.3.3

19 Apr 18:00

Choose a tag to compare

psmux v3.3.3

Terminal multiplexer for Windows - tmux alternative for PowerShell and Windows Terminal.

Changelog (v3.3.2 → v3.3.3)

  • bump: v3.3.3 (re-release of v3.3.2.1 with proper semver) (308fdcf)
  • chore(deps): bump the cargo group across 2 directories with 1 update (59dde45)
  • Updated username and path checks to use eq_ignore_ascii_case for case-insensitive comparison, improving code clarity and consistency. (227c5d8)
  • Fix #242: PageUp now enters copy mode (matching tmux default) (545c2f0)
  • save: add test_issue239_repro before modular refactor (54355b8)
  • Fix session chooser scroll tracking and add scroll indicators to all choosers (#240) (8c7e1cb)
  • docs: comprehensive documentation update covering all implemented features (5123d0a)
  • Fix #235: display-panes overlay now respects pane-base-index (3968278)
  • Fix choose-buffer to use interactive chooser overlay (#234) (f1fee9b)
  • test: add comprehensive E2E tests for issue #232 status-interval fix (dcc741c)
  • fix: status-interval timer now triggers frame push for TUI clients (#232) (fe6eae8)
  • Add [PASS]/[FAIL] validation markers to typing tests (b4af120)
  • Zero-latency typing: flush 1-2 char paste_pend buffer immediately (df7f028)
  • Add typing/paste benchmark and validation test suites (c5300ed)
  • fix: reduce paste_suppress_until window from 2s to 200ms (closes #237) (d300b9e)
  • fix(tests): stabilize test_features4 V selection and capture-pane tests (7b0fb48)
  • fix: lower split minimum, fix set-option -o tracking, harden tests and fix timeouts (b6098bb)
  • default allow-set-title to off, add pane-titles.md docs (4162d97)
  • Fix #229: window name no longer flashes to pwsh on session creation with command (b6c7784)
  • fix(#231): OSC 0/2 escape sequences now update pane_title (eb338c8)
  • Add comprehensive E2E test for issue #229 window name flicker (c620ced)
  • fix(send-keys): align local path C-x/M-x parsing with server handler (#230) (d47b65c)
  • fix(join-pane): full cross-session pane transfer via TCP proxy (#230) (f8fa11d)
  • fix: join-pane/move-pane root cause fix (issue #230) (85cafd9)
  • fix: fire pane-died/pane-exited hooks when remain-on-exit is enabled (2a12809)
  • fix: fire pane-died/pane-exited hooks when remain-on-exit is enabled (80bb22e)
  • fix: replace single-slot frame push with bounded channel to preserve fast typing (0d16017)
  • fix: pane_title defaults to hostname, show-options resolves default-shell (#217, #220) (e20630b)
  • Fix list-panes -s not iterating all windows when -F is used (6c12b73)
  • Fix list-panes -s not iterating all windows when -F is used (77a4cb4)
  • feat: CREATE_NO_WINDOW for all background subprocesses + combined flag parsing + set-option -o (a5d1b23)
  • fix: respawn-pane -k flag was silently discarded at server level (88daff3)
  • Strengthen Rust tests for #209/#210: call production code instead of re-implementing parsing (0ce6c6a)
  • fix(capture-pane): negative -S/-E clamps to row 0 (gastown NudgeSession fix) (4bf69e0)
  • Fix three gastown integration failures from discussion #210 (4eb2349)
  • test: add PR #214 CLI routing tests for switch-client (issue #202) (0ebe9c8)
  • fix: route switch-client to current session's server, not destination (#202) (df54346)
  • chore: remove legacy standalone app.rs and add comprehensive E2E tests (44de600)
  • fix: reset rsel_pane_rect and rsel_block in right-click copy path (e0657c4)
  • feat: add pwsh-mouse-selection option (#211, PR #212) (4b5b5a4)
  • test: add E2E PowerShell tests for new-session -e (#205) (5f3db02)
  • fix: show-options -gv/-wv without option name now lists all values (bfa87f6)
  • fix: resolve 8 tmux command flag compatibility gaps (#209) (6118034)
  • refactor: adopt PR #208 improvements for new-session -e (9926b85)
  • fix: implement new-session -e environment variable support (closes #205) (38d7cfa)
  • Fix stale .port files when pane command fails to spawn (#204) (fd07145)
  • fix(paste): eliminate local paste duplication on Windows (#197) (3bf380d)
  • test: add E2E test for issue #197 paste tilde/freeze over SSH (acc9308)
  • fix: prevent trailing ~ and close-sequence residue leaking after paste timeout (issue #197) (c28a428)
  • fix(#199): fix copy mode phantom selection in handle_pane_mouse (bf7c7e3)
  • fix(#199): fix copy mode phantom selection in server mode (4b33d02)
  • fix: prevent micro-drag from starting phantom selection in copy mode (#199) (724abec)
  • fix: clear stale copy anchor on click without drag (#199) (8875bb5)
  • test: add Win32 TUI proof test for issue #201 rename dialog fix (623d739)
  • fix(client): rename session dialog shows correct title (fixes #201) (ac4dc65)
  • Add definitive E2E proof tests for issue #200 new-session fix (7369bcf)
  • fix: new-session command now works from prefix+: command prompt (fixes #200) (a8d37bd)
  • fix(client): dispatch prefix keys through synced_bindings so unbind-key takes effect on attached clients (cb0d429)
  • fix: unbind-key for individual keys now works (#198) (5ef0f01)
  • fix: implement functional switch-client for session switching (fixes #202) (ff4f6c3)
  • fix: force hook run-shell commands to background mode (5f8c20d)
  • fix: preserve quoting in server-side set-hook handlers (3bcff11)
  • fix(set-hook): preserve quoting in hook commands for paths with spaces (f81632a)
  • docs: document 13 undocumented features, add 7 plugins and 4 themes (c6088d5)
  • fix: unbind-key -a with table support, pane improvements, full feature test suite (f9d443d)
  • fix: add paste timeout to prevent terminal freeze when close sequence is lost (issue #197) (86a7519)
  • Adopt scroll_pane_scrollback approach from PR #194 by @jun2077681 (6bcb9f5)
  • fix(ci): commit session.rs namespace functions missing from prior commits (3e61a0d)
  • fix(args): normalize -x=VALUE short-flag form across all commands (fixes #196) (0b18080)
  • fix: reset defaults_suppressed on source-file reload (#195) (266d414)
  • Add comprehensive integration tests for unbind-key -a (issue #195) (7f8f62f)
  • fix: unbind-key -a now per-table like tmux, not global (#195) (b241055)
  • fix: unbind-key -a now properly suppresses all default keybindings (#195) (12ba084)
  • fix: add scroll-enter-copy-mode to apply_set_option (#193) (e7e5ff1)
  • feat: add scroll-enter-copy-mode option (#193) (789deae)
  • fix: support sequential command chaining with ; separator (#192) (32fe9e6)
  • fix: source-file BOM handling and local-first execution (#145) (6fc6b43)
  • fix: bounded frame push prevents copy-mode scroll memory leak (694156e)

Downloads

Portable (zip):

Platform File
Windows x64 (Intel/AMD 64-bit) psmux-v3.3.3-windows-x64.zip
Windows x86 (Intel/AMD 32-bit) psmux-v3.3.3-windows-x86.zip
Windows ARM64 (Snapdragon/Surface Pro X) psmux-v3.3.3-windows-arm64.zip

Installer (NSIS setup — kills running instances, adds to PATH, warmup):

Platform File
Windows x64 psmux-v3.3.3-x64-setup.exe
Windows x86 psmux-v3.3.3-x86-setup.exe
Windows ARM64 psmux-v3.3.3-arm64-setup.exe

Installation

Via Scoop (recommended):

scoop bucket add psmux https://github.com/psmux/scoop-psmux
scoop install psmux

Via Chocolatey:

choco install psmux

Via WinGet:

winget install marlocarlo.psmux

Via Cargo:

cargo install psmux

Via PowerShell:

irm https://raw.githubusercontent.com/psmux/psmux/master/scripts/install.ps1 | iex

Manual Installation:

  1. Download the zip matching your architecture
  2. Extract to a folder in your PATH
  3. psmux, pmux, and tmux commands will all be available

What's Included

  • psmux.exe - Main executable
  • pmux.exe - Alias
  • tmux.exe - Alias for tmux compatibility

Contributors and Acknowledgements

This release would not have been possible without the people who contributed code, filed bugs, tested builds, and shared their experiences. A sincere thank you to every one of you.

Pull Request Contributors

  • @tarikguney (Tarik Guney) contributed five PRs fixing paste freeze regressions, pane-died/pane-exited hooks with remain-on-exit, the bounded frame channel that preserves fast typing, the list-panes -s multi-window iteration bug, and the switch-client routing fix. An extraordinary volume of high-quality work.
  • @pbolduc (Phil Bolduc) contributed the new-session -e environment variable support and case-insensitive username/path comparison improvements, in addition to filing six detailed bug reports that drove major fixes.
  • @ohboyftw (Aravind) fixed the bounded frame push that was causing a copy-mode scroll memory leak.
  • @jun2077681 (hasu) contributed the scroll_pane_scrollback approach that landed as a core scrollback improvement and co-authored the pwsh-mouse-selection feature.
  • @wosuxiongmao (House) fixed run-shell executables not resolving to absolute paths on Windows.
  • @sepiabrown (Suwon Park) fixed bind-key new-window -c silently dropping the -c start directory flag.
  • @ToxMox (Dave) fixed mouse coordinate alignment for multi-client sessions.
  • @leotorrez (Leandro Torrez) updated documentation links.
  • @XingLingQAQ contributed focus preservation when killing targeted panes and configurable detach and empty-exit policies.

Bug Reporters and Community

  • @nipil reported the PageUp copy-mode entry issue (#242).
  • @mlsimpson reported choose-buffer modal window, status-interval refresh, and PowerShell module loading problems (#234, #232, #239).
  • @NikolajRDS reported the display-panes pane-base-index mismatch (#235).
  • @jwhite-GUS reported join-pane silent no-op and send-keys SIGINT propagation gaps (#230).
  • @jithu7432 (Jithin Johnson) reported C-/ being incorrectly parsed as ^O (#226).
  • @maciakl reported the rename session dialog showing the wrong title (#201).
  • @ivilkhovyi reported the copy mode phantom selection outline bug (#199).
  • @Avimarzan reported session persistence gaps and stale port file cleanup (#215, #204).
  • @H0nGzA1 reported run-shell program-not-found fa...
Read more

v3.3.2

08 Apr 08:31

Choose a tag to compare

psmux v3.3.2

Terminal multiplexer for Windows - tmux alternative for PowerShell and Windows Terminal.

Changelog (v3.3.1 → v3.3.2)

  • bump: v3.3.2 with portable-pty-psmux 0.9.3, vt100-psmux 0.16.6 (b91542d)
  • revert: remove unnecessary -x -y from test sessions (97a6437)
  • test: fix 3 flaky tests, rename diagnostic script (0b8431f)
  • revert: restore all 24 tests-rs files and inline references (689 tests, all passing) (5bc811a)
  • chore: remove 24 stale tests-rs files and all inline module references (e90da18)
  • chore: move test/diag scripts from scripts/ to tests/ (c1ca3c4)
  • fix: split-window -t no longer pollutes MRU, prev-by-index fallback (#71) (d8c4d01)
  • fix: use quote-aware parser for if-shell in execute_command_string (#183) (b705280)
  • test: add Bug #3 double-delivery prevention regression test (0a81305)
  • fix(input): Shift+Enter four additional bugs for Windows Terminal and WezTerm (#121) (cfb71bc)
  • fix: resize direction when falling back to opposite border (#81) (a8e3852)
  • fix: set meta_dirty on zoom toggle so status bar re-expands window_zoomed_flag (#125) (acb51b2)
  • docs: add PowerShell 7+ prerequisites to Claude Code guide (1cde3d1)
  • fix: server survives SSH disconnect via CREATE_BREAKAWAY_FROM_JOB (21ec00e)
  • fix: split-window -l with percent suffix now treated as percentage (b72afad)
  • feat: implement #[align], #[fill], #[list], #[range] layout directives for status-format[] (fixes #185) (e584cbe)
  • fix(style): bg=default now correctly uses terminal default color (#182) (65f6611)
  • fix: resolve window by name in -t session:window_name targeting (#186) (07bab22)
  • fix: expand format variables in if-shell -F condition (#183) (c4b2526)
  • fix: run-shell avoids double-wrapping when command starts with shell binary (eb8e468)
  • Resolve Windows run-shell executables to absolute paths (6352551)
  • bump (eb48fcd)
  • fix: always activate env shim for agent teams compatibility (#172, #173, #180) (467b32f)
  • fix: make run-shell async to prevent UI freeze (#170) (a510f7c)
  • fix: bind-key/unbind-key/set-option from command mode silently dropped (#179) (9629068)
  • feat: title_locked, meta_dirty on SetPaneTitle, #{pane_title} in border format, client JSON border fields (0703b2b)
  • fix: bind-key new-window -c drops -c flag, losing start directory (#111) (64ad68a)
  • fix: auto-retry ConPTY spawn without passthrough mode on error 87 (#167) (1861eb7)
  • fix: resize-pane -x/-y, split-window -l, select-layout tiled (#171) (37ae071)
  • fix: run-shell now captures and displays output in popup (#170) (d895d4a)
  • fix: set manual_rename=true when new-window uses -n flag (#169) (7bcbecc)
  • fix(#165): PredictionViewStyle ListView now works with allow-predictions on (e2f2b45)
  • test: add end-to-end verification tests for status-format[] inline styles (#164) (8aa4ec2)
  • fix: parse inline styles for status-format[] on multi-line status bars (#164) (b9be26a)
  • fix: clear bell/silence flags on active window (#162) (a2f853c)
  • fix: status-right/left not clearing when format conditional resolves to empty string (fixes #160) (ae47fee)
  • fix: add group_target param to run_server, expand control mode, format engine, options catalog (3ffc570)
  • fix: restore VTI disable, warmup command, parallel kill-server (5c142e6 regressions) (e29b954)
  • fix: restore full nesting prevention regression from #89 fix (#55) (3f95642)
  • fix: remove border drag tolerance so first/last pane rows are selectable (12533dd)
  • fix: prevent focus-follows-mouse on hover events (60908fe)
  • feat: border hover preview and highlight fixes (d7cb327)
  • fix: handle root-level split border drag (empty tree path) (217a249)
  • feat: client-side semantic mouse handling for all interactions (7a00978)
  • feat: semantic mouse protocol — server-side types, parsing, handlers, and dispatch (d926875)
  • feat: add ratio-based coordinate mapping for multi-client mouse alignment (0efacfb)
  • feat: tmux-compatible control mode (-C / -CC) (b68962b)
  • fix(#155): add strikethrough+hidden to client rendering and fast layout serialization (6538a6e)
  • fix: use PROCESSOR_ARCHITECTURE env var for arch detection in install script (8cfabd8)
  • fix: make bind-key case-sensitive for single character keys (#157) (6650a03)
  • fix: always show full version in --version output (fixes #156) (87b6c28)
  • test(#155): 22 end-to-end rendering tests proving HIDDEN/strikethrough/color fixes (262abc3)
  • fix(rendering): workaround ratatui-crossterm HIDDEN omission + fix color swap (ee35684)
  • fix(#155): add strikethrough to popup renderer, fix test registration (8359040)

Downloads

Portable (zip):

Platform File
Windows x64 (Intel/AMD 64-bit) psmux-v3.3.2-windows-x64.zip
Windows x86 (Intel/AMD 32-bit) psmux-v3.3.2-windows-x86.zip
Windows ARM64 (Snapdragon/Surface Pro X) psmux-v3.3.2-windows-arm64.zip

Installer (NSIS setup — kills running instances, adds to PATH, warmup):

Platform File
Windows x64 psmux-v3.3.2-x64-setup.exe
Windows x86 psmux-v3.3.2-x86-setup.exe
Windows ARM64 psmux-v3.3.2-arm64-setup.exe

Installation

Via Scoop (recommended):

scoop bucket add psmux https://github.com/psmux/scoop-psmux
scoop install psmux

Via Chocolatey:

choco install psmux

Via WinGet:

winget install marlocarlo.psmux

Via Cargo:

cargo install psmux

Via PowerShell:

irm https://raw.githubusercontent.com/psmux/psmux/master/scripts/install.ps1 | iex

Manual Installation:

  1. Download the zip matching your architecture
  2. Extract to a folder in your PATH
  3. psmux, pmux, and tmux commands will all be available

What's Included

  • psmux.exe - Main executable
  • pmux.exe - Alias
  • tmux.exe - Alias for tmux compatibility

v3.3.1

26 Mar 08:34

Choose a tag to compare

psmux v3.3.1

Terminal multiplexer for Windows - tmux alternative for PowerShell and Windows Terminal.

Changelog (v3.3.0 → v3.3.1)

  • v3.3.1: squelch capture-pane, feedback for unsupported commands, predictions docs, strikethrough, test audit (2cf3e05)
  • fix(#155): complete strikethrough support across all rendering paths (c14a32e)
  • fix: unify run-shell tilde expansion and XDG path fallback across all codepaths (93ecdce)
  • fix(#155): stop forcing OutputRendering=Ansi, add strikethrough rendering (4413deb)
  • refactor: popup-as-pane architecture (#154) (43dd68f)
  • fix: popup percentage dimensions, -d flag, and TERM env (#154) (0e1dbba)
  • Add tests for window index prompt (prefix + apostrophe) feature (7ff15b9)
  • Add window index prompt (Prefix + apostrophe) (e000662)
  • Add comprehensive squelch visibility tests (17d4422)
  • fix: runtime warm off kills warm server + expanded Suite 3 tests (821d7f0)
  • test: add warm-on e2e coverage to test_warm_off.ps1 (d18d469)
  • fix: warm server still spawned when warm off was set (#120) (9ccf9a6)
  • test: add regression tests for Set-StrictMode compat (#151) (403a936)
  • fix: CWD hook guard now works under Set-StrictMode (#151) (57269b7)
  • Add squelch CWD change benchmark (bench_squelch_cwd.ps1) (6f14b7d)
  • Fix slow squelch: detect CSI 3J + reduce safety timeout to 500ms (207144c)
  • Fix warm claim flash: add squelch to dump_layout_json_fast + use CSI 2J (fec1a5f)
  • Event-driven squelch: use OSC 9999 sentinel instead of fixed 800ms timeout (4a5ba47)
  • Eliminate flash of injected cd command during warm session claim (94f65d7)
  • Fix root directory cd not working and eliminate flash on session claim (7da0dfb)
  • docs: add missing config options from recent issue fixes (4cb76d2)
  • fix: config-based warm off now works reliably (#120) (a730f60)
  • fix(#150): restore original PredictionSource when allow-predictions is on (dc20bbc)
  • fix: text overflow in status bar, menus, and pane boundaries (72bf7c4)
  • feat: add option to disable warm panes (#120) (aea803e)
  • Add allow-predictions option to let users keep PSReadLine predictions (#150) (4efd7c1)
  • test: add 38-case integration test for set-hook -ga append (#133) (17ab525)
  • fix: set-hook -ga (append) now works per tmux semantics (#133) (75603a9)
  • Hide injected cd command from user on warm session claim (ae510e2)
  • fix: improve command prompt editing in client mode (fixes #149) (2d6b113)
  • fix(#146): add scrolling to static popups, fix command dispatch architecture (c582a21)
  • fix(#146): list commands now show popup overlay from command prompt (32a4c3f)
  • fix: pane removal focus loss and active pane misreport (#140) (10edfe1)
  • fix: quote session/window/pane names in control protocol commands (191a763)
  • fix(display-panes): unify prefix q with server display-panes path (#72) (797e052)
  • fix(nav): wrapped directional pane navigation stays in same column/row (#141) (693540f)
  • fix: display-panes pane selection and base index in server mode (#143, #72) (e9cdb93)
  • fix: display-panes no longer freezes the client (#144) (caaa484)
  • fix: source-file command not working inside session (#145) (7e535e8)
  • fix(#146): list commands now work from within a psmux session (be03942)
  • fix: zoom wrap nav, warm pane spawn, test stabilization, SKILL.md (b47782e)
  • FIX: Update tppanel link to new address (edfa57c)
  • fix: eliminate env var echo in warm panes, replace PTY injection with process-level env vars (#137) (8c98d27)
  • fix: make window_zoomed_flag per-window instead of global (fixes #125 follow-up) (388e131)
  • fix(input): Shift+Enter native injection for PSReadLine compatibility (#121) (a72aa40)
  • ci: add NSIS installer build to release workflow (d88f3d9)
  • fix: proper test infrastructure for install_speed and paste tests (dba5f5c)
  • fix: zoom navigation, show-options, default-terminal, test reliability (e4b05b1)

Downloads

Portable (zip):

Platform File
Windows x64 (Intel/AMD 64-bit) psmux-v3.3.1-windows-x64.zip
Windows x86 (Intel/AMD 32-bit) psmux-v3.3.1-windows-x86.zip
Windows ARM64 (Snapdragon/Surface Pro X) psmux-v3.3.1-windows-arm64.zip

Installer (NSIS setup — kills running instances, adds to PATH, warmup):

Platform File
Windows x64 psmux-v3.3.1-x64-setup.exe
Windows x86 psmux-v3.3.1-x86-setup.exe
Windows ARM64 psmux-v3.3.1-arm64-setup.exe

Installation

Via Scoop (recommended):

scoop bucket add psmux https://github.com/psmux/scoop-psmux
scoop install psmux

Via Chocolatey:

choco install psmux

Via WinGet:

winget install marlocarlo.psmux

Via Cargo:

cargo install psmux

Via PowerShell:

irm https://raw.githubusercontent.com/psmux/psmux/master/scripts/install.ps1 | iex

Manual Installation:

  1. Download the zip matching your architecture
  2. Extract to a folder in your PATH
  3. psmux, pmux, and tmux commands will all be available

What's Included

  • psmux.exe - Main executable
  • pmux.exe - Alias
  • tmux.exe - Alias for tmux compatibility

v3.3.0

19 Mar 19:56

Choose a tag to compare

psmux v3.3.0

Terminal multiplexer for Windows - tmux alternative for PowerShell and Windows Terminal.

Changelog (v3.2.0 → v3.3.0)

  • fix(ci): publish sub-crates before main crate, bump vt100-psmux 0.16.4 and portable-pty-psmux 0.9.2 (abde5df)
  • fix(ci): add --allow-dirty for crates.io publish, add WinGet schema headers (25a78de)
  • chore: bump version to 3.3.0 (b7a9748)
  • Update dependencies: crossterm 0.29, nix 0.31, downcast-rs 2.0, winreg 0.56; remove unused bitflags v1 (e791e2e)
  • Add NSIS installer, build script, and installer test (24cc767)
  • fix: add XDG plugin path support for @plugin discovery (#135) (6aae680)
  • feat: document and test vim-style bind-key -n C-hjkl pane navigation (discussion #130) (6353068)
  • fix(#134): zoomed wrapped directional navigation now unzooms and wraps (acb8ba8)
  • fix: set-hook -g replaces (not appends) and -gu removes hooks (#133) (740b527)
  • add tests for bell/activity/silence detection, window flags, allow-rename, update-environment (9633755)
  • implement tmux options: bell detection, activity/silence monitoring, allow-rename, update-environment (f960a45)
  • fix: map default-terminal to TERM env var, prevent hyphenated tmux options from leaking as PowerShell env vars (fixes #137) (cce1d4a)
  • fix: warm claim race condition causing 'auth failed' on bare psmux (#136) (f50fe1f)
  • test runner: add rich dashboard with progress bar, ETA, live stats, and category breakdown (96b687f)
  • refactor: move all Rust tests to tests-rs/ directory (f69a0cc)
  • fix: paste line-ending normalization (PR #131) + Shift+Enter ConPTY encoding (PR #132) (abd5e25)
  • feat: auto-generate changelog in GitHub release workflow (208dfaa)
  • fix: client_prefix flag not set when prefix key is pressed (closes #126) (f43977a)
  • fix: window_zoomed_flag not updating immediately in status bar (closes #125) (7010f13)
  • fix: forward Shift+Enter, Ctrl+Enter modifiers to child process (a761f3e)
  • fix: 6 client-server mode bugs + backslash escape (#118, #123) (b37c89e)
  • fix: -f global option now works correctly (#119) (5836f8f)
  • chore: update all URLs and author from marlocarlo to psmux org (0dbc242)

Downloads

Platform File
Windows x64 (Intel/AMD 64-bit) psmux-v3.3.0-windows-x64.zip
Windows x86 (Intel/AMD 32-bit) psmux-v3.3.0-windows-x86.zip
Windows ARM64 (Snapdragon/Surface Pro X) psmux-v3.3.0-windows-arm64.zip

Installation

Via Scoop (recommended):

scoop bucket add psmux https://github.com/psmux/scoop-psmux
scoop install psmux

Via Chocolatey:

choco install psmux

Via WinGet:

winget install marlocarlo.psmux

Via Cargo:

cargo install psmux

Via PowerShell:

irm https://raw.githubusercontent.com/psmux/psmux/master/scripts/install.ps1 | iex

Manual Installation:

  1. Download the zip matching your architecture
  2. Extract to a folder in your PATH
  3. psmux, pmux, and tmux commands will all be available

What's Included

  • psmux.exe - Main executable
  • pmux.exe - Alias
  • tmux.exe - Alias for tmux compatibility

v3.2.0: Instant new-session via warm server claiming

17 Mar 03:03

Choose a tag to compare

psmux v3.2.0

Terminal multiplexer for Windows - tmux alternative for PowerShell and Windows Terminal.

Downloads

Platform File
Windows x64 (Intel/AMD 64-bit) psmux-v3.2.0-windows-x64.zip
Windows x86 (Intel/AMD 32-bit) psmux-v3.2.0-windows-x86.zip
Windows ARM64 (Snapdragon/Surface Pro X) psmux-v3.2.0-windows-arm64.zip

Installation

Via Scoop (recommended):

scoop bucket add psmux https://github.com/marlocarlo/scoop-psmux
scoop install psmux

Via Chocolatey:

choco install psmux

Via WinGet:

winget install marlocarlo.psmux

Via Cargo:

cargo install psmux

Via PowerShell:

irm https://raw.githubusercontent.com/marlocarlo/psmux/master/scripts/install.ps1 | iex

Manual Installation:

  1. Download the zip matching your architecture
  2. Extract to a folder in your PATH
  3. psmux, pmux, and tmux commands will all be available

What's Included

  • psmux.exe - Main executable
  • pmux.exe - Alias
  • tmux.exe - Alias for tmux compatibility

v3.1.0-fix-70-71

12 Mar 18:23

Choose a tag to compare

psmux v3.1.0-fix-70-71

Terminal multiplexer for Windows - tmux alternative for PowerShell and Windows Terminal.

Downloads

Platform File
Windows x64 (Intel/AMD 64-bit) psmux-v3.1.0-fix-70-71-windows-x64.zip
Windows x86 (Intel/AMD 32-bit) psmux-v3.1.0-fix-70-71-windows-x86.zip
Windows ARM64 (Snapdragon/Surface Pro X) psmux-v3.1.0-fix-70-71-windows-arm64.zip

Installation

Via Scoop (recommended):

scoop bucket add psmux https://github.com/marlocarlo/scoop-psmux
scoop install psmux

Via Chocolatey:

choco install psmux

Via WinGet:

winget install marlocarlo.psmux

Via Cargo:

cargo install psmux

Via PowerShell:

irm https://raw.githubusercontent.com/marlocarlo/psmux/master/scripts/install.ps1 | iex

Manual Installation:

  1. Download the zip matching your architecture
  2. Extract to a folder in your PATH
  3. psmux, pmux, and tmux commands will all be available

What's Included

  • psmux.exe - Main executable
  • pmux.exe - Alias
  • tmux.exe - Alias for tmux compatibility

v3.1.0-fix-103

12 Mar 18:06

Choose a tag to compare

psmux v3.1.0-fix-103

Terminal multiplexer for Windows - tmux alternative for PowerShell and Windows Terminal.

Downloads

Platform File
Windows x64 (Intel/AMD 64-bit) psmux-v3.1.0-fix-103-windows-x64.zip
Windows x86 (Intel/AMD 32-bit) psmux-v3.1.0-fix-103-windows-x86.zip
Windows ARM64 (Snapdragon/Surface Pro X) psmux-v3.1.0-fix-103-windows-arm64.zip

Installation

Via Scoop (recommended):

scoop bucket add psmux https://github.com/marlocarlo/scoop-psmux
scoop install psmux

Via Chocolatey:

choco install psmux

Via WinGet:

winget install marlocarlo.psmux

Via Cargo:

cargo install psmux

Via PowerShell:

irm https://raw.githubusercontent.com/marlocarlo/psmux/master/scripts/install.ps1 | iex

Manual Installation:

  1. Download the zip matching your architecture
  2. Extract to a folder in your PATH
  3. psmux, pmux, and tmux commands will all be available

What's Included

  • psmux.exe - Main executable
  • pmux.exe - Alias
  • tmux.exe - Alias for tmux compatibility

v3.1.0-fix-102

12 Mar 18:05

Choose a tag to compare

psmux v3.1.0-fix-102

Terminal multiplexer for Windows - tmux alternative for PowerShell and Windows Terminal.

Downloads

Platform File
Windows x64 (Intel/AMD 64-bit) psmux-v3.1.0-fix-102-windows-x64.zip
Windows x86 (Intel/AMD 32-bit) psmux-v3.1.0-fix-102-windows-x86.zip
Windows ARM64 (Snapdragon/Surface Pro X) psmux-v3.1.0-fix-102-windows-arm64.zip

Installation

Via Scoop (recommended):

scoop bucket add psmux https://github.com/marlocarlo/scoop-psmux
scoop install psmux

Via Chocolatey:

choco install psmux

Via WinGet:

winget install marlocarlo.psmux

Via Cargo:

cargo install psmux

Via PowerShell:

irm https://raw.githubusercontent.com/marlocarlo/psmux/master/scripts/install.ps1 | iex

Manual Installation:

  1. Download the zip matching your architecture
  2. Extract to a folder in your PATH
  3. psmux, pmux, and tmux commands will all be available

What's Included

  • psmux.exe - Main executable
  • pmux.exe - Alias
  • tmux.exe - Alias for tmux compatibility