| Crates.io | tsps |
| lib.rs | tsps |
| version | 0.5.0 |
| created_at | 2025-06-15 06:22:11.439952+00 |
| updated_at | 2025-06-15 10:51:12.738965+00 |
| description | Quickly set up tmux workspaces by splitting windows into multiple panes |
| homepage | https://github.com/yyossy5/tsps |
| repository | https://github.com/yyossy5/tsps |
| max_upload_size | |
| id | 1712980 |
| size | 1,095,670 |
Quickly set up your tmux workspace by splitting a window into multiple panes at a specified directory with a single command.
When working with tmux, you often want to set up the same pane layout repeatedly - multiple panes all navigated to your project directory. Manually splitting panes and navigating each one to the right directory becomes tedious, especially when opening new tmux windows frequently.

TSPS automates this repetitive setup process. Instead of manually:
cd /path/to/projectYou can now simply run: tsps 4 /path/to/project or tsps -l dev.yaml -d /path/to/project and get your ideal workspace instantly.
https://github.com/user-attachments/assets/b80021d8-839e-478e-b532-166b65e7725f
cargo install tsps
# Download the latest release
curl -L https://github.com/yyossy5/tsps/releases/latest/download/tsps-aarch64-apple-darwin -o tsps
# Make it executable
chmod +x tsps
# Move to your PATH
mv tsps ~/.local/bin/
# Create 4 panes, all navigated to /path/to/project
tsps 4 /path/to/project
# Create 3 panes in current directory
tsps 3 .
# Create 2 panes in home directory
tsps 2 ~
You can define custom layouts using YAML files for more complex workspace setups:
# Use a predefined layout file
tsps --layout examples/dev.yaml
# Or use the short form
tsps -l examples/simple.yaml
# Override the directory specified in the layout file
tsps --layout examples/dev.yaml --directory /path/to/different/project
# Short form with directory override
tsps -l examples/dev.yaml -d /path/to/project
See the examples directory.
name: Layout name for identificationdescription: Optional description of the layoutdirectory: Base directory for all panes (can be overridden with --directory option)id: Optional identifier for the panesplit: Split direction (horizontal or vertical)commands: List of commands to execute in the panefocus: Set to true to focus this pane initiallysize: Pane size specification (percentage like "30%" or lines/columns like "10")The project includes several example layout files in the examples/ directory:
examples/simple.yaml - Basic 2-pane editor + terminal setupexamples/dev.yaml - 4-pane development workspaceUse these as templates for your own custom layouts!
The --directory (-d) option allows you to reuse the same layout file across different projects:
# Use the same layout in different projects
tsps -l ~/layouts/dev.yaml -d ~/projects/frontend
tsps -l ~/layouts/dev.yaml -d ~/projects/backend
tsps -l ~/layouts/dev.yaml -d ~/projects/mobile
This is particularly useful when you have standardized development workflows but work on multiple projects.
panes:
# Main editor (no size = uses remaining space)
- id: "editor"
commands: ["nvim ."]
# Sidebar taking 30% of width
- id: "sidebar"
split: "vertical"
size: "30%"
commands:
- "ls -la"
# Bottom pane with fixed 15 lines height
- id: "terminal"
split: "horizontal"
size: "15"
commands:
- "htop"
cargo install tsps --force
# If you have cargo-update package
cargo install-update tsps
# Download the latest release
curl -L https://github.com/yyossy5/tsps/releases/latest/download/tsps-aarch64-apple-darwin -o tsps
# Make it executable
chmod +x tsps
# Replace the existing binary
mv tsps ~/.local/bin/
cargo uninstall tsps
rm ~/.local/bin/tsps