A native SSH terminal manager for macOS, iPhone, and iPad. Hosts, credential identities, settings, and snippets sync over iCloud — credential secrets end-to-end encrypted. There is no account to create and no backend to run.
Caterm is SSH-first and individual-first. Everything below runs on your Mac, your iPhone, your iPad — and Apple's private CloudKit database in between.
Every credential field is sealed with AES-256-GCM, authenticated with associated data binding it to its host, field, and revision, before it leaves the device.
A 256-bit symmetric key stored as a synchronizable Keychain item, so it propagates between your authorized devices through Apple's end-to-end-encrypted iCloud Keychain. Apple cannot read it.
Sealed credential blobs ride on CloudKit Host records; the master key rides iCloud Keychain. CloudKit sees only ciphertext and never holds the key to it.
Caterm syncs connection metadata, not host-key authorization. Each Mac, iPhone, and iPad verifies a server independently. Secure Enclave identities are device-bound and never exported.
There is no Caterm server and no Caterm account — nothing to breach on our side, because there is no our side.
These are decisions, not gaps. Knowing them up front is worth more than a longer feature list.
tmux or screen when the remote process must survive a disconnect.main.A Swift Package Manager project split into focused modules — terminal engine, SSH command builder, session store, sync clients, SFTP, and the SwiftUI app targets. There is no backend service to stand up, because there isn't one.
Prerequisites: macOS 14.0+ with Xcode command-line tools (Swift 5.10+) and Homebrew zig@0.15 to build libghostty. See the signing notes for local development pitfalls.
$ git clone https://github.com/ZingerLittleBee/Caterm.git
$ cd Caterm
# init the Ghostty submodule, build GhosttyKit.xcframework
$ make ghostty-kit
# build + codesign + wrap in Caterm.app + launch
$ make run-app
# build the iOS app, boot the simulator, install, launch
$ make run-ios
$ make test # swift test
$ make doctor # toolchain / signing diagnostics
$ make help # list all targetsOpen the DMG, drag Caterm to Applications, add your first Host. No sign-up screen stands between those three steps.
Caterm 2.0.2 for macOS.dmgPrefer to compile it? Build from source — make run-app for the Mac, make run-ios for the simulator.