How to reload your tmux config without restarting?

By Romain Dorgueil

Short answer

bind r source-file ~/.tmux.conf \; display-message "config reloaded"

Add that line to ~/.tmux.conf. After the next edit, prefix r re-reads the file into the running server and confirms it in the status line, no restart needed. One-off from the CLI: tmux source-file ~/.tmux.conf.

Details

source-file reads a config file into the current tmux server and applies its settings and bindings live. That is the whole trick: you do not need to kill the server (and every session in it) to pick up a change.

The \; chains a second command onto the same key. Here display-message "config reloaded" prints a short confirmation in the status line so you know the reload happened. \; is a tmux command separator, not shell syntax, so the same form works from the CLI: tmux source-file ~/.tmux.conf \; display-message ok.

Two things to keep in mind. Reloading only adds or overrides what the file sets; it does not undo an option a line you just deleted used to set (that stays until you reset it or restart). And source-file re-runs every command in the file, including actions like new-window, so keep the config idempotent: settings and key bindings, not one-off startup commands.

Without a binding you can reload by hand with tmux source-file ~/.tmux.conf, or from inside a session with prefix : then source-file ~/.tmux.conf.

Verified on tmux 3.2a.

Related