Letting you define your tmux window setup configuration, pre-run environment setup and launch programs as you start a new tmux session.
Installation with Tmux Plugin Manager (recommended)
Add plugin to the list of TPM plugins in .tmux.conf:
set -g @plugin 'AranBorkum/tmux-cookie-cutter'Hit prefix + I to fetch the plugin and source it.
Clone the repo:
$ git clone https://github.com/AranBorkum/tmux-cookie-cutter ~/clone/pathAdd this line to the bottom of .tmux.conf:
run-shell ~/clone/path/cookie-cutter.tmuxReload TMUX environment:
# type this in terminal
$ tmux source-file ~/.tmux.confCreate a .tmux-cookie-cutter.yaml file in your $HOME/.config/ directory or a bespoke one in the root of your project. Configure this with the following values:
shared:
envvars:
- VARIABLE_1=...
- VARIABLE_2=...
setup_command: "neofetch"
default_windows:
- name: "neovim"
envvars:
- VARIABLE_1=...
- VARIABLE_2=...
setup_command: "source .venv/bin/activate"
command: "nvim"
- name: "terminal"
envvars:
- VARIABLE_1=...
- VARIABLE_2=...
setup_command: "source .venv/bin/activate"
command:
panes:
- split_direction: "vertical"
size: 25 # percentage width of a vertically split pane
- split_direction: "horizontal"
command: ./manage runserver
size: 40 # percentage width of a horizontally split paneShared will be applied to every tmux window, removing the need for repetition. Optionally, you can set the python interpreter to use, it defaults to python3:
set-option -g @cookie_cutter_python "python3"Be sure it has PyYAML available, you can use uv to run it with the pyyaml package:
set-option -g @cookie_cutter_python "uv run --with pyyaml"