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

Home, Sidebar & Panels

The floating surfaces the dock triggers — the home cockpit, the sidebar nav column, and the widget panels

Home, sidebar & panels

The dock is always on. Everything else is a keystroke or two away and floats over whatever you're doing — one interaction grammar (j/k · enter · / · esc · ?), one theme. These surfaces share the same TUI, so the fleet looks and behaves identically whether you open it as the home screen or as a popup.

Every surface has two bindings: a prefix twin (prefix then a letter) that works under every keyboard protocol, and an fast-path for a single keystroke when your terminal allows it. Lead with the prefix; see The dock & keys for why.

SurfacePrefix (always works)Alt fast-path
Home cockpitprefix h⌥h
Switch sessionprefix j⌥p
Sidebarprefix b⌥b
File explorerprefix e⌥e
Git changesprefix g⌥g
Config editorprefix v⌥,
Actions menuprefix u⌥m
Cheat sheetprefix k⌥k

The home cockpit — prefix h (or ⌥h)

Running tmux-ide bare, with no project config, opens the home cockpit — the fleet home screen and the product's first surface:

  • a fleet tree of every session and its panes,
  • a detail pane for the selection,
  • a live preview of the selected pane, and
  • a rollup header summarizing fleet-wide status.

From inside any adopted session, prefix h (or ⌥h) opens the same cockpit as a popup over your work — or use the dock's [ ⌂ home ] trigger. esc closes it.

The sidebar — prefix b (or ⌥b)

The sidebar is a fleet nav column you toggle in place, without leaving your session. It's the persistent version of the cockpit: keep the fleet in view down the side while you work in the main panes.

tmux-ide sidebar-toggle --session work

The switcher — prefix j (or ⌥p)

A compact session picker. Type to filter, enter to switch. It's the fast path between sessions and opens from the dock's [ ⧉ switch ] trigger too.

Floating panels

Three widgets open as floating app dialogs — a keystroke to open, esc to close:

Prefix (always works)Alt fast-pathPanelWhat it is
prefix e⌥eExplorerA file-tree navigator for the session's directory
prefix g⌥gChangesA git changes / diff view
prefix v⌥,ConfigAn interactive editor for ~/.tmux-ide/config.json

You can also open them explicitly:

tmux-ide popup explorer
tmux-ide popup changes
tmux-ide popup config

The panel keybinds are rebindable under keys.panels in the config — see Theming & config. Rebinding a fast-path key moves its prefix twin with it.

The actions menu — prefix u (or ⌥m)

Right-click any pane or the status bar for a native tmux menu at the pointer (it opens on button release). The same menu is on prefix u (or ⌥m). Same actions everywhere, so there's nothing to memorize about which surface owns which command.

The cheat sheet — prefix k (or ⌥k)

Every key on one iPadOS-style sheet. On a fresh install a first-run welcome card names the core keys once; press prefix k (or ⌥k, or the dock's [ ? keys ]) any time to see the full sheet, or print it:

tmux-ide cheatsheet

The unified app — tmux-ide app

The surfaces above float over your real session. tmux-ide app is the other shape: a full-screen IDE over the whole fleet, with tabs across the top (F1 Home · F2 Terminal · F3 Files · F4 Diff · F5 palette). tmux still owns the PTYs and layout; the app renders them. See What's new in 2.7 for the full tour.

The Terminal surface

The Terminal tab is a live mirror of your panes, and it's agent-aware:

  • Status chips — an agent pane wears a chip (● claude); a blocked agent turns bold red with its wait time (● claude · blocked 4m).
  • A focus hairline — the focused pane gets a quiet accent border, so you always know where keystrokes land.
  • Select & copy in agent panes — a pane running a full-screen app (Claude Code, vim) captures the mouse. Right-click → "Select text…" pauses mouse forwarding so you can drag-select and copy (via SSH-transparent OSC52); the wheel scrolls history while you select.
  • Size honesty — when another attached terminal sizes the shared window smaller, the app centers the view and says so; the palette's "Resize to fit this window" reclaims the full canvas.

Home v2

The app's Home tab greets first-run users with a plain-language welcome instead of an empty grid. Open folder… is a real filesystem picker — choose a directory and the app opens it as a terminal workspace, optionally remembering it as a project. Recently opened folders are one click away, and the optional app.frontDoor config flag makes bare tmux-ide open the app. See Getting started.

Keep it running — even from your phone

Your sessions already survive everything; with --detachable, the cockpit does too:

tmux-ide app --detachable   # or --hosted — same thing

Instead of running in your terminal, the app lives in a tmux session of its own and your terminal attaches to it. Close the terminal, lose the ssh connection, switch machines — the cockpit keeps running exactly where you left it: same tab, same scroll position, same open dialogs. Run the command again from any terminal (including your phone: ssh in, run it) and you're back in the same cockpit.

Two things change in this mode:

  • ^q detaches instead of quitting — the app keeps running in the background. If you launched from inside tmux, ^q returns you to the session you came from. To actually stop the cockpit, press F5 and run Quit.
  • If two terminals of different sizes are attached at once, tmux sizes the cockpit to the one you used last (the smaller view wins while you're on it — standard tmux behavior). The cockpit follows the terminal you're actually using: attach from anywhere — or just come back to a terminal you left attached — and it resizes to you.

Set app.detachable: true in ~/.tmux-ide/config.json to make plain tmux-ide app (and the app.frontDoor entry) always work this way.

Settings without JSON

There's no settings screen and no JSON to hand-edit for the common cases. Press F5 and type "settings" for a palette command per setting — accent color (with a live preview), notifications and quiet hours, update cadence, crash restore, a keyboard-shortcut viewer, and a guarded reset. Changes persist atomically to ~/.tmux-ide/config.json. See workspace configuration.

See also

On this page