| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
tmuxp 1.74.0 pairs a libtmux upgrade with a documentation overhaul. It bumps libtmux to 0.61.0 — hardening tmux 3.7 patch-line support — and teaches tmuxp debug-info to report the exact tmux patch release (3.7a/3.7b) instead of the numeric-normalized version. The docs also gain theme-aware inline diagrams and a concept-first rewrite that leads with what each feature is before its configuration.
The libtmux floor moves from ~=0.60.0 to ~=0.61.0, hardening tmux 3.7 patch-line support. libtmux's Pane.break_pane() now keeps tmux's own default window name on tmux 3.7a/3.7b instead of forcing libtmux, and a new get_version_str() helper exposes the raw tmux version string. tmux 3.2a–3.6 are unaffected.
tmuxp debug-info now shows tmux's full version, keeping the point-release letter (for example 3.7a) that was previously normalized away to 3.7. Because tmux patch releases can differ in behavior, the precise release is what a bug report needs.
Diagrams now render as theme-aware inline graphics that follow the site's light/dark palette and code styling, replacing the old static ASCII art. The workspace-builders guide gains a load → build → attach flow diagram, and the examples page shows each pane example as a faithful tmux window layout.
The docs now open with what each feature is before its configuration, in a consistent second-person voice, with advanced and Python-only material marked opt-in. New diagrams trace the plugin hook lifecycle, the CLI request flow, the workspace hierarchy, and what tmuxp load does inside an existing session.
The build-time mermaid diagram renderer, previously bundled with the docs, now comes from the reusable sphinx-gp-mermaid package. Rendered output is unchanged.
Full Changelog: v1.73.0...v1.74.
tmuxp can now build a workspace with a builder other than its built-in one. Point a workspace file's workspace_builder key at an installed builder — by registered name or by Python import path — and tmuxp loads the session through it. Builders that ship outside tmuxp's environment can be imported from directories listed in workspace_builder_paths, which tmuxp trusts only for that load. The built-in builder stays the default, so existing workspaces are unaffected.
Before sending a pane's layout and commands, tmuxp can wait for the shell to draw its prompt — a guard against a zsh prompt-redraw artifact. That wait is now a policy you set per workspace:
workspace_builder_options:
pane_readiness: auto # auto | always | never (also true/false)The new default, auto, waits only when the session's shell is zsh, so zsh users see no change while bash, sh, and other shells skip a wait they never needed. Set always to keep the previous wait-everywhere behavior, or never to skip it entirely.
tmuxp.workspace.builder is now a package. The default builder is ClassicWorkspaceBuilder, with WorkspaceBuilder kept as a backwards-compatible alias. Third-party builders implement WorkspaceBuilderProtocol (shaped to allow async builders later) and are resolved by resolve_builder_class() from an entry point or import path, with trusted import directories handled by resolve_builder_paths(). Builder behavior is configured through WorkspaceBuilderOptions and PaneReadiness, and resolution failures raise WorkspaceBuilderError and its subclasses.
See the custom workspace builders guide for details.
Full Changelog: v1.72.0...v1.73.0
libtmux 0.60.0 completes tmux 3.7 feature parity at the library layer tmuxp builds on: floating panes (Window.new_pane() / Pane.new_pane()), typed tmux 3.7 server, session, window, and pane options, new pane format variables, and new tmux 3.7 command flags. Every 3.7-only surface is version-gated, so tmux 3.2a-3.6 are unaffected. These APIs are reachable through tmuxp's Python API and tmuxp shell; the YAML workspace format is unchanged.
Full Changelog: v1.71.0...v1.72.0
tmuxp now supports tmux 3.7, which joins 3.2a through 3.6 in the tested version range. There are no behavior changes for users on earlier tmux releases.
Full Changelog: v1.70.1...v1.71.0
tmuxp 1.70.1 bumps libtmux to 0.58.1, fixing a pytest 9.1 plugin import failure that broke test collection for projects using tmuxp's or libtmux's fixtures.
Full Changelog: v1.70.0...v1.70.1
tmuxp 1.70.0 bumps libtmux to 0.58.0, fixing session and window listing on systems whose locale is not UTF-8.
Full release notes: https://tmuxp.git-pull.com/history/#tmuxp-1-70-0-2026-05-23
libtmux's subprocess output decoding previously relied on the system locale. On non-UTF-8 locales, the format-separator byte sequence could be corrupted, causing tmuxp's session and window listing to silently return empty results.
libtmux 0.58.0 forces UTF-8 encoding in subprocess.Popen, eliminating the locale dependency. See the libtmux 0.58.0 release.
Full Changelog: v1.69.0...v1.70.0
tmuxp 1.69.0 raises the libtmux floor to 0.57.1, bringing client-awareness, tmux-native filtering, and expanded format-token fields to tmuxp shell users.
Full release notes: https://tmuxp.git-pull.com/history/#tmuxp-1-69-0-2026-05-23
The libtmux bump pulls in the 0.57.x command-coverage and client-awareness releases. Scripts launched through tmuxp shell can now work with attached-client objects and use tmux-native filtering to query sessions, windows, and panes without manual post-filtering.
Highlights from libtmux 0.57.0 / 0.57.1:
Full Changelog: v1.68.0...v1.69.0
tmuxp 1.68.0 refreshes the documentation stack and developer workflow for the next release train. The docs now sit on the shared gp-sphinx platform, the API pages pick up the newer gp-furo visual language, and the test suite avoids paying for each contributor's interactive shell startup. The release also raises the libtmux floor so tmuxp shell users can script against the expanded tmux command wrapper surface.
tmuxp's docs were reshaped around a CLI-first frontend: a standalone homepage, clearer install and YAML examples, a stronger CLI reference, new exit-code and recipe pages, topic/project sections, redirects for moved pages, and the Python API moved under internals with clearer expectations for end users. See the 1.68.0 documentation notes.
The site now inherits shared gp-sphinx infrastructure instead of carrying repo-local Sphinx extension copies: Furo-based theme defaults, IBM Plex typography, packaged argparse documentation helpers, API badge styling, MyST-aware object references, and the sphinx-vite-builder asset pipeline. That keeps tmuxp aligned with the surrounding tmux-python docs while reducing custom docs plumbing in this repo.
Shell examples were standardized to one console command per block with $ prompts and continuation lines for long commands, so commands are easier to read and copy from the rendered docs. See the command-block notes.
tmuxp now requires libtmux~=0.56.0, picking up libtmux 0.55.1's test-socket cleanup and libtmux 0.56.0's broad command-coverage release. tmuxp's runtime imports stay on stable APIs, while tmuxp shell users can reach more upstream wrappers for interactive tmux commands, buffer I/O, key bindings, shell execution, and window/pane manipulation without falling back to raw cmd() calls. See the dependency notes and the libtmux 0.56.0 release.
The pytest suite now pins $SHELL=/bin/sh while tests run, so tmux panes created by fixtures skip zsh/bash profile startup and other local interactive shell work. On the measured local suite this reduced uv run py.test wall time from about 76 seconds to about 36 seconds, with no tmuxp runtime behavior change. See the development notes.
CHANGES was rewritten end to end in the new release-note style, preserving the full tmuxp history while making old and current entries easier to scan from the rendered history page.
Full Changelog: v1.67.0...v1.68.0
tmuxp load now shows a real-time animated spinner as windows and panes are created, replacing the static [Loading] message.
Presets — five built-in display formats:
| Preset | Description |
|---|---|
| default | Spinner + progress bar + current window |
| minimal | Spinner + percentage only |
| window | Spinner + window name + pane index |
| pane | Spinner + per-pane detail |
| verbose | Spinner + bar + window + pane + percentage |
New CLI flags:
Environment variables:
The spinner stops cleanly before interactive prompts (session switch, error recovery) and before tmux attach. Non-TTY environments automatically fall back to the original behavior.
Full Changelog: v1.66.0...v1.67.0
All modules now use logging.getLogger(__name__) with structured extra keys (tmux_session, tmux_window, tmux_pane, tmux_config_path, etc.) for filtering and aggregation. Library __init__.py adds
NullHandler per Python best practices. A new TmuxpLoggerAdapter provides persistent context for objects with stable identity.
Full Changelog: v1.65.0...v1.66.0
| Back | FazBrowse Home | New Git URL |