Skip to content

tmuxinator

A Ruby command-line tool that defines tmux sessions, windows and panes in YAML config files.

Stars
13.7k
Forks
628
Licence
MIT
Language
Ruby
Last update
27 days ago
Type
CLI

What it is

Tmuxinator lets you describe a tmux terminal setup (windows, panes, layouts, commands to run) in a YAML file and start it with one command. It is useful for people who regularly open the same multi-pane terminal workspace for a project. The README assumes you already know basic tmux concepts such as windows and panes.

  • Create a project config with `tmuxinator new [project]` and define windows and panes
  • Start a project session with a commands list, such as an editor in one pane and a Rails server in another
  • Save an existing tmux session as a tmuxinator project with `tmuxinator new [project] [session]`
  • Keep a project-specific config in the repo with `tmuxinator new --local [project]`

Great for

  • Developers who restart the same project setup (editor, server, logs) every day
  • People who already use tmux and want repeatable session layouts
  • Teams that want to share a standard terminal setup via a project config file

Not ideal for

  • People who do not use tmux; the README assumes working knowledge of tmux
  • Users on very old tmux versions; the README says earlier versions may behave oddly and tmux 2.5 is not supported
Step-by-step guide: how to use tmuxinatorInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Ruby (the README asks for a currently maintained Ruby version) · tmux (1.8 or later recommended; 2.5 not supported)

    Install via RubyGems (preferred per README)

    gem install tmuxinator

    Install via Homebrew (README notes reported issues)

    brew install tmuxinator
  2. 2

    Run it

    • Install tmux and Ruby, then run `gem install tmuxinator`
    • Run `tmuxinator new sample` to create a project config and edit it in your $EDITOR
    • Save the config and start the project with `tmuxinator start sample` or `tmuxinator sample`
    • Optionally add shell completion files as described in the README's Completion section
  3. 3

    Get the most out of it

    • Use `tmuxinator new --local [project]` to keep the config inside a project directory
    • Use `layout` and `focused_pane` options to control pane arrangement and focus
    • Use project hooks such as on_project_start and on_project_stop for setup and teardown
    • Use `startup_window` and `attach: false` to control which window opens and whether tmux attaches automatically
    • Install the bash, zsh, or fish completion files to speed up typing commands

Downloads

Strengths

  • Describes a whole terminal workspace in one readable YAML file
  • Supports per-window root directories and tmux layouts
  • Config can be stored locally in a project directory and shared

Trade-offs

  • YAML indentation is strict and errors are easy to make, as the README notes
  • The README says the Homebrew install has reported issues, so RubyGems is preferred
  • Project names cannot contain dots, and panes require this rule to be followed

How it compares

ProjectStarsTypeLevelUpdatedBest for
tmuxinator (this)13.7kCLIbeginner27 days agoDevelopers who restart the same project setup (editor, server, logs) every day
tmux-resurrect13.1kDev toolbeginner2.2 years agoTerminal users who keep many tmux sessions open and dislike rebuilding them after a reboot

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.