tmux session manager


New to tmux? Pre-order a copy of my new book The Tao of tmux. Scheduled for release this December.

Load a tmux session

Load tmux sessions via json and YAML, tmuxinator and teamocil style.

session_name: 4-pane-split
- window_name: dev window
  layout: tiled
    - cd ~/                    # run as a first command in all 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

Save as mysession.yaml. And load:

$ tmuxp load ./mysession.yaml

Sessions in ~/.tmuxp/ can use names:

$ tmuxp load mysession

Projects with .tmuxp.yaml or .tmuxp.json load via directory:

$ tmuxp load path/to/my/project/

Load multiple at once (in bg, offer to attach last):

$ tmuxp load mysession ./another/project/

simple, very elaborate config examples

Store configs in (~/.tmuxp) or include in your project as ~/.tmuxp.{yaml,json}. See author’s tmuxp configs and the the projects’ tmuxp.yaml.

bootstrap project dependencies before loading tmux. See the and before_script example

Load sessions in the background by passing -d flag

Freeze a tmux session

snapshot your tmux layout, pane paths, and window/session names.

$ tmuxp freeze SESSION_NAME

See more about freezing tmux sessions.