Termina icon

SSH, the way it should
feel on macOS.

A native SSH & SFTP manager with a Terminus-style UI — a GPU-accelerated terminal powered by libghostty, tmux that survives disconnects, and a live map of your SSH tunnels.

macOS 15+ · Swift 6 · libghostty · MIT
Termina — ubuntu@msg10p-tunnels
SSH CONFIG
ebs
ubuntu@10.0.0.5
msg10p-tunnels
zihado@10.0.0.110
prodesk
zihado@10.0.0.180
TUNNELS9 active
16443 → 10.0.122.28:6443
30900 → 10.0.122.28:30900
30300 → 10.0.122.28:30300
~ ssh msg10p-tunnels
Welcome to Ubuntu 22.04.5 LTS · tmux: attached session "main"
~ kubectl get nodes
NAME   STATUS  ROLES   AGE
node-1  Ready   control 42d
~

Everything you reach for, native.

No Electron. Just AppKit, SwiftUI, and a real GPU terminal.

⚡️

libghostty terminal

Sessions render with Ghostty's Metal-accelerated core — fast, accurate, buttery scrollback. SwiftTerm is a one-click fallback engine.

🔑

Your real ssh

Runs the system ssh, so rsa-sha2, ssh-agent, ProxyJump and your full ~/.ssh/config just work. Secrets stay in the Keychain.

♾️

tmux that survives

Auto-attaches tmux new-session -A so a dropped connection never loses your work — with a clean fallback when tmux isn't installed.

🛰️

Live tunnel health

Per-host -L/-R/-D forwards with a sidebar panel showing every tunnel from→to and whether its port is actually listening.

📁

SFTP browser

Browse, upload, download, rename, mkdir and delete on the remote host — without leaving the app.

🧹

Import & manage

Pull hosts and forwards from ~/.ssh/config & /etc/hosts. Multi-select, bulk delete, and one-click duplicate cleanup.

Keyboard-first.

The muscle memory you already have.

New connection⌘N
New session tab⌘T
Close tab⌘W
Next / previous session⌃Tab
Resize / reset font⌘= ⌘- ⌘0
Import from ssh config⇧⌘I

Build & run

macOS 15+ and a Swift 6 toolchain.

# clone & run
git clone https://github.com/rescenedev/termina.git
cd termina
swift run

# or build a signed Termina.app (with icon)
./Scripts/bundle.sh release
open dist/Termina.app

The libghostty engine is built from source (Xcode + Metal Toolchain + Zig 0.15.2 — see the README). Without it, the app falls back to SwiftTerm automatically.