osstmux-ide is open source, built at Prototyper.Learn more
tmux-ide

Theming & Config

The one config file — ~/.tmux-ide/config.json — that colors every surface and binds every key

Theming & config

tmux-ide has one global config file: ~/.tmux-ide/config.json (override the path with the TMUX_IDE_CONFIG environment variable). It holds the keymap, the theme, and the behavior toggles for notifications, restore, updates, and worktrees.

The theme tokens are semantic, not per-surface: a single theme block colors the tmux chrome (status bar, pane chips, actions menu, cheat sheet) and the TUI widgets. Re-theming the whole product is a one-file edit plus a re-adopt.

Every field is optional. A missing or malformed file falls back to the built-in defaults, and any individual field that's missing or mistyped falls back to its own default — the parser never throws. Config is read once per process, so changes take effect on the next launch (a re-adopt spawns fresh processes).

You can edit it interactively with the config panel (prefix v / ⌥,) or tmux-ide popup config.

Full default

{
  "keys": {
    "popup": "M-p",
    "home": "M-h",
    "cheatsheet": "M-k",
    "menu": "M-m",
    "sidebar": "M-b",
    "panels": { "explorer": "M-e", "changes": "M-g", "config": "M-," }
  },
  "theme": {
    "accent": "colour75",
    "muted": "colour240",
    "fg": "colour250",
    "status": {
      "blocked": "colour203",
      "working": "colour221",
      "done": "colour111",
      "idle": "colour114",
      "unknown": "colour244"
    },
    "glyphs": { "active": "●", "inactive": "○" }
  },
  "updater": { "tickMs": 2000, "snapshotEvery": 15 },
  "notifications": { "toast": true, "macos": false },
  "restore": { "resumeAgents": false },
  "updates": { "check": true },
  "welcome": { "show": true },
  "worktrees": { "dir": "" }
}

keys

Each entry is the root-table Alt fast-path for a surface, as a tmux key name (M- is Meta/⌥). tmux-ide also binds a prefix twin for every surface — the reliable path that works under every keyboard protocol — derived from these same entries, so you configure both by editing one value.

FieldAlt defaultPrefix twinOpens
homeM-hprefix hHome cockpit from anywhere
popupM-pprefix jSession switcher
cheatsheetM-kprefix kCheat sheet
menuM-mprefix uActions menu
sidebarM-bprefix bSidebar nav column
panels.explorerM-eprefix eFile explorer panel
panels.changesM-gprefix gGit changes panel
panels.configM-,prefix vConfig editor panel

The Alt binds can be swallowed while an agent pane has focus (agents may switch the terminal's key encoding via the kitty keyboard protocol); tmux-ide registers kitty-encoded fallbacks, but coverage varies by terminal. The prefix twins are immune by construction — see The dock & keys.

theme

Semantic tokens, applied to both the tmux chrome and the widgets. Values are tmux colors (colourN or #rrggbb).

FieldDefaultMeaning
accentcolour75Primary / brand accent
mutedcolour240Dim / secondary text
fgcolour250Default foreground
status.blockedcolour203Blocked agent
status.workingcolour221Working agent
status.donecolour111Done agent
status.idlecolour114Idle agent
status.unknowncolour244No signal
glyphs.activeFilled state glyph
glyphs.inactiveHollow state glyph

updater

The chrome tick loop and snapshot cadence.

FieldDefaultMeaning
tickMs2000Milliseconds between ticks
snapshotEvery15Write a restore snapshot every N ticks

notifications

FieldDefaultMeaning
toasttrueIn-tmux toast on blocked / done
macosfalseAlso post a native macOS notification

See Notifications & events.

restore

FieldDefaultMeaning
resumeAgentsfalseRevive Claude conversations on restore (--resume-agents)

See Restore & resume.

updates

FieldDefaultMeaning
checktrueCheck for a newer tmux-ide version

welcome

FieldDefaultMeaning
showtrueAllow the first-run welcome card. Set false to suppress it

worktrees

FieldDefaultMeaning
dir""Base dir for worktree checkouts. Empty → sibling <repo>-worktrees; a relative path resolves against the repo

See Worktrees.

On this page