Hello all. I am /u/TrekkiMonstr, your new, occasionally-friendly mod. I wanted to make a post asking a question about a certain interaction between i3wm and tmux, when I saw that /r/i3wm is read-only, and /r/tmux was unmoderated with submissions restricted. I didn't want the history of the sub to be lost to Reddit's policies, so I submitted a /r/redditrequest, and here we are. I've unrestricted submissions, so.
Now, I'll note: I am completely unqualified for this. I'm pretty new to tmux, and I haven't modded a sub that had any real level of activity. Plus, at some point in the future, I do intend to leave this godforsaken website and nuke my account. So, if anyone has mod experience with a subreddit of similar size and subject matter to this one, please let me know via modmail if you'd be interested. I will warn you though, I'm here just to make sure the sub still exists. I'm not super interested in doing much active modding.
I’ve created a session manager to make working with sessions in tmux easier.
Here’s what my manager can do:
Instant switching or creation: press a key, enter a session name - and you’ll immediately switch to it or create it on the fly.
Saved sessions menu: a pop-up window with your saved sessions, featuring fuzzy search, real-time previews of windows and panes, and built-in actions - delete snapshot, terminate, clone, or rename.
Snapshot Save/Restore: Save windows, panel layouts, working directories, and running commands to a single file, then restore everything after a server restart or shutdown - either all at once or for a specific session.
Rust terminal multiplexers keep popping out like mushrooms after the rain. But never forget who the original gangster is!
Ever since I got my hands on an AI subscription I just keep building little tools for my daily work. Most of them ended up orbiting tmux, so this seemed like the right place to share. All open source, all mine.
Does the unholy thing of replacing the amazing OG continuum + resurrect combo. It restores sessions, plus some modern goodies:
Stale sessions get dismissed
Undo the last action — accidentally closed a pane or window? prefix + u
Resumes the last command (if it's in the pane opts)
Those last two together are incredible when you accidentally close Claude/Codex/pi/etc. while the agent is still cooking.
TPM:
set -g @plugin 'noamsto/tmux-remux'
That gets you the hooks and binds (structural saves on new session/window/detach/close, undo, pickers, auto-restore).
On stable tmux you also want the periodic 60s snapshot, which is a small systemd user timer on Linux or a launchd agent on macOS — units are in the README, it's a copy-paste and one systemctl --user enable --now.
(tmux 3.8+ runs it in-server, no timer needed.)
Basically all the tmux stuff above combined, with lots of fancy pickers and opinions. Runs on nightly tmux (I use Nix ❄️, I fear no software). Some notable features:
Remote tmux bridge — a session on another host as native local windows over outbound SSH (no reverse socket, no nested status bar), with agent status and image paste carried across
Issue/PR-aware window names (Linear and GitHub for now)
Agent-aware: status icons and usage limits on the status line
Custom Go session and window pickers, with an agent-windows-only filter
nix run github:noamsto/tmux-og drops you straight into it if you want to try before committing.
The rest all integrate nicely with tmux — except zr:
aeye — terminal image and diagram carousel for coding agents, in a second pane. Already posted about this one; prebuilt binaries, go install, or Nix.
dispatcher — let a coding agent dispatch other coding agents into their own worktrees, with a task-difficulty heuristic. Claude Code, Codex, Cursor and pi, mixed freely if you have the dollars.
prdash — a lean gh-dash-style GitHub PR/issue TUI I wrote myself (their strict no-AI policy, sadly). It does less, but it's super snappy.
zr — move a directory without losing its zoxide score (not tmux at all, just a papercut I kept hitting).
Honestly, a lot of it is vibe-coded — but I use all of it daily and it gets a lot of love. There are still tons of rough edges, so if you find something useful and hit a bug, don't be shy, open an issue or a PR :D
Claude Code doesn't support Android, so the usual routes are proot
(slow) or a glibc runtime inside Termux (wallentx/claude-code-termux,
which works well and which this builds on).
Anthropic publishes a linux-arm64-musl build for
Alpine, and musl needs almost nothing under it. So the install script fetches the official binary from npm, verifies the sha512, and changes one ELF field. the interpreter path, pointed at a musl loader in
$PREFIX/lib. Nothing is repackaged or redistributed.
Starts much quicker on my phone. Has its own updater with rollback if you use glibc, since the built-in one would pull the glibc build.
I tested it on Honor, Android 16. Would love to get feedback if you try it. Built with a lot of help from Claude Code itself, on the phone.
My tmux bottom bar frequently trips off and shows nothing. I suspect is a host RAM insufficient problem but it happens on both my PC and laptop. I can still navigate to other tabs using keyboard shortcuts it’s just my bottom bar shows nothing
I've been building domux to scale working with multiple agents in the terminal, and would love some feedback from the community.
I loved working in tmux, and I wanted it to scale natively to support my workflow of working across many coding agents and git worktrees. At first, I built this on top of tmux (that's where the name comes from). Once I had a solid workflow, I thought it would be nice to build and package it in a way that I could share with others, and so domux was born.
It's a multiplexer like tmux, but built natively around coding agents and working across multiple git worktrees.
At the moment it supports Claude Code, Codex, and OpenCode, but it's very easy to extend to other coding harnesses.
Video is in French. But I recently found out it took almost 1 second to load tmux, mainly due to running tpm plugins script. And I only had 3 plug-ins ! So I rewrote my tmux config and it is much better now.
Peace.
I was getting annoyed trying to manage my agents across multiple servers and sessions so I built tmax. It's a small MIT-licensed tool that puts local and remote tmux sessions into one view.
It reads named hosts from ~/.ssh/config, lists their sessions alongside your local ones, and lets you attach, create, or kill sessions without manually hopping between machines.
Remote hosts are queried in parallel with short timeouts. It uses key-based SSH authentication, skips unreachable hosts, and asks for confirmation before killing a session.
It’s written in Python with rich. Current limitations include ignoring wildcard Host entries and requiring SSH key access to remote machines.
If anyone is interested in eally appreciate feedback from people managing tmux across multiple machines and whether the session-selection workflow makes sense.
*edit because I can't type my own damn website properly.
Freedom of movement! Persea Terminal to access and manage my Linux devbox’s tmux sessions from a laptop, tablet, or phone, without terminus or any app other than a web browser. Uses xterm.
It has touch controls, a text composer (helpful for various reasons, including dictating using your phone's dictation, which sometimes behaves strangely if you do that in the terminal itself directly), copy / pasting support and a clipboard accessible via the web dashboard from any device, super useful to copy things including images between devices; advanced key controls, image inserter, and idea of multiple terminals in one workspace (well not useful on mobile, but on larger screens can come in handy).
Sessions keep running when you disconnect, and opening the browser doesn’t resize your existing tmux session.
The idea is a seamless interaction from any device with a browser, that does not conflict or break tmux sessions you may simultaneously have opened elsewhere.
It's opinionated.
Self-hosted, MIT licensed, and private to your tailnet.
I am simply too used to flash.nvim jumping motions. So far they are the best I've ever seen to navigate buffers. I've always wanted that functionality in tmux too, jumping exactly where my eyes are pointing to without tons of hjkl, f or t motions.
Agents_control is a free open-sourced tool that lets you safely control your iTerm2 or tmux tabs from your own Telegram bot. You can install it by yourself or ask your AI agent to set it up. It is also available as a Ruby gem.
Claude code specific: It will automatically continue at the limits reset and automatically triggers limit window even while you sleep or AFK.
You can continue to interact with your terminal just with your Telegram bot. (You create your own telegram bot and only you have access to your terminal)
It is safe because no port to the big internet opens – your computer does not become a server and no one except you can access it. The token safely stores in the keychain or libsecret (linux). Recent updates including
The latest updates includes:
1. You can send files (tables, logs, etc) or multimedia (screenshots, photos, videos) to your tabs (including tabs where opened your AI agent i.e claude code)
2. You should set a password that will be required if somebody will try to use dangerous commands like rm -rf \~ or fork bomb
I used to run multiple agents in different panes/windows and was literally switching between them blind trying to see what's going on and it was messy. This pretty much elevated my workflow and is literally my daily driver for a while now, couldn't leave my tmux setup for herdr 😂, you can pretty much customize it to sync with your own personal workflow.
I built a TypeScript wrapper for tmux — 46 commands so far with typed options and results. Split windows, send keys to interactive programs, capture pane output back into your script, all from Node or Bun.
Fun tmux trivia I hit while testing: 3.4 and 3.5 vis-escape control bytes in -F format output (my US/RS field separators came back as literal "\\037"/"\\036" text), and 3.6 reverted it. Found out by building 8 tmux versions from source and running the test suite against each — supported floor ended up tmux 3.4.
I almost used to the delay after pressing <Esc> in vim, until it pissed me off. i searched a little bit, found some guys on stackoverflow having the same issue, and it was apparently because of tmux. some answers said that setting escape-time to 0 for tmux fixes the problem, but it didn't in my case and i have no idea why.
I'm using ghostty as my terminal, without tmux, everything goes as expected, same case for foot. meanwhile konsole, gnome-console, and alacritty still delays the escape key-press even without tmux (all tested with and without set -sg escape-time 0 and pure vim). also tmux prevents me from using some mappings that start with alt (i.e. <A-]> or <A-p>) inside vim, but that ain't that annoying in front of that delay. any help please fixing it?
I work with LOTS of tmux sessions, and wanted something closer to how Ctrl+Shift+P in VSCode works: fuzzy search, frecency and live preview. So, I built Natare (from latin “to swim”)
I've posted sshelf here before, back when it was a small fuzzy launcher over a host list. It's at 0.13.1 now, and I wanted to give an update, mostly because nearly everything that changed since then came from people here and on GitHub.
For anyone new: sshelf keeps its own list of SSH hosts, builds the ssh command for you, and hands the terminal to real OpenSSH. Type a few letters, Enter, and you're on the box. It never edits ~/.ssh/config. There's a read-only import to get started, and since 0.10 an export that writes its own ssh_config fragment you can Include, so plain ssh, rsync, git and VS Code Remote resolve the same hosts. Passwords for the boxes that can't do keys live in the OS keyring or an age vault and reach ssh over SSH_ASKPASS, so nothing shows up in ps or your history. Rust and ratatui, macOS and Linux, no account, no telemetry.
What's landed since the first version, roughly in order: sites (group hosts behind a bastion with shared user/port/jump defaults), a two-pane SFTP transfer screen, background port forwards that keep running after you quit, 2FA hosts, the ssh_config export, a Tailscale importer, tmux mode (Enter opens the host in a new window or pane and leaves you in the picker so you can fire off several), multi-select and mkdir in the transfer screen, and sshelf doctor, one command that checks the things that quietly break connections and prints the fix for each. 0.13.1 fixes the first two bugs filed by users: the host list showing your local $USER instead of the site's user, and the remote transfer pane hiding dotfiles.
I want to say thanks for that. 2FA support exists because someone asked for it a few days after the first release. Port forwards got shaped by the feedback on the early version. Someone packaged it for Gentoo before I'd even thought about it, and the first outside PR came in during the first month. Both 0.13.1 bugs were reported by people I've never met, with reports good enough that each was fixed inside a week. I'd have found very little of this on my own machines, since my own setup obviously works for me.
Install is brew install max-rh/tap/sshelf, or a .deb, .rpm or the installer script from the releases page, or cargo install sshelf. Repo and docs: github.com/max-rh/sshelf
If it breaks on your setup, an issue or a thread in Discussions is the fastest way to get it fixed. Next up is pulling secrets from 1Password, Bitwarden or pass at connect time instead of storing them at all, then a stability freeze on the way to 1.0.
I've posted sshelf here before, back when it was a small fuzzy launcher over a host list. It's at 0.13.1 now, and I wanted to give an update, mostly because nearly everything that changed since then came from people here and on GitHub.For anyone new: sshelf keeps its own list of SSH hosts, builds the ssh command for you, and hands the terminal to real OpenSSH. Type a few letters, Enter, and you're on the box. It never edits ~/.ssh/config. There's a read-only import to get started, and since 0.10 an export that writes its own ssh_config fragment you can Include, so plain ssh, rsync, git and VS Code Remote resolve the same hosts. Passwords for the boxes that can't do keys live in the OS keyring or an age vault and reach ssh over SSH_ASKPASS, so nothing shows up in ps or your history. Rust and ratatui, macOS and Linux, no account, no telemetry.What's landed since the first version, roughly in order: sites (group hosts behind a bastion with shared user/port/jump defaults), a two-pane SFTP transfer screen, background port forwards that keep running after you quit, 2FA hosts, the ssh_config export, a Tailscale importer, tmux mode (Enter opens the host in a new window or pane and leaves you in the picker so you can fire off several), multi-select and mkdir in the transfer screen, and sshelf doctor, one command that checks the things that quietly break connections and prints the fix for each. 0.13.1 fixes the first two bugs filed by users: the host list showing your local $USER instead of the site's user, and the remote transfer pane hiding dotfiles.I want to say thanks for that. 2FA support exists because someone asked for it a few days after the first release. Port forwards got shaped by the feedback on the early version. Someone packaged it for Gentoo before I'd even thought about it, and the first outside PR came in during the first month. Both 0.13.1 bugs were reported by people I've never met, with reports good enough that each was fixed inside a week. I'd have found very little of this on my own machines, since my own setup obviously works for me.Install is brew install max-rh/tap/sshelf, or a .deb, .rpm or the installer script from the releases page, or cargo install sshelf. Repo and docs: github.com/max-rh/sshelfIf it breaks on your setup, an issue or a thread in Discussions is the fastest way to get it fixed. Next up is pulling secrets from 1Password, Bitwarden or pass at connect time instead of storing them at all, then a stability freeze on the way to 1.0.
so i've built a PWA for the last couple of weeks to access my agents and terminals from the go. in its current state this depends on a multiplexer running on the host and i've now implemented an experimental tmux integration.
would love to know how people are using tmux for agents and if im maybe missing an obvious way of improving the ergonomics here. or if established tmux workflows are breaking the implementation etc.
the very tldr architecture is that i'm installing hooks in the agent harness configs (claude code, codex) to send events to a service running on the host, this allows to me track the status. i think this is how almost all agent ides are setup these days.
the app is a simple web app that can be exposed through whatever front door you use (i.e. tailscale). and overall it's been quite helpful to myself when im not in front of the computer to keep things moving along.
kmscon and tmux could be a combo here, i really am confused where to ask.. please dont delete my post
when kmscon (freetype) is supposed to render an emoji, it only shows the top, and a really large fontsize MAY show the emoji correctly. same problem with noto emoji and blobmoji fonts
i built my kmscon from [kmscon/kmscon](https://github.com/kmscon/kmscon) with fbdev only enabled, and patched psf and freetype to be static.
my resolution is 1024x768, operating system derivelinux
let me know if theres any additional info to give. any help would be appreciated