explaingit

cesarferreira/tmux.expose

41Rust

TLDR

tmux.expose is a small Rust command-line program that gives the tmux terminal multiplexer a Mission-Control-style session switcher.

Mindmap

A visual breakdown will appear here once this repo is fully enriched.

In plain English

tmux.expose is a small Rust command-line program that gives the tmux terminal multiplexer a Mission-Control-style session switcher. tmux already has a built-in way to jump between sessions, but it shows them as a flat list of names. tmux.expose instead renders every running session as a live text thumbnail in a grid, so the user can see what is in each session before picking one. The author frames it as switching by context rather than by name. The previews are text rendered from real tmux pane contents and preserve ANSI colours, so a syntax-highlighted editor or a coloured prompt looks the same in the thumbnail as in the actual pane. Keyboard flow follows tmux conventions: arrow keys or hjkl to move, Enter to switch to the highlighted session, q or Esc to leave without switching. Typing filters sessions by a fuzzy match on the name, Backspace edits the query, and the mouse can click a thumbnail directly. The default refresh interval is 500 milliseconds. Install is one command on crates.io: cargo install tmux-expose. There is also a tmux plugin, intended for use with TPM, which binds Alt+e by default to open the UI inside a tmux popup that covers the whole terminal. Pressing Alt+e again while the popup is open closes it without switching. All of the popup settings, key binding, key table, width, height, anchor (center, top, bottom, left, or right), background style, border style, and the command itself, are overridable as @tmux-expose-* options before the @plugin line. The README gives a worked example that binds tmux.expose to prefix+s and shows it as a bottom-anchored popup at 60 percent of the screen height. For users who do not use TPM, the README shows the equivalent raw tmux bind-key incantation that calls display-popup with the right environment variable to wire the toggle key. The Quickstart section also shows direct CLI flags: --thumbnail-width to enlarge previews, --columns to lock the grid to a fixed number of columns, and --refresh-interval to change the polling rate. The default behaviour sizes the grid so every session fits on screen. On macOS the README notes that a tool like BetterTouchTool, Hammerspoon, or Raycast can bind a trackpad gesture to the same display-popup command. The app itself stays terminal-only and uses no Mac-specific APIs. The project is MIT-licensed by Cesar Ferreira, has a CI badge for Rust tests, and asks contributors to run make check before opening a pull request.

Open on GitHub → Explain another repo

Generated 2026-05-21 · Model: sonnet-4-6 · Verify against the repo before relying on details.