you@anywhere tmux attach — without the terminal

A native macOS + iPadOS front-end for real tmux.

A sidebar of hosts → sessions → windows you click to switch, with the selected session's live terminal filling the rest. Local or over SSH. Your sessions live in tmux, exactly as they always have — Belfry attaches; it never owns them. Quit the app, kill the network, switch devices: everything keeps running.

or brew tap robgough/belfry && brew install --cask belfry

1:overview

Belfry on macOS: two machines in the sidebar — Local and an SSH host — with sessions and windows beneath, Working and Waiting badges on claude windows, and a live split terminal showing nvim beside a passing test run
macOS — libghostty surfaces, your Ghostty theme picked up automatically

2:features

3:claude code badges

Run Claude Code inside your tmux windows and the sidebar shows what it's up to: Working, or Waiting on you. Optional per-host status hooks install (and uninstall) with one click from the UI, and on macOS the Dock badge counts the windows waiting for your input — so you notice from across the room.

4:build

No toolchain needed on the Mac: brew tap robgough/belfry && brew install --cask belfry, or download the notarized app (universal, macOS 14+), unzip, drag to Applications. Or build from source:

macOS 14+

# needs tmux (brew install tmux) + Xcode
git clone https://github.com/robgough/belfry
cd belfry
scripts/make_app.sh release
open Belfry.app

iPadOS / iOS 17+

# needs xcodegen (brew install xcodegen)
git clone https://github.com/robgough/belfry
cd belfry
xcodegen generate
open BelfryiOS.xcodeproj  # set your team, run

Add hosts in-app: hostname, user, and a password or ed25519 key. Secrets go in the Keychain, never in the hosts file. The remote end just needs sshd and tmux.

5:how it works

Each host gets two planes. The control plane is a tmux -C client attached to a hidden per-launch session — it feeds the sidebar and issues actions, and never sizes your real sessions. The data plane is one terminal surface per visited session running tmux attach.

Both ride a per-platform transport behind a small seam: macOS forks PTYs and drives the system ssh with connection sharing; iPadOS speaks SSH in-process via SwiftNIO, running tmux as exec channels.