A native macOS SSH workspace for terminals, SFTP, port forwarding, and AI-assisted remote work.
Download latest · Releases · 简体中文
macOS 15+ (macOS 26 recommended) · Universal · Developer ID signed · Apple notarized
Berth is a Swift-native SSH client for macOS. It keeps the directness of a terminal while bringing connections, remote files, and contextual tools into one workspace for developers and operators.
| Capability | What it provides |
|---|---|
| Terminal workspace | Tabs, nested split panes, search, themes, automatic reconnect, and connection reuse; side tools (AI, SFTP, server info, Docker, snippets) live in one Xcode-style inspector rail. |
| Connections | Password, private-key, ssh-agent, and keyboard-interactive authentication; ssh_config import (including Include directives), jump hosts, and HTTP/SOCKS5 proxies. |
| Workspaces | Group hosts into Arc-style workspaces — a dot switcher and trackpad swipe page the sidebar; assignments sync via iCloud, and with no workspaces the flat list stays as is. |
| Networking | Local, remote, and dynamic SOCKS5 port forwarding for temporary debugging and private-network access. |
| SFTP file panel | Browse, upload, download, preview, and edit through the active SSH connection; drag files in either direction and download folders recursively. |
| Server visibility | CPU, memory, disk, network, and load in the dashboard; inspect Docker or Podman container state and logs. |
| AI assistant | Analyze the current terminal context, propose or run commands, render Markdown including tables, and keep command approval configurable. Conversations persist per host and resume with full context. |
Stay in the flow with ⌘K Quick Connect, ⌘T new tab, ⌘D split pane, ⌘F search, ⌘I server information, and ⌘⇧A AI Assistant. Ctrl combinations always pass through to the remote shell, preserving readline, vim, and Emacs habits.
The AI panel can run commands in the active session, read their output, and continue the investigation. Berth includes presets for Anthropic, OpenAI, Fireworks AI, Gemini, DeepSeek, OpenRouter, Ollama, LM Studio, and more. Any OpenAI- or Anthropic-compatible endpoint and model can also be configured manually.
API keys are stored only in the macOS Keychain. When using a cloud model, only the content required for the request is sent to the provider you configured; choose providers and context in line with your organisation's security policy.
- Passwords, private keys, and passphrases live in the macOS Keychain—not in plaintext in the database or JSON backups.
- known_hosts verification explicitly surfaces first connections and host-key changes.
- Berth requires no account and does not depend on a Berth-operated cloud service for SSH connections.
- Screenshots in this repository use in-memory data and a local test container. Host names, addresses, and accounts are fixtures; real addresses are redacted.
With Homebrew:
brew install --cask xinghelee/tap/berthOr download Berth-<version>.dmg from GitHub Releases, then drag Berth.app to Applications. Release builds are Developer ID signed and Apple notarized.
Requirements: macOS 15+, Xcode 16+ with the Metal toolchain, and XcodeGen.
xcodegen generate
xcodebuild -project Berth.xcodeproj -scheme Berth -configuration Debug build
xcodebuild -project Berth.xcodeproj -scheme Berth testBerth.xcodeproj is generated by XcodeGen and is not checked in. If the Metal toolchain is missing:
xcodebuild -downloadComponent metalToolchain- Swift + SwiftUI with an AppKit-bridged terminal view
- SwiftTerm terminal emulation with Metal rendering
- Citadel and vendored swift-nio-ssh for SSH; see vendor/PATCHES.md for the RSA compatibility patch
- SwiftData, XcodeGen, and a notarized DMG release pipeline
Berth is licensed under GPL-3.0. Third-party dependencies retain their respective licenses in vendor/.

