If you've been running several Claude Code sessions across tmux panes and windows, you know the pain of losing track of which agent is waiting on your input versus which one is chugging along fine. Developer fashton28 just dropped mux, a tmux overlay that aggregates all your active Claude Code sessions into a floating interface sorted by urgency—sessions blocking on user response bubble straight to the top. The overlay displays each session as a row with four pieces of info: a status indicator, the tmux session name, working directory, and elapsed time in the current state. The right pane shows a live preview of whatever session you've highlighted. Navigation uses familiar vim bindings—j/k to move through the list, Enter to jump straight into that session's pane (even across windows), and ctrl-x to SIGTERM it while leaving the pane intact as a shell. The status system is color-coded: blue dots mean waiting on your input (deal with these first), orange means actively working, green signals idle/done, and white question marks indicate unknown status. Rows sort automatically by urgency then by how long they've been in that state—meaning a session stuck waiting for hours floats to the very top. The timers refresh live while the overlay stays open. What makes mux slick is its zero-configuration approach. It reads Claude Code's own status files via jq instead of requiring you to wrap sessions or add custom logic per pane. Dependencies are minimal: tmux (any recent version), fzf >= 0.38 (for the fuzzy filtering and UI), jq, plus standard bash/ps already on your system—works fine on macOS 3.2 bash and Linux distros. Installation via TPM (the Tmux Plugin Manager) is the recommended path: clone TPM if needed, add fashton28/mux to ~/.tmux.conf alongside the TPM run line, reload config with tmux source-file ~/.tmux.conf, then press prefix + I to download. Without TPM, you can manually clone and source mux.tmux from your config, or drop the standalone script on your PATH if you want zero tmux integration. The default binding is prefix + u—customizable via set -g @mux-key 'C' in your config. Beyond the overlay UI, mux exposes subcommands for scripting: mux list prints the formatted session table, mux preview dumps a pane's live screen output, and mux jump/mux kill handle navigation and termination. The project also has a testable architecture—session-listing logic reads from environment variables (MUX_SESSIONS_DIR, MUX_PANES_FILE, etc.) so you can drive it with fixtures without needing a live tmux server or real Claude processes.

Key Takeaways

  • mux aggregates all Claude Code sessions into one overlay sorted by attention needed—no more hunting through panes
  • Zero per-session setup: reads Claude Code's status files directly via jq
  • Live preview pane shows the highlighted session's terminal output in real-time
  • TPM-based install takes under a minute; works on macOS and Linux with stock bash 3.2

The Bottom Line

This is exactly the kind of tool that gets invented when someone actually uses Claude Code for real work instead of just demoing it. mux removes the friction of context-switching between multiple agents, and the status sorting alone could save serious debugging time when you've got sessions hanging on API keys or permission errors. If you're running claude in tmux panes—adopt this yesterday.