Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
81 lines (56 sloc) 1.87 KB


This is a simple wrapper around tmux to allow you to define a session in a JSON file. This is to avoid having to do all the setup of making the session with a name, opening the windows with the right names and commands, and doing so in a consistent manner. Also, if the session already exists, it will just open it for you.


Simply install it from pypi:

pip install pytmux

or if you insist:

easy_install pytmux


To list all configs:

pytmux list

To run a config:

pytmux run <config>

To start a new configuration or edit an existing one:

pytmux edit <config>

To validate all of your configs:

pytmux doctor


JSON will be used for configs:

    "name": "sample",
    "directory": "~/devel/sample",
    "windows": [
            "name": "dev server",
            "command": "./ runserver"
        }, {
            "name": "some shell"
        }, {
            "command": "emacs"
        }, {}

Will open a tmux session named sample with 4 windows open. The first will be named dev server and will have ./ runserver running in it. The second will be a window named some shell which will have the system default shell running in it. The third will default to using automatic-rename and will have emacs running in it. The final will be a window with automatic-rename and the system default shell.


Honestly, I don't want to build this, but none of the currently existing tmux wrappers seem interested in supporting not naming windows and letting tmux do its automatic-rename thing. Also they use YAML and I prefer JSON.

Prior Art

There are a couple that exist already but don't make me happy.