Terminal
SwiftTerm PTY rendering full xterm-256color, with regex search, tabbed sessions, split panes, and a ⌘K command palette over connections and saved queries.
macOS · iPadOS · Rust core
A native macOS & iPadOS client that folds the terminal, SFTP, a full PostgreSQL workspace, monitoring, and network tools into one window — running over a memory-safe Rust protocol core bridged to Swift with UniFFI.
What it does
Every panel is wired to the same Rust core through a typed event bus — no shelling out, no per-tool re-auth.
SwiftTerm PTY rendering full xterm-256color, with regex search, tabbed sessions, split panes, and a ⌘K command palette over connections and saved queries.
Side-by-side local/remote browsing, drag-and-drop, chmod, and a
three-way diff with snapshot-before-write so a typo in
nginx.conf never takes a host down.
Multi-database schema tree, per-tab query cursors, click-to-edit cells, and cursor-paginated CSV / JSONL / Parquet export over an SSH tunnel.
Multi-perspective DNS, a listening-port inventory with PID + process,
streaming tcpdump, and remote git deploy-state — all over an
existing session.
CPU, memory, disk, and load-average time series in SwiftUI Charts, plus a sortable remote process list with a kill action.
Secrets live in the Keychain only. Host-key trust is TOFU and fails closed. On iPadOS, destructive actions sit behind a Face ID privacy gate.
Repeatable command sequences with per-step recording and partial-failure
triage. On iPad: a connection map by latency, an incident-report builder,
SFTP that mounts into Files, and long tasks that survive backgrounding via
BGTaskScheduler.
How it's built
The UI is native SwiftUI/AppKit. Everything that touches the network is Rust — generated, checksum-verified bindings keep the boundary honest.
Views, stores, SwiftTerm. macOS & iPadOS targets share a framework.
Proc-macro exports → committed Swift bindings. Per-function checksums verified at init.
A typed event bus streams PTY output, transfer progress, and monitor samples back to Swift.
SSH (russh), PostgreSQL, and Parquet — the memory-safe protocol layer, published on crates.io.
Why it's a good reference
UniFFI proc-macros generate the Swift surface; bindings are committed and checksum-checked so a stale binding crashes loudly at init instead of corrupting silently.
A single tokio runtime backs every feature. Streaming work — PTY, tcpdump, transfers, Parquet export — flows over one typed, back-pressured event bus.
The Xcode project is generated from project.yml via XcodeGen;
just drives build, sign, notarize, and Sparkle delta updates.
macOS, iPadOS, plus widgets, share, shortcuts, and a File Provider extension — all sharing the same Rust core and Swift models.
Architecture notes in AGENTS.md, the full feature catalog in TOOLS.md.