Boring Terminal
view raw

Sessions

A session is a long-lived shell: an agent, a build, a plain prompt. Sessions are the unit everything else is built around.

Sessions survive the window

Sessions run in a background service (boringterminald) that owns the shell process, the terminal state, and the scrollback. Quitting the app, or the app crashing, leaves every session running. Relaunch and everything reattaches: output, titles, attention state, even your side-by-side layout and its zoom.

The service starts automatically the first time you open the app. Two limits to know:

  • Sessions do not survive logout, reboot, or killing the service itself.
  • When you close a session (⌘W) while a command is still running in the foreground, the app asks for confirmation first.

The sidebar

Every open session lives in a vertical sidebar. Toggle it with ⌘B; when hidden, the title-bar toggle shows a badge if any session needs you.

  • ⌘T opens a new session. It inherits the working directory of the current one when the shell reports it (see Agents & attention).
  • ⌘1⌘9 jump to a session by position; hold to see the number badges.
  • ⌘⇧[ / ⌘⇧] step to the previous / next session.
  • ⇧⌥⌘↑ / ⇧⌥⌘↓ reorder rows.

Sessions that need attention get an orange dot in the sidebar, and the Dock icon badge counts them.

Pairs: the one split

Two related sessions can share the window side by side. For example, an agent and the dev server it keeps restarting. This is the only split: exactly two sessions, one level, side by side. A pair occupies a single sidebar row and moves as one item.

Create a pair:

  • ⌘D opens a new session beside the current one.
  • Drag one sidebar row onto the left or right half of another.
  • Session › Pair With Previous / Next Session.

Work with it:

  • ⌥⌘← / ⌥⌘→ focus a side; ⇧⌥⌘← / ⇧⌥⌘→ move a member across the divider.
  • ⇧⌘↩ zooms the focused side to full width; press again to restore both.
  • The divider is draggable, and the ratio persists.
  • Separate Sessions (Session menu or the row's context menu) turns the pair back into two ordinary rows; both sessions keep running.
  • ⌘W closes only the focused member; the survivor becomes a single row.

Each session keeps 10,000 lines of scrollback. ⌘F opens search in the focused session; ⌘G / ⇧⌘G step through matches. Select text and ⌘C copies it; ⌘K clears to the start.

Version 0.6.0, a universal DMG for macOS 13 and later. If the download did not start, download it directly or get it from the GitHub releases.

First launch

Releases are not yet notarized, so Gatekeeper refuses a plain double-click the first time. Any one of these works, once:

More detail in the install docs.