| name | tmux |
| description | Use this skill to run background processes or long running processes using tmux. |
tmux lets you run commands in the background and check on them later. When you run a normal bash command, you have to wait for it to finish. With tmux, you can start a command, let it run in the background, and check its output whenever you want.
Key Terms:
- Session: A container that holds your tabs. Like a browser window.
- Tab: A place where one command runs. Like a browser tab. We call this a "window" in tmux.
Step 1: Create or Use a Session
Always do this first:
tmux new-session -d -s mysession
- Use the project name (e.g. working directory basename) as the session name.
- If it fails with "duplicate session", it means the session already exists. It may be created by a prior session. You can use it, but check its state before continuing.
tmux ls
tmux kill-session -t mysession
Step 2: Create Tabs (Windows)
tmux new-window -t mysession -n mytab
- Always give your tab a name. Don't use numbers.
- Always specify the session name in the command line as there may be multiple tmux sessions active.
tmux list-windows -t mysession
tmux kill-window -t mysession:mytab
Step 3: Run a Command in a Tab
tmux send-keys -t mysession:server 'npm start' Enter
- Always end with
Enter to actually run the command.
tmux send-keys -t mysession:server C-c
Common stop signals:
C-c = Ctrl+C (interrupt)
C-d = Ctrl+D (end input)
Step 4: Check What Happened
tmux capture-pane -t mysession:server -p
If you don't see the output you want yet, sleep and run again. If you don't know how long it will take, start at 15 seconds, doubling the sleep duration each time, but never sleep more than 4 minutes (240 seconds).