HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
tmux-python
tmuxp
Python2014–2024
tmux-python / tmuxp

tmuxp

🖥️ Session manager for tmux, built on libtmux.

8Distinct people
21Mentions
0Explicit recommenders
4.6KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

🖥️ Session manager for tmux, built on libtmux.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 12:54:37 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year21 dated mentions

Observed mentions: 2014-05-16 22:07:05 UTC to 2024-02-05 13:44:38 UTC.

02462014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 7 mentions; 3 submissions, 4 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2024

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC101
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC000
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC734
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC404
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC303
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC202
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC202

What Hacker News says

21 sources
You can use the tmux API or a plugin like tmuxp[1] to load a pre-configured session (including running arbitrary shell commands and setting layout). Using this you could automatically spawn your ssh connections as nested tmux sessions. Obviously this brings some complications, namely that you need to set different prefix keys (or double press prefix) and any non-prefix hotkeys always get sent to your local session. Personally I just configure remote tmux to have only prefixed keybinds and never make any complicated layouts on remote sessions so that having to press <inner-prefix> + <key> doesn't get annoying. [1]: https://github.com/tmux-python/tmuxp
In Zellij: A terminal workspace with batteries included
Using tmux + tmuxp[1] you can load a pre-configured session and execute arbitrary shell commands for the session, window and pane. I use this to set up shells and editors in the correct dirs (and/or hosts), load lang environments, set env vars and source some zsh aliases and functions that I only want per project. The end result is that I can set up my dev environment (shells with different environments, neovim windows, test runner, various linters I don't wannt integrate into nvim) with a single "tmuxp load <project>". edit: That is just my personal killer feature, obviously having a terminal setup that is consistent cross platform and great for stream processing is a given. [1]: https://github.com/tmux-python/tmuxp
In Zellij: A terminal workspace with batteries included
I wrote libtmux (https://libtmux.git-pull.com) as a way to control tmux via python objects. In the backend, it's all tmux CLI commands. tmuxp (https://tmuxp.git-pull.com), similar to tmuxinator, uses libtmux under the hood to build workspaces from a yaml/json file: https://github.com/tmux-python/tmuxp/blob/master/tmuxp/works... Despite that, I've found some people prefer just using plain tmux scripting (https://twitter.com/bitprophet/status/561356905843392514). Aside: That's Jeff Forcier, creator of fabric (http://www.fabfile.org/) Through tmux's formats (http://man7.org/linux/man-pages/man1/tmux.1.html#FORMATS), you can about any info you'd like on your workspace. An area I don't know about is -C (control mode). libtmux could technically use it to get live updates rather than inefficiently and possibly needlessly querying session/window/
Read the rest
pane info to keep objects up to date. Apparently iterm2's tmux integration uses it.
In Scripting tmux
I have 3 live projects using click. I like it. Caveat: Click's docs were out of date and had open bugs for what feels like years until it finally updated to 7. version 6 was "unstable" https://github.com/pallets/click/issues/503. Hopefully it's over now. Good things: - More concise than standard library argparse - Testing via CliRunner (http://click.palletsprojects.com/en/7.x/testing/), example: https://github.com/tmux-python/tmuxp/blob/v1.5.3/tests/test_... Feel free to study / copy from mine if you like (license MIT): - https://cihai-cli.git-pull.com/: https://github.com/cihai/cihai-cli/blob/v0.5.0/cihai_cli/cli... - https://tmuxp.git-pull.com/: https://github.com/tmux-python/tmuxp/blob/v1.5.3/tmuxp/cli.p... - https://vcspull-git-pull.com/: https://github.com/vcs-python/vcspull/blob/v1.2.0/vcspull/cl...
In Easy Python CLI with Click
The benefit of tmuxp is pretty clear from its README[1]. It gives this example: session_name: 4-pane-split windows: - window_name: dev window layout: tiled shell_command_before: - cd ~/ # run as a first command in all panes panes: - shell_command: # pane no. 1 - cd /var/log # run multiple commands in this pane - ls -al | grep \.log - echo second pane # pane no. 2 - echo third pane # pane no. 3 - echo forth pane # pane no. 4 The example is very simple (I use tmuxp to heavily configure the session initialization), but it shows how you can have a config file to set a session's name, set the number and names of windows in there, set the layout of panes differently if you want in each wi
Read the rest
ndow, run commands like "cd", set env vars differently if you want, in each pane. You can find a lot more examples of tmuxp config on its doc site[2]. tmux doesn't allow one to have such quick, easy-to-read config files. You can of course do most of this in your .tmux.conf, but it will be too complicated to allow reuse and quick modifications. [1]: https://github.com/tmux-python/tmuxp#load-a-tmux-session [2]: https://tmuxp.git-pull.com/en/latest/examples.html
In Ask HN: What are your favorite terminal programs?
Like python? I'm could use a hand. The codebase across all of these projects are solid. CI already wired in, including Sphinx + ReadTheDocs. Help could be QA'ing pull requests, making features, documentation, and so on. Here's an example project: https://tmuxp.git-pull.com - Request: https://github.com/tony/tmuxp/issues/290 Anything else on the sidebar, underneath of "Projects" of https://git-pull.com Of all those, cihai (https://cihai.git-pull.com) doesn't have as much traction, but if you like Chinese/Japanese/Korean, it may be a fit. I'm building it to be a successor to Christoph Burgmer's cjklib (https://pypi.python.org/pypi/cjklib).
In Ask HN: Small Open source projects that need contributions
This is a bit late, but in the book The Tao of tmux, I delve into how I use Makefile's to create cross-platform file watchers that can trigger unit tests. https://leanpub.com/the-tao-of-tmux/read#file-watching I use Makefile's regularly on open source and personal profiles (e.g. https://github.com/tony/tmuxp/blob/master/Makefile). Feel free to take and use that code, it's available under the BSD license. The creativity comes in when dealing with cross-platform compatibility: Not all file listing commands are implemented the same. ls(1) doesn't work the same across all shell systems, and find on BSD accepts different arguments than GNU's find. So to collect a list of files to watch, we use POSIX find and store it in a Make variable. Then, there's a need to get a cross platform file watcher. This is tricky since file events work differently
Read the rest
across operating systems. So we bring in entr(1) (http://entrproject.org/). This works across Linux, BSD's and macOS and packaged across linux distros, ports, and homebrew. Another random tip: For recursive Make calls, use $(MAKE). This will assure that non-GNU Make systems can work with your scripts. See here: https://github.com/liuxinyu95/AlgoXY/pull/16
In Ask HN: In what creative ways are you using Makefiles?
I designed tmuxp (https://tmuxp.git-pull.com) to pretty much deliver the CLI version of a workspace using tmux (https://tmux.github.io/). Works cross platform (Linux, BSD, macOS). And it's been doing the trick for years. Prior to building the tmux workspace, it even can call a bootstrap script (https://github.com/tony/tmuxp/blob/master/bootstrap_env.py) to check for and install dependencies. When a tmuxp session file (https://github.com/tony/tmuxp/blob/master/.tmuxp.yaml) is loaded, it automatically can source the user into virtualenvs, launch file watchers, and so on. Saves so much time. Since most software projects involve the same flow (installing packages locally for the project, launching a test runner.) Other things that help keeping it cross platform are using Makefile and commands conforming to POSIX (https://github.com/tony/tmuxp
Read the rest
/blob/master/Makefile). So when bringing up a list of files for entr (a file watcher http://entrproject.org/) to run commands when files are saved, use posix find arguments only. Use $(MAKE) for recursive calls (https://www.gnu.org/software/make/manual/html_node/Recursion...).
In Workspaces for Mac 1.0
The declarative nature of having a YAML/JSON config that consistently abstracts out the commands you'd make. It prevents the mistakes and repetition scripting tmux entails. In addition, there's no need to worry about shell scripting portability across systems. I personally use macOS, Linux and BSDs, so I have to take extra time to ensure my scripts work on machines without Bash. For some shortcuts, tips, and tricks on tmux, I have a section in a book I've recently published at https://leanpub.com/the-tao-of-tmux/read#scripting-tmux. It's freely available online. It covers command aliases, pattern matching, targets and formats. > Side note: tmux has an annoying misfeature that panes can't be named nor does their numbering stay stable. It's a bit tricky to programmatically set up a bunch of panes (can't do `tmux split-window -t mysession:my
Read the rest
window.mypane` The internal pane_id stays the same. If you're using a library like libtmux (https://libtmux.git-pull.com), you can keep reference to the pane after split-window commands and stuff. > So to get a specific layout, you need to do all your splits in a specific order. Yes, this is one of the reason tools like tmuxp, tmuxinator and tmuxomatic exist. tmuxp goes the extra mile and has integration tests across a matrix of tmux versions to assure complex configurations produce the intended result upon loading a session. (https://github.com/tony/tmuxp/tree/master/tests) Writing those tests took time, but were highly worth it when minor changes in the behavior of tmux popped up across versions.
In Show HN: tmuxp – session manager for tmux
entr is is what I eventually settled on after years of searching the perfect utility to build/run tests after file changes. After using gulp, grunt, watching_testrunner (which I eventually inherited maintainership of), watchman, watchdog (https://github.com/gorakhargosh/watchdog), sniffer (https://github.com/jeffh/sniffer) entr is cross-platform on OS X, linux and BSD. watching_testrunner has no BSD support watchman is way too big and not domain specific enough to my needs sniffer worked quite well but it required having a scent.py file everywhere entr keeps it all in a neat, unix like package you can pipe files to. I keep some example usage in my book, The Tao of tmux at https://leanpub.com/the-tao-of-tmux/read#leanpub-auto-file-w.... In this section I demonstrate my workflow with entr(1) in a Makefile. The code I use in the example shou
Read the rest
ld work across OS X / BSD / Linux (note the utilities like find(1) may behave a bit differently across unix-like systems). I use the Makefile w/ entr(1) in development on my projects like tmuxp at https://github.com/tony/tmuxp/blob/master/Makefile. tmuxp is BSD-licensed so you're free to work off that if you'd like to try it on your own project.
In Entr(1) – Run tests whenever files change
tony·Nov 23, 2016Submission

Show HN: I’m writing an ebook version of the Tao of tmux

A couple of years ago, I written an intro to tmux (https://tmux.github.io/) inside tmuxp's (https://github.com/tony/tmuxp) documentation called The Tao of tmux (https://tmuxp.readthedocs.io/en/latest/about_tmux.html). I'm in the process of turning it into a feature book. I am aiming for a December 23rd, 2016 release and am plugging away full time. I make it available to read on the web for free at https://leanpub.com/the-tao-of-tmux/read. The GitHub is at https://github.com/git-pull/tao-of-tmux. For pre-ordering: - The Leanpub page (updated on a regular basis) is https://leanpub.com/the-tao-of-tmux. - Amazon Kindle: https://www.amazon.com/gp/product/B01MG342KU - iTunes: https://geo.itunes.apple.com/us/book/the-tao-of-tmux/id1168912720 Also I have a coupon for pre-orders @ $7.99 https://leanpub.com/the-tao-of-tmux/c/oBsI4y3o4quu. So there
Read the rest
are 2 other books available in the now. I prefer my style of writing about tmux and teaching, since I maintain a few open source libraries for tmux I bring my own perspective along. Also I'd rather stay away from publishers, again, I prefer a book that's available for free to read on the web, DRM-free if you pay, and not have to worry about printing :). It's my first book ever so I feel a lot of pressure to get it done right. I'm definitely open to feedback and requests to add things. I feel a duty to make a really good book for the community. Any help to spread the word is much appreciated!
67 points · Open discussion
git-pull·Nov 20, 2016Submission

Show HN: I'm writing an ebook version of The Tao of tmux

A couple of years ago, I written an intro to tmux (https://tmux.github.io/) inside tmuxp's (https://github.com/tony/tmuxp) documentation called The Tao of tmux (https://tmuxp.readthedocs.io/en/latest/about_tmux.html). I'm in the process of turning it into a feature book. I am aiming for a December 23rd, 2016 release and am plugging away full time. I make it available to read on the web for free at https://leanpub.com/the-tao-of-tmux/read. The GitHub is at https://github.com/git-pull/tao-of-tmux. For pre-ordering: - The Leanpub page (updated on a regular basis) is https://leanpub.com/the-tao-of-tmux. - Amazon Kindle: https://www.amazon.com/gp/product/B01MG342KU - iTunes: https://geo.itunes.apple.com/us/book/the-tao-of-tmux/id1168912720 Also I have a coupon for pre-orders @ $7.99 https://leanpub.com/the-tao-of-tmux/c/oBsI4y3o4quu. I've star
Read the rest
ted an indiegogo @ https://www.indiegogo.com/projects/the-tao-of-tmux-the-ebook So there are 2 other books available in the now. I prefer my style of writing about tmux and teaching, since I maintain a few open source libraries for tmux I bring my own perspective along. Also I'd rather stay away from publishers, again, I prefer a book that's available for free to read on the web, DRM-free if you pay, and not have to worry about printing :). It's my first book ever so I feel a lot of pressure to get it done right. I'm definitely open to feedback and requests to add things. I feel a duty to make a really good book for the community. Any help to spread the word is much appreciated!
6 points · Open discussion

Showing the 15 most recent of 21 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.