Skip to content

Repository files navigation

Open-FinalShell

Cross-platform SSH terminal + SFTP client (FinalShell-style open alternative), built with Tauri 2 + Rust + russh + xterm.js.

中文文档

Features

  • 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

Stack

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.

Develop

npm install
npm run tauri dev          # hot reload

Build

npm run tauri build        # artifacts under src-tauri/target/release/bundle/

Install (Arch Linux / AUR)

Prebuilt binary package (from GitHub Release .deb):

yay -S open-finalshell-bin
# or: paru -S open-finalshell-bin

Packaging 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.

Release (CI/CD)

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

Known limits

  • 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

License

MIT

About

Open-source FinalShell alternative

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages