Glazier.

Declarative tmux workspaces. Describe a session once in an HCL profile, then rebuild it on demand with one command.

Get started GitHub

glaze builds tmux sessions, windows and panes from a .glaze file written in HCL. Describe the workspace once, then run glaze up in the project directory and get the same layout every time. No more rebuilding panes by hand after every reboot.

.glaze HCL
session {
  name = "daemon-run"

  window {
    name   = "ice-breaker"
    layout = "main-vertical"

    pane {
      commands = ["nvim ./payloads"]
    }

    pane {
      commands = ["watch -n1 netwatch --target arasaka-mainframe"]
    }
  }
}
Console
$ brew install wilhelm-murdoch/tap/glazier
$ glaze up

Glazier validates the profile before tmux starts, so a bad layout name or a value of the wrong type comes back as a diagnostic with a line number, not a half-built session. Typed variables and string functions turn one profile into a template for many projects. Pane commands run in sequence through tmux wait-for, with no fixed sleeps. Every release runs its end-to-end suite on tmux 3.2a to 3.7c.

Getting started

Install Glazier, write a first profile and bring a workspace up.

Guides

Step by step answers to the common tasks.

Profiles

The reference for every block, attribute, variable and function.

Command line

Every subcommand, flag and exit code.

Project

Compatibility, security and how to contribute.