Tab configs
Reusable .toml recipes that open a tab with layout, directories, and startup commands.
Tab configs are TOML recipes that describe how a new tab opens: its name, its pane layout (including splits), each pane's working directory, and startup commands. They live in ~/.mel/tab_configs/ — plain files you (or the Mel agent) can edit — and every valid config appears in the titlebar + menu automatically.
A simple config
name = "New Claude session"
[[panes]]
id = "main"
type = "terminal"
directory = "~"
commands = ["claude"]Open the + menu, pick the config, and you get a tab whose pane starts in ~ and launches the claude CLI. Multiple commands entries are chained with &&.
Split layouts
[[panes]] is a flat list; the first entry is the root. A node is either a leaf (has type) or a split (has split + children naming other pane ids):
name = "Agent + local server"
[[panes]]
id = "root"
split = "horizontal" # side by side; "vertical" = stacked
children = ["agent", "server"]
[[panes]]
id = "agent"
type = "terminal"
directory = "~"
commands = ["claude"]
is_focused = true
[[panes]]
id = "server"
type = "terminal"
directory = "~"
commands = []Splits nest to any depth. Exactly one leaf may set is_focused = true; otherwise the first leaf gets focus. directory supports ~, relative paths (resolved against your current pane's cwd), and {{param}} placeholders.
Parameters
Declare [params.NAME] and reference {{NAME}} anywhere — in directory, commands, or title. Opening the config pops a small modal to collect values first:
name = "Claude in repo"
[[panes]]
id = "main"
type = "terminal"
directory = "{{project}}"
commands = ["claude"]
[params.project]
type = "repo"
description = "Repository to open Claude in"Param type is text (free field, optional default), branch (a git branch dropdown), or repo (a dropdown of your tracked repositories).
Top-level fields
| Field | Purpose |
|---|---|
name | Display name in the + menu |
title | Optional tab title template (params substituted) |
color | Optional tab color preset (0–5) |
[[panes]] | The pane list described above |
[params.*] | Parameter definitions |
Making one the default
Right-click a config in the + menu and choose make-default (★). From then on, plain ctrl+T opens that config instead of a blank tab. The choice is stored in ~/.mel/default_tab_config; right-click again to clear it.
Authoring
"New Tab Config" in the + menu writes a stub file and opens it in Mel's built-in editor. Files with parse errors are skipped at load, and Mel seeds a few examples on first run. Since configs are just files, they version-control nicely — see Settings files.
Related
- Tabs · Split panes · Sessions