Skip to content

Repository files navigation

SpanHost

简体中文

SpanHost is an open-source desktop SSH client (Windows packages today; macOS / Linux from source). Security: credentials in the OS keyring only; host keys verified; port forwards bind to loopback by default. SSH runs in Rust — stack and data flow in docs/ARCHITECTURE.md (中文).

Built with Tauri 2 + React + russh. sessions.jsonnever holds plaintext passwords. Windows installers are available today; macOS / Linux can be built from source, with no official packages yet.

SpanHost hero

Features

  • Sessions — group, search, test connection; password-free JSON import/export (no credentials). Imported forward rules do not keep non-local listen addresses; open listening must be confirmed again on this machine.
  • Security & trust — password and private key in the OS keyring; prompt when credentials are missing; host key confirm / reject
  • Tabs & tunnels — multi-tab (background tabs stay connected); tunnels-only mode; Local / Remote port forwarding; listens on loopback by default; expanding the bind scope requires confirmation
  • Terminal — appearance and terminal scrollback buffer; Zmodem in-terminal transfers (remote needs lrzsz; coexist with SFTP; download names are sanitized against path traversal)
  • SFTP — same-connection directory browse and upload/download (including folders); side panel next to the terminal
  • Shell extras — host status bar, system tray, diagnostics log, 10 UI languages

Screenshots

Terminal + SFTPSession management
Terminal + SFTPSession management
Port forwardingAppearance & settings
Port forwardingAppearance & settings
Welcome
Welcome

Platform support

PlatformOfficial packagesNotes
WindowsYes — NSIS / MSI / portable zip on ReleasesPrimary deliverable today
macOSNoBuild from source with Tauri; no official installer or support commitment
LinuxNoSame as macOS; distro/desktop differences are best-effort

Bug reports should include OS, SpanHost version (or commit), and steps to reproduce.

Install

Windows: download the latest installer or portable build from Releases.

macOS / Linux: build from source (see below). There are no official prebuilt packages.

Build from source

Suggested environment:

  • Node.js LTS (≥ 20) and pnpm
  • Rust stable via rustup, meeting Tauri 2 prerequisites
  • Platform system dependencies on the same page (Windows also needs MSVC / WebView2, etc.)
pnpm install
pnpm tauri dev # development (Tauri CLI)
pnpm tauri build # production build (Tauri CLI)

For Windows packaging, use this repo’s custom package.json scripts (not native Tauri commands):

pnpm build:windows # NSIS / MSI / zip (x64)
pnpm build:portable # portable zip only

Optional checks for contributors:

pnpm check # Biome + TypeScript

FAQ

  • Antivirus flags the installer? Common for desktop SSH clients; prefer official GitHub Releases builds, add a trust exception, or use the portable package.
  • App refuses to start? Startup is refused when the OS keyring is unavailable (credentials cannot be stored safely).
  • Zmodem does not transfer files? The remote needs lrzsz. Zmodem is the in-terminal protocol path; for panel browse/upload/download use SFTP (same SSH connection). Download filenames are sanitized (basename only, illegal characters replaced, etc.).
  • Port forward will not bind a LAN address? Default is 127.0.0.1 only; non-local listen addresses require explicit confirmation when saving or adding.

Roadmap

Welcome (focused PRs) — UI / copy / i18n, docs and screenshots, Windows polish and reproducible bugfixes, small non-sensitive features (open an issue first when unsure).

Discuss before a large PR — SSH auth, credential / session persistence, connection concurrency and tunnels, port-forward security, packaging / signing, host-key trust. Details: CONTRIBUTING.md.

Not in scope for drive-by PRs (for now)

  • Official macOS / Linux installers (source-build feedback welcome; no package commitment)
  • ProxyJump (deferred)
  • Samples or fixtures with real hosts, credentials, or personal data

Contributing

See CONTRIBUTING.md for issues, PRs, pnpm check, i18n (10 locales), and sensitive-change guidance. Chinese: CONTRIBUTING.zh-CN.md.

Security

Report security issues privately via SECURITY.md. Do not post exploit details in public issues.

License

Licensed under the Apache License 2.0.

About

Open-source SSH client for Windows: multi-tab sessions, SFTP, port forwards, Zmodem. Releases have installers.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages