Skip to content
Back to projects

Maine

A native SSH client for macOS.

macOS is the reference client. Windows and Android are still in progress; sync currently works on macOS only.

Year
2026
Role
Product design, native clients, and sync protocol
Maine macOS window with a saved-host sidebar, two named sessions on one host, and a connected terminal
The native macOS client.

Overview

Maine keeps the shortest path from a saved host to a real terminal. The macOS client uses SwiftUI, SwiftTerm, and the system OpenSSH process rather than replacing SSH's transport or configuration. Hosts, passwords, and session snapshots share one master-password-encrypted vault. Optional sync runs on a Rust server you host yourself and transfers encrypted vault bytes, not plaintext credentials. macOS is the reference client; native Windows and Android implementations are still being brought to feature parity.

Technology

  • Swift 6
  • SwiftUI
  • SwiftTerm
  • OpenSSH
  • AES-256-GCM
  • Rust
  • Axum
  • SQLite
  • C# / WPF
  • Kotlin / Compose

Built around

  1. The shared contract is a versioned file format, not a shared UI. macOS, Windows, and Android implement the same AES-256-GCM vault envelope, with cross-client fixtures checking interoperability.
  2. On macOS, a PTY runs the user's OpenSSH client, preserving its key, agent, certificate, and ProxyJump behavior. Multiple named sessions live beneath each host, and saved plain-text scrollback is encrypted with the vault rather than logged separately.
  3. The optional sync server keeps encrypted blobs and token hashes. Conditional writes, local conflict copies, and the last 32 server versions prevent a stale device from silently overwriting another. The sync client is currently implemented on macOS only.

If I kept going

  1. Close Windows and Android feature-parity gaps, especially session restoration, lifecycle handling, and host-management UI.
  2. Bring the existing sync protocol to Windows and Android; Linux remains a future client rather than a shipped platform.
Next projectFlatline