swarm

● v0.1.0 · macOS 13+ · apple silicon + intel

Close the window.
The work keeps running

Swarm is a terminal where every tab is a session owned by a small background daemon, on your Mac or on a server. Quit the app, lose Wi-Fi, update it: your shells, builds and servers are still there when you come back.

$swarmctl ls --host my-server
[ fig. 1 · four sessions, one window ]swarm 0.1.0
The Swarm app: a sidebar of four sessions (swarm-term, release, web, notes) beside a terminal showing git log, a passing cargo test and swarmctl ls.

# how it works [ three processes ]

The window is just a view

Shells don't belong to the app. Each one lives in its own small process under swarmd, which keeps its output. The app, or swarmctl, attaches and detaches as it likes.

# features [ 6 ]

Built for work that takes a while

Tabs that keep running

Close the window, quit the app, restart the daemon. Builds, servers and shells carry on, and reopen with their output and blocks.

This Mac or any server

Connect to Linux and macOS hosts over your own ssh setup. Swarm installs its daemon there and reconnects after sleep or a dropped network.

A modern terminal on top

Built on Warp’s open-source engine: commands as blocks, a real text editor for input, completions. One panel per session, splits for more.

Updates without restarts

A new version moves running sessions to its new session process in place. Same process, same output, nothing restarted.

Scrollback that remembers

16 MB per session in memory. Optionally keep far more on disk, encrypted with a key only that session holds.

Scriptable from anywhere

swarmctl lists, attaches, renames and dumps sessions, on this Mac or on any host you can ssh to.

# cli [ swarmctl ]

Every session, one command away

The same sessions the app shows, from any terminal or script. Add --host to reach a server's sessions through your ssh config, keys and jump hosts.

swarmctl reference
$ swarmctl ls --host build-box
ID          NAME     STATE          ACTIVE
01M6EKBXJS  release  running cargo  now
01M6EKBXK8  logs     running tail   3s
01M6EKBXKQ  shell    idle           2h

$ swarmctl attach release --host build-box
   Compiling swarmd v0.1.0
    Finished release [optimized] in 41.2s
[ctrl-\ detaches; the build keeps going]

$ swarmctl dump release > build.log

# get it

Swarm 0.1.0 for macOS

Universal app for Apple silicon and Intel, macOS 13 Ventura or later. Remote hosts can be Linux or macOS.

This early build isn't notarized yet. After the first launch, allow it in System Settings → Privacy & Security → Open Anyway.