Birdie

A terminal and multiplexer for macOS, written in Swift. Every tab shows what its program is doing.

Version · Requires macOS 26

Birdie's overview: every tab as a live thumbnail, grouped by project, with a Now board on top listing a release that needs approval, a failed test run, a finished build and an agent that finished its turn.
Workingdeploy · 62%
Busycargo · compiling
!
Needs youPublish 0.4.0?
✓
Finishedagent · turn done
✕
Failed2 of 8 tests

overview

Every tab on one page.

Each tab is a live picture, grouped by project. The Now board on top lists what needs you first: a prompt waiting for an answer, a run that failed, an agent that finished.

Space peeks at a tab without leaving the overview.

Peeking at the tests tab from the overview: a large preview of its pytest output, 2 failed and 6 passed.

status

Progress, right in the tab.

Programs say what they’re doing with OSC 7501, and Birdie shows it wherever the tab appears: a ring that fills with progress, a check when it’s done, a cross when it failed, a mark when it’s waiting on you.

Coding agents report on their own. Any script can with one escape sequence.

Birdie with tabs in the sidebar: the tests tab shows 2 failed, 6 passed; the release tab is marked Blocked, waiting to publish 0.4.0.

tabs

Tabs on top, or down the side.

Keep tabs in the title bar, or move them into a sidebar grouped by project, each with its program’s icon and status.

Birdie's tabs: claude, deploy, tests and logs.

sessions

A session for every project.

Each project gets its own tabs and folder. ⌘K switches between them, and the shells keep running whether you look or not.

Pin the tabs that matter. A pinned tab won’t close by accident; Birdie asks first and offers to put it to sleep.

The session switcher open over an agent's tab, listing Scratch, heron-api, skylark-web and wren-cli, with this Mac and a paired host below.

splits

Splits that glide.

Split right or down, and new panes slide open. Drag a pane to rearrange, or drop a tab beside one to make a split.

⌘D split right · ⇧⌘D split down · ⌘] next pane

Three panes in one tab: a shell listing heron-api's files, an empty shell below it, and lazygit filling the right half.

palette

Find anything, from the keyboard.

⌘P runs any command. ⌘O searches every tab’s name and everything every terminal has printed. ⌘F finds in the one in front of you.

The command palette filtered to “spl”: Split Right, Split Down, Next Pane, Previous Pane.

agents

Agents, right at home.

Run agents in any tab and Birdie keeps score: working, waiting on you, done. The inspector (⌥⌘I) shows what runs in the focused pane, how long it has run, its processes, CPU and memory.

An agent answering questions about the heron-api project, with the inspector open on the right showing its process, CPU and memory graphs, the shell and the session.

details

Small things, done carefully.

A cursor that glides

The cursor moves smoothly as you type and jump, or smears like ink. Or it just jumps, if you prefer.

Smooth scrolling

Scrollback moves with your trackpad pixel by pixel, not a line at a time.

Copy, with a glow

Selections have rounded edges, and a block selection is an Option-drag away. Copying sends a glow around what you took.

The top-left of Birdie's window with rounded corners on the window and the pane. The same view with square corners.

Rounded or square

Soft corners on tabs, panes and the window, or crisp square ones, all the way out to the window frame.

birdie api

A server you can script.

Your shells live in birdie, a small server that keeps them running when the window closes. Birdie, Nest and your own scripts are clients of the same public API: make projects and tabs, type into panes, read their text, watch every event.

spinup
# a project for reviewing a pull request
project=$(birdie api call project.create \
  '{"name": "review-142"}' | jq -r .project.id)

for name cmd in tests pytest agent claude; do
  birdie api call tab.create \
    "{\"project\": \"$project\", \"name\": \"$name\", \"command\": \"$cmd\"}"
done
birdie api watch
❯ birdie api watch 'project.*' 'tab.created'
{"event":"project.created","data":{"project":{"name":"review-142", …}}}
{"event":"tab.created","data":{"tab":{"id":"t13","name":"tests", …}}}
{"event":"tab.created","data":{"tab":{"id":"t14","name":"agent", …}}}
The Birdie app icon: an orange pixel bird.

Get Birdie.

Version . Requires macOS 26. Updates itself.

Download for Mac