| Crates.io | tmuxrs |
| lib.rs | tmuxrs |
| version | 0.1.1 |
| created_at | 2025-06-28 06:37:47.484418+00 |
| updated_at | 2025-07-06 05:33:12.385113+00 |
| description | A modern, Rust-based tmux session manager with centralized configuration and directory-aware execution. Drop-in replacement for tmuxinator. |
| homepage | https://github.com/beijaflor/tmuxrs |
| repository | https://github.com/beijaflor/tmuxrs |
| max_upload_size | |
| id | 1729584 |
| size | 125,673 |
A modern, Rust-based tmux session manager with centralized configuration and directory-aware execution.
tmuxrs is a drop-in replacement for tmuxinator that solves the scattered configuration problem while maintaining full compatibility. Manage all your tmux sessions from a centralized location with automatic project detection.
~/.config/tmuxrs/tmuxrs is built on three core principles:
# Install from crates.io
cargo install tmuxrs
# Or from source
git clone https://github.com/beijaflor/tmuxrs
cd tmuxrs
cargo install --path .
# Install man page (optional)
sudo cp man/tmuxrs.1 /usr/local/share/man/man1/
sudo mandb # or makewhatis on some systems
# Create a config file
mkdir -p ~/.config/tmuxrs
cat > ~/.config/tmuxrs/myproject.yml << EOF
name: myproject
root: ~/code/myproject
windows:
- editor:
layout: main-vertical
panes:
- vim
- rails server
- monitoring:
layout: tiled
panes:
- htop
- tail -f log/development.log
EOF
# Start the session
tmuxrs start myproject
# Or auto-detect from directory
cd ~/code/myproject
tmuxrs start # Automatically finds myproject.yml
# List available sessions
tmuxrs list
# Stop a session
tmuxrs stop myproject
tmuxrs is designed as a drop-in replacement for tmuxinator:
# Your existing tmuxinator configs work unchanged
cp ~/.config/tmuxinator/myproject.yml ~/.config/tmuxrs/myproject.yml
# Same commands, better performance
tmuxrs start myproject # Instead of: tmuxinator start myproject
tmuxrs stop myproject # Instead of: tmuxinator stop myproject
tmuxrs list # Instead of: tmuxinator list
name: simple-project
root: ~/code/simple-project
windows:
- editor: vim
- server: rails server
- shell: bash
name: complex-project
root: ~/code/complex-project
windows:
- main:
layout: main-vertical
panes:
- vim src/main.rs
- cargo watch -x run
- monitoring:
layout: tiled
panes:
- htop
- iostat 2
- tail -f /var/log/system.log
- netstat -i
main-vertical - Side-by-side with main pane on leftmain-horizontal - Top/bottom with main pane on toptiled - All panes equally sized in grideven-horizontal - All panes equal widtheven-vertical - All panes equal heighttmuxinator requires either:
tmuxinator start webapp.tmuxinator.yml in every project directoryThis creates friction - you either lose convenience or end up with config files scattered across projects.
Centralized Configuration:
~/.config/tmuxrs/
├── webapp.yml
├── api-server.yml
└── mobile-app.yml
Directory-Aware Execution:
cd /path/to/webapp/
tmuxrs start # Auto-detects webapp.yml
cd /different/path/to/webapp/
tmuxrs start # Still finds webapp.yml (same project)
cd /path/to/api-server/
tmuxrs start # Auto-detects api-server.yml
# Session management
tmuxrs start [NAME] # Start session (auto-detect if no name)
tmuxrs start --no-attach # Start detached session
tmuxrs start --append # Add windows to existing session
tmuxrs stop <NAME> # Stop session
tmuxrs list # List available configurations
# Examples
tmuxrs start # Auto-detect from current directory
tmuxrs start myproject # Start specific session
tmuxrs start --no-attach # Start without attaching
Note: tmuxrs is tested with the latest stable Rust version.
# Clone and build
git clone https://github.com/beijaflor/tmuxrs
cd tmuxrs
cargo build
# Run tests
cargo test
# Install locally
cargo install --path .
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
This project is licensed under either of
at your option.
Happy tmuxing! 🚀