Get going with Termary
A native macOS terminal with IntelliJ-style split panes, named groups, SSH, and an in-app browser your coding agent can drive. Here's everything you need to start.
Install
Termary needs macOS 14 (Sonoma) or later. It runs natively on Apple Silicon and Intel.
brew install --cask termaryPrefer a direct download? Grab the universal .dmg. On first launch, right-click the app and choose Open to get past Gatekeeper.
Panes, tabs & groups
Termary's layout is one tree: Group → Pane → Tab.
A tab is exactly one live shell. A pane is a slot in
the split layout and has its own tab strip. A group is a
named, colored container holding a whole split layout — keep an
api group, an infra group, a scratch group.
The key idea: a shell lives in exactly one place, so when you split, move, or regroup a pane the process never restarts and never loses scrollback. Drag a tab to a pane's edge to split there; drag to its center to move it in; drag a pane's grip onto another pane to swap them.
Splitting & layouts
Splitting is the heart of Termary. Every split keeps the live process running — you're rearranging windows onto shells, not restarting them.
Split with the keyboard
| ⌘D | Split right — move the active tab into a new pane beside this one |
| ⌘⇧D | Split down |
| ⌘⇧W | Close the pane (its tabs collapse into the neighbour) |
Split by dragging
- Drag a tab to a pane's edge (top, bottom, left, right) to split there — the tab lands on that side.
- Drag a tab to a pane's center to move it into that pane's tab strip instead.
- Drag a pane's grip (≡ in its strip) onto another pane to swap their positions.
Layout presets
Pick a ready-made arrangement from the layout menu in the toolbar: 2×2, even columns or rows, a main + right split, up to an 8-up grid. A single layout can mix terminals and browser panes side by side.
Broadcast input
Press ⌘⇧B to pick a set of tabs and type once into all of them — handy for running the same command across several SSH hosts at once.
Keyboard shortcuts
| ⌘T | New tab in the focused pane |
| ⌘W | Close tab (collapses the pane if it was the last) |
| ⌘⇧W | Close the whole pane |
| ⌘D | Split right — move the active tab into a new pane |
| ⌘⇧D | Split down |
| ⌘1–9 | Switch to group 1–9 |
| ⌘P | Command-history picker |
| ⌘F | Find in terminal |
| ⌘⇧B | Broadcast input to selected tabs |
| ⌃↑ | Window overview grid |
Double-click a tab title to rename it; double-click a group name to rename the group.
SSH & the vault
Add a saved SSH host from the sidebar's SAVED SSH section. Click a row to connect it into the focused pane; hover to edit or delete.
Saved hosts are stored in an encrypted vault, never in
plaintext: a device-only key in the macOS Keychain seals the host list
with AES-GCM. Only metadata is kept — host, user, port, key-file
path. No passwords are collected and private keys never leave
~/.ssh.
Browser panes
A pane can hold a web page instead of a shell. It lives in the same split tree as any terminal — split it, move it, swap it, broadcast to it — so you can keep your dev server, its logs, and the running site all in one window.
Each browser pane is a real, inspectable browser, not a preview:
- Network panel — a DevTools-style list of every fetch/XHR with request and response bodies.
- Console capture — logs and errors, surfaced in the pane and available to your agent.
- Device mode — render at a phone width with a mobile user-agent; zoom, or "Fit Pane" to resize the split to the device.
- Web Inspector — Safari's inspector is enabled for deep debugging.
- Activity — the page's real WebContent CPU/RAM shows in the Activity panel, and you can mute audio per pane.
- Capture & annotate — screenshot the pane (markers and drawings included) or mark it up — see below.
AI agent bridge (MCP)
Run Claude Code or Codex in a terminal pane and let it observe and drive a browser pane in the same window — open pages, click, type, read the console and network, take screenshots, and rearrange panes. Termary ships a native MCP server inside the app.
-
Turn the bridge on: Settings → Terminal → AI Agent Bridge.
It's off by default and binds to loopback (
127.0.0.1) with a per-session bearer token. -
Register the bundled server with your agent:
claude mcp add termary -- /Applications/Termary.app/Contents/Resources/termary-mcp -
Ask away — e.g. "open the login page and tell me what's in the console."
The agent uses
browser_*,panes_*, andsession_*tools (around 34 in all).
The tools
The agent gets around 34 tools across three families:
-
browser_*— drive a page (open,navigate,click,type,eval,wait,back/forward/reload), read it (snapshot,text,html,console,network,errors,screenshot,cookies), and shape it (viewport,zoom,fit_pane,annotate,annotations). -
panes_*— arrange the window:tree,open,split,swap,ratio,layout(presets incl. 8-up),list_layouts. Placement is position-aware, so the agent reuses panes instead of piling up duplicates. -
session_*—lastandrestorethe workspace.
The bridge is loopback-only and disabled until you flip the toggle — nothing is exposed to the network and no agent can reach it without the session token.
The agent bridge and annotation are Termary Pro features.
Annotating a page
Sometimes the fastest way to tell an agent what you mean is to point at it. Open the annotation toolbar on a browser pane and:
- Pick a single element — drops a numbered marker and a comment popover with its selector and computed CSS.
- Multi-select a group of elements, or mark a free region.
- Draw with a pen, arrow, box, or text in your choice of color.
Hit Send and Termary packages the structured element data plus an annotated screenshot, hands it to the agent, and types a summary into the focused terminal.
Find, history & ports
⌘F opens find-in-terminal to search the current scrollback. ⌘P opens the command-history picker — fuzzy-search the commands you've typed, scoped to this terminal or shared across all of them.
Termary watches for dev servers: when a process starts listening on a
port it surfaces it (via lsof), so you can spot
:3000 at a glance and open it straight into a browser pane.
Themes & appearance
Open Settings from the sidebar gear. Pick a terminal palette — Apple Default, Solarized, Dracula, and more — and a code-editor font. The whole app follows the theme, not just the terminal surface.
Appearance can track the system, or be pinned to light or dark independently.
Session restore
Quit and come back to the same workspace. On relaunch Termary restores
every group, split, and tab. Local tabs reopen a fresh shell in their
last working directory; SSH tabs return idle so a stale
connection never silently re-runs ssh — a one-time prompt
lets you reconnect them all or pick them off individually.
Question not answered here? Email us or check the changelog.