dedene/zentty

A native macOS terminal for agent-driven development, built on Ghostty.

Zentty – A macOS‑native terminal built for AI‑agents

What it is

Zentty is a native macOS terminal application (built with Swift/AppKit and the Ghostty rendering engine) that is specially designed to work with agent‑driven development tools such as Claude, Gemini, Copilot CLI, and many others. It provides a window‑manager‑style layout, a command‑palette‑first workflow, and a sidebar that surfaces the status of running AI agents.

Core ideas

Idea How Zentty implements it
Worklanes instead of tabs A horizontal strip of columns (worklanes) each containing a vertical stack of panes, similar to tiling window managers. Panes can be dragged, resized and rearranged without losing focus.
Keyboard‑first / command palette Every action is a bindable command; a fuzzy‑search palette lets you run any command you can’t remember. Ghostty shortcuts work out‑of‑box.
Agent awareness Agents report their state (working, waiting, asking for approval, etc.) via an Agent Status Protocol. The sidebar, the macOS menu bar, and pane badges show this information, so you know when an LLM needs your input.
Persistence Worklanes, sidebar layout and the state of each agent session are saved and restored when the app restarts.
Integration with macOS Keeps the Mac awake while an agent runs, shows agent status in the menu bar, and can jump to the pane that triggered a 1Password or ssh‑agent prompt.

Main features

Layout & navigation

  • Worklanes – horizontally scrollable columns of panes; no more tab overload.
  • Visual pane switcher – hold Ctrl+Tab to see a zoomed‑out view of all panes; ⌘⇧T reopens the last closed pane.
  • Full restore – the whole workspace (including running agents) comes back after quitting.

Agent support

  • Sidebar shows each agent’s status and model badge.
  • Sub‑agents & teams – parent agents stay visible while background agents run.
  • Menu‑bar indicator – you can see pending approvals even when Zentty is hidden.
  • Supported agents – a long list (Claude, Gemini CLI, Copilot CLI, Cursor, etc.) plus a generic protocol for any other tool.

Project‑level helpers

  • Dev‑server detection – local servers appear as clickable ports in the sidebar.
  • PR integration – panes on a branch display CI checks and review state.
  • Task runners – auto‑detect package.json, Makefile, justfile, Taskfile, mise tasks and run them from the palette.
  • Global search – one shortcut searches across all worklanes or inside a single pane.

Remote & terminal niceties

  • Drag‑and‑drop to SSH panes – dropping a file onto a remote pane uploads it over the existing SSH connection and inserts the remote path.
  • Clean copy – copy agent output without control characters; optionally copy as Markdown.
  • Ghostty‑based rendering – GPU‑accelerated, no Electron, pure Swift/AppKit.
  • Scriptable – an embedded zentty CLI lets you manipulate worklanes and panes from scripts.

Getting started

  1. Install – brew install --cask zentty or download the DMG from the releases page.
  2. Run – the app updates itself via Sparkle; no manual upgrades needed.
  3. Add the skill – agents can discover pane‑aware commands with npx skills add dedene/zentty.
  4. Configure – settings are stored locally and can be synced across Macs (see docs/configuration.md).

Building from source (for developers)

  • Requires macOS 14+, Xcode, zig, and gettext.
  • First build the GhosttyKit.xcframework (scripts/build_ghosttykit.sh).
  • Then compile the app with xcodebuild.
  • Dependencies are pinned via SwiftPM; the repo includes scripts for updating them.
  • Tests can be run on a virtual display (scripts/test-on-virtual-display).

License & commercial use

  • Code is GPL‑3.0‑only.
  • Organizations that cannot use GPL may obtain a commercial license from Zenjoy BV.

In a nutshell: Zentty is a macOS‑only terminal that blends a tiling‑window‑manager UI with deep integration for AI coding agents. It lets developers keep many AI‑powered tools running side‑by‑side, see their status at a glance, and stay in the keyboard‑driven workflow without leaving the terminal.

Related

  • Project
  • Project
  • Project
  • Dispatch
  • Project