v5.0.4 — now available Conterm app icon

A modern way to connect.

A native macOS terminal built on Ghostty's engine — ⌘K command palette, vertical tabs, widgets, notifications, a command center for AI coding agents, and live overviews of your hosts, clusters, and containers.

Free & open source macOS 14+ Apple Silicon

01 Splits

Recursive splits.

⌘D splits right, ⌘⇧D splits down, any depth. ⌥1⌥9 jumps focus by number; dividers drag.

recursive drag-resize focus by number
~/conterm $swift build -c release
Build complete!
OK Conterm.app
~/conterm $
~ $ git status
On branch main
nothing to commit
~ $ tail -f log
[ok] ready
[wrn] slow
02 Palette

Command palette.

One launcher for commands, sessions across every window, SSH hosts, shell and clipboard history, notes, tab groups, and quick "open in Finder / Cursor". Fleet run turns one command into a pane per SSH host. Reorderable, keyboard-first.

fuzzy multi-source reorderable
⌘K switch project ↩ to run
Switch to · conterm
~/Documents/conterm
Switch SSH host · pi.local
~/.ssh/config
Switch tab group · Work
7 tabs
History · switch --branch staging
12m ago
03 Tabs

Top or sidebar tabs.

Flip orientation any time. The sidebar can auto-hide and slide back in on left-edge hover, with the native traffic lights tucked into a floating glass pill.

top / sidebar auto-hide colour-coded groups
Project
conterm
ghostty
Servers
pi.local
staging
Notes
scratch
+ new tab
~/conterm $ swift build
Building...
Build complete!
~/conterm $
04 Agents

Agent command center.

Claude Code and opencode are detected per-pane with a live "ready / thinking / needs you" pill. The command center gathers every running agent across every window into one roster — each with its task, git branch, and live cost, burn rate, and token count — so you can jump to a pane, reply, or interrupt without hunting for it. Background sessions join the roster with one-click resume, and a dedicated Agents layout turns the sidebar into the roster.

tokens · cost jump · reply claude · opencode
Claude · thinking…
Claude · main needs you
Wire the roster store
$0.34 · 128k tok · opus
opencode · api working
Refactor the auth middleware
Win 2 · Tab 1
05 Hosts

Host & cluster overviews.

Right-click an SSH pane for a briefing on the machine — load, memory, disks, containers, failed units — gathered in one round trip. Kubectl contexts open the same card for the cluster, and ansible-playbook runs mirror into a live hosts × tasks matrix.

ssh kubernetes ansible
deploy@web-01 up 41 days
load
0.64
memory
4.6 / 8 GB
disk /
71%
7 containers k8s · prod-eu 0 failed units
ansible · deploy.yml — task 12/14 · 2 changed
06 Orbit · beta

Your fleet as a map.

⌘⇧M gives the window to a live graph of what you are working on — your agent sessions, the hosts they talk to, the clusters and containers under them. A session is the subject and a host is where it runs, so sessions ride the ring closest to your Mac. Connecting docks a real terminal on the canvas, overviews and logs open as panels over it, and nothing sends you out to a tab. Hold and every card lights a letter; press it to aim there and drive the rest from the keyboard. Leaving writes a snapshot, so coming back reports what changed while you were gone.

sessions · hosts keyboard-driven since you looked away
MacBook Pro
Terminal 3S
Claude · needs youD
prod-eu
web-01
Connect Run Details
07 Routines

Work you do more than once.

Add a key to twelve servers, deploy, go to maintenance mode — write the steps once, leave the details as fields, and fill them in at launch. Run it now, at a time, or after something else finishes. The engine runs app-wide, so a routine fires whether or not the map is on screen, and a failure notifies. Every target is recorded separately: a step across twelve machines reports 11/12 ok, names the one that didn't, and opens what any of them actually said. Anything named like production asks first.

scheduled · chained per-host results production guard
deploy-api nightly · 02:00
drain web-* 12 hosts · 4.1s
helm upgrade api v2.8.1 21.6s
! smoke test 11/12 ok
4 restore traffic waiting
web-07 — curl: (7) failed to connect
08 Keys

The whole app in one card.

Conterm is keyboard-first. Everything below works from the moment you launch — no config, no learning curve.

Tabs & Panes

New tab
T
Close pane / tab
W
Split right
D
Split down
D
Jump tab N
1…9
Focus pane N
1…9
Prev / next prompt
/

Palette & Search

Command palette
K
Agent center
A
Search scrollback
F
Settings
,
Dismiss overlay
Esc
Quick-open dir
O
New window
N

System

Reload config
,
Toggle sidebar
S
Toggle full screen
F
Copy / Paste
C / V
Zoom font
+ /
Restore size
0
Built on libghostty, Ghostty's embeddable terminal core. Conterm is an independent macOS frontend — same renderer, different chrome, opinions of its own. Not affiliated with the Ghostty project. · Read the README
07 Get it

Ready to try Conterm?

Download the latest release, drag it to Applications, and you're in.

macOS 14 (Sonoma) or later Apple Silicon Glass effects need macOS 26
Conterm is ad-hoc signed (open source, not notarized through a paid Apple Developer account). On first launch, right-click the app → OpenOpen. If macOS still refuses: xattr -dr com.apple.quarantine /Applications/Conterm.app