Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.