DEV Community

Quincy Zhang
Quincy Zhang

Posted on

I Built an Open-Source SSH Workbench Because I Was Tired of Juggling 4 Tools to Manage My Servers

Here's a familiar scene: you're debugging a production issue. You SSH in, tail the logs, spot an error. Now you need to upload a patched config file — so you open FileZilla, navigate six folders deep to find the right path. Then you want to ask AI what that cryptic error means — so you copy-paste terminal output into a browser tab. Meanwhile your SSH key passphrase is in yet another tool.

Four windows. One task.

That exact frustration is why I spent the last few months building Sageport — an all-in-one SSH workbench that combines terminal + SFTP + credential manager + AI assistant into a single desktop app. It's built with Tauri 2 and React, fully open source under GPL-3.0, and the binary is under 10MB.

Sageport workbench


The Pitch

Instead of four tools that don't talk to each other, imagine this:

  1. Press ⌘ P, type a host name, hit Enter — you're connected
  2. Press ⌘ J — a dual-pane file browser slides up, one side local, one side remote. Drag files across
  3. Press ⌘ L — an AI panel opens. It can see your terminal output and propose fixes
  4. Press ⌘ N — add a new host. Assign it any credential you've already saved. Done

Everything lives in a local SQLite database. No cloud account required. No vendor lock-in. Your data stays on your machine.

What Makes It Different

There are plenty of SSH clients out there. Here's why I built another one:

1. The AI Actually Has Access to Your Terminal

This isn't a chat sidebar copy-pasted into your workflow. Sageport's AI assistant is wired into the app via a tool-calling loop — it can list your open SSH sessions, read what's on screen, and propose commands. The key design choice: every remote command requires your explicit approval before it runs. No YOLO rm -rf from a hallucinating model.

You bring your own API key — Anthropic, OpenAI, or any compatible endpoint (Ollama, OpenRouter, etc.). Conversations are stored locally. No telemetry. We never see your data.

2. Five Sync Backends, All End-to-End Encrypted

Most tools either force you into their cloud (Termius) or don't sync at all. Sageport encrypts everything with Argon2id + AES-256-GCM and lets you pick where the ciphertext lives:

Provider Best for
GitHub Gist (secret) Developers — free, no setup if you have GitHub
Google Drive Anyone with a Google account
OneDrive Microsoft ecosystem
WebDAV Self-hosted (Nextcloud, Synology NAS)
S3-compatible Enterprise (AWS, MinIO, Cloudflare R2)

Only encrypted blobs ever leave your device. The passphrase never touches the network. If you lose your passphrase, the data is gone — and that's the point.

3. Credentials Are First-Class Citizens

In Sageport, credentials (called "identities") are separate from hosts. Create one SSH key, reuse it across 50 servers. The built-in key manager generates Ed25519, RSA, and ECDSA keys, imports existing keys in OpenSSH format, and supports passphrase protection. No more copy-pasting ~/.ssh/id_* files between machines.

4. It's a Real Desktop App, Not a Web View in Disguise

Built on Tauri 2 with a Rust backend. The SSH engine, SFTP handler, and crypto all run natively. The terminal uses xterm.js with GPU-accelerated WebGL rendering — smooth even under heavy output. Compare that to an Electron app eating 500MB of RAM just to hold an SSH session open.


The Stack (For the Curious)

Layer Choice
Desktop shell Tauri 2 (Rust)
UI React 19 + TypeScript
Styling Tailwind CSS 4
Terminal xterm.js 6 + WebGL
SSH/SFTP libssh2 (vendored OpenSSL)
Crypto Argon2id + AES-256-GCM (pure Rust)
State Zustand 5 + TanStack Query 5
Database SQLite (via SQLx + migrations)

Everything is typed end-to-end, including the IPC layer between React and Rust — ~60 typed Tauri commands with compile-time safety.

Why GPL-3.0, Not MIT

I chose GPL-3.0 intentionally. This is a tool for developers, and I want every improvement to flow back to the community. If a company wants to fork it and build something proprietary on top, they can reach out. Otherwise, the code is yours to use, modify, and contribute to — forever.

What's on the Roadmap

Sageport is at v0.3.0 and I use it daily. It's stable, but there's a lot I want to build:

  • Terminal session sharing — share a read-only or interactive session via a link
  • RDP / VNC support — because not everything is SSH
  • Mobile companion app — view sessions and run snippets from your phone
  • Deeper AI context — let the assistant correlate logs across multiple hosts

Try It Out

Downloads for macOS, Windows, and Linux are on the releases page. The app auto-updates, so you'll always have the latest version.

# macOS: .dmg (Apple Silicon + Intel, universal)
# Windows: .msi / .exe
# Linux: .deb / .rpm / .AppImage
Enter fullscreen mode Exit fullscreen mode

Quick setup —

  • ⌘ N to add a host
  • ⌘ P to connect via command palette
  • ⌘ , for settings (AI keys, sync, themes)

Star on GitHub →


If you try Sageport and something breaks (or you have a feature idea), open an issue. I read every single one. This project exists because I scratched my own itch — odds are you have the same one.

Top comments (0)