Profiles
Profiles are saved templates for creating terminal groups. They define the group’s name, color, and tab layout.
Creating Profiles
# Basic profile with one tab
muster profile save myproject --tab 'Shell:~/work/myproject' --color '#f97316'
# Multi-tab profile
muster profile save webapp --color '#3b82f6' \
--tab 'Shell:~/work/app' \
--tab 'Server:~/work/app:npm run dev' \
--tab 'Logs:~/work/app/logs'
The --tab flag uses colon-delimited format: name:cwd or name:cwd:command. It is repeatable for multiple tabs. If omitted, defaults to a single “Shell” tab at $HOME.
Listing Profiles
muster profile list
Viewing a Profile
muster profile show myproject
Editing Profiles
Interactive Editing
Open the profile in your $EDITOR as TOML:
muster profile edit myproject
Inline Updates
Update specific fields without opening an editor:
muster profile update myproject --name renamed --color '#22c55e'
Managing Tabs
# Add a tab
muster profile add-tab myproject --name Tests --cwd ~/work/myproject --command 'cargo test --watch'
# Remove a tab (by name or 0-based index)
muster profile remove-tab myproject Tests
muster profile remove-tab myproject 2
Snapshotting a Running Session
Capture the current tabs and working directories of a live tmux session as a new profile:
muster profile save myproject --from-session <session-name>
This queries the session’s windows, captures their names and CWDs, and saves them as a profile. Useful for formalizing a workflow you built interactively.
Environment Variables
Set per-session environment variables in a profile by editing the TOML:
muster profile edit myproject
[env]
NODE_ENV = "development"
DATABASE_URL = "postgres://localhost/myapp"
These are applied via set-environment -t <session> when the session is created.
Per-Session tmux Options
Override tmux settings for a session without touching your global ~/.tmux.conf:
[tmux_options]
mouse = "on"
status-position = "top"
These are applied via set-option -t <session> at session creation.
Deleting Profiles
muster profile delete myproject
This removes the profile from profiles.json. It does not affect any running sessions that were launched from this profile.
Storage
Profiles are stored in ~/.config/muster/profiles.json:
{
"profiles": {
"myproject": {
"id": "myproject",
"name": "myproject",
"color": "#f97316",
"tabs": [
{ "name": "Shell", "cwd": "/Users/you/work/myproject", "command": null }
]
}
}
}
The config directory can be overridden with --config-dir or the MUSTER_CONFIG_DIR environment variable.