Cross-platform SSH terminal + SFTP client (FinalShell-style open alternative), built with Tauri 2 + Rust + russh + xterm.js.
- Tabbed SSH terminal: xterm.js emulation, live resize, middle-click paste, scrollback
- Local terminal: open a host shell tab without SSH
- Connection manager: grouped hosts, password / private-key auth
- Quick connect landing: recent hosts grid + local terminal entry
- SFTP file manager: browse/upload/download/mkdir/rename/delete, pack as tar.gz, remote text editor
- Command bar + quick commands dock: history, chips, multi-group commands
- Sidebar system monitor: CPU / memory / swap / top processes / disks / NIC rates (Linux)
- Settings: dark/light/ink/retro themes, SOCKS/HTTP proxy, key manager (scan/generate), host fingerprints, local HTTP bridge / Web SSH / MCP tools
- Cloud backup: local JSON export/import + WebDAV upload/download
- Transfer manager: live progress list for uploads/downloads
| Option | Size | SSH ecosystem | Notes |
|---|---|---|---|
| Tauri 2 + Rust + russh | ~10–20MB install | Pure-Rust SSH/SFTP | Chosen |
| Electron + ssh2 | ~150MB+, heavy RAM | Mature Node stack | Heavy |
| Wails + Go + x/crypto/ssh | ~15MB | Usable, thinner ecosystem | Fallback |
| Flutter + dartssh2 | ~20MB | Weak; terminal hard | Not recommended |
russh owns the SSH/SFTP session in Rust; terminal bytes are pushed to xterm.js over events without hauling bulk traffic through a JS bridge. One codebase packages Windows / macOS / Linux.
npm install
npm run tauri dev # hot reloadnpm run tauri build # artifacts under src-tauri/target/release/bundle/Prebuilt binary package (from GitHub Release .deb):
yay -S open-finalshell-bin
# or: paru -S open-finalshell-binPackaging sources live in distro/aur/open-finalshell-bin. After each vX.Y.Z release, maintainers bump with ./distro/aur/bump-bin.sh X.Y.Z and push to the AUR repo.
Push a vX.Y.Z tag to run GitHub Actions and publish multi-platform Release assets:
git tag v0.1.3 && git push origin v0.1.3- Profile passwords are stored plaintext in the local config dir (
profiles.json) — system keychain encryption TBD - Full editor syntax highlight / multi-cloud OAuth beyond WebDAV still TBD
- SFTP owner/group shown as numeric IDs
- System monitor needs Linux
/proc+ps/free/df; non-Linux hosts may return no data
MIT