π¦ Modern SSH/SFTP client built with Rust - Cross-platform, fast, and secure.
Desktop companion to TabSSH Android - Same features, desktop power.
Core Status: β
100% Complete - Full SSH/SFTP client ready for production
Android Sync: π 45% - Adding cloud sync, universal SSH keys, groups, snippets
Target: 100% feature parity with Android v1.1.0
IMPORTANT: Rust is NOT installed locally. ALL builds, tests, and development tasks use Docker.
- Docker - Required for all operations (build, test, development)
- Make - Build automation (runs Docker commands)
- Git - Version control
Quick Start:
make build # Build with Docker β ./binaries
make test # Run tests in Docker
make release # Release build β ./releases
make docker # Build multi-arch Docker image- Browser-style tabs - Multiple SSH sessions in one window
- SSH authentication - Password, RSA, ECDSA, Ed25519 keys, keyboard-interactive
- Host key verification - MITM attack detection with database storage
- Port forwarding - Local (-L), Remote (-R), Dynamic/SOCKS (-D)
- SSH config parser - Import from ~/.ssh/config with ProxyJump
- SFTP browser - Full file management (upload, download, rename, delete, chmod)
- Transfer manager - Queue, progress tracking, cancel transfers
- 10+ themes - Dracula, Nord, Monokai, Gruvbox, One Dark, Tokyo Night, Solarized, etc.
- Settings system - Complete configuration management
- Session persistence - Resume sessions after restart
- Terminal emulation - Full VT100/xterm with 256 colors and true color
- Keyboard shortcuts - All major shortcuts (Ctrl+T, W, Tab, F5, Del, F2, etc)
- Context menus - Right-click menus for tabs, terminal, SFTP, connections
- Search - Find in terminal with regex support
- Notifications - System notifications for events
- Credential storage - OS keychain integration (macOS, Windows, Linux, BSD)
- Platform support - Windows, Linux, macOS, FreeBSD, OpenBSD, NetBSD
- Multi-arch - amd64 and arm64 builds for all platforms
- Static binaries - No runtime dependencies (musl for Linux)
- Comprehensive tests - 15 test suites covering all functionality
- CI/CD - GitHub Actions workflows for automated builds and releases
- Cloud Sync - Google Drive + WebDAV with AES-256-GCM encryption (75% priority)
- Universal SSH Keys - OpenSSH, PEM, PKCS#8, PuTTY support + key generation (75% priority)
- Connection Groups - Organize connections in folders (50% priority)
- Snippets Library - Quick command templates with variables (50% priority)
- Proxy/Jump Hosts - SSH through bastion servers (ProxyJump) (50% priority)
- Desktop UX - Ctrl+Scroll font size, Ctrl+Click URLs, pinned connections (25% priority)
See TODO.AI.md for detailed roadmap and CLAUDE.md for complete specification.
- Rust 1.75+ (install)
- Docker (for builds)
# Clone
git clone https://github.com/tabssh/desktop
cd desktop
# Build
cargo build --release
# Run
./target/release/tabssh# Run in debug mode
cargo run
# Run tests
cargo test
# Format and lint
cargo fmt
cargo clippy# Build static binary
make build
# Install
sudo cp binaries/tabssh-linux-amd64 /usr/local/bin/tabsshcargo build --release --target x86_64-apple-darwin
# or
cargo build --release --target aarch64-apple-darwincargo build --release --target x86_64-pc-windows-msvc8 built-in themes:
- Default Dark
- Dracula
- Solarized Dark/Light
- Nord
- Monokai
- Gruvbox Dark
- One Dark
- Tokyo Night
Switch themes in Settings (Ctrl+,)
| Shortcut | Action |
|---|---|
Ctrl+T |
New tab |
Ctrl+W |
Close tab |
Ctrl+Tab |
Next tab |
Ctrl+Shift+Tab |
Previous tab |
Ctrl+N |
New connection |
Ctrl+, |
Settings |
Ctrl+F |
Find |
Ctrl+Q |
Quit |
Alt+1-9 |
Switch to tab N |
- Language: Rust 2021 edition
- UI: egui (immediate-mode GUI)
- SSH: russh (pure Rust SSH2)
- Async: tokio runtime
- Database: SQLite (rusqlite)
- Terminal: Custom VT emulator
# All tests
cargo test
# Unit tests only
cargo test --lib
# Integration tests
cargo test --test '*'
# With logging
RUST_LOG=debug cargo testCompletion: 85%+
| Component | Status |
|---|---|
| SSH Core | β 95% |
| Terminal | β 90% |
| SFTP | π§ 60% |
| Port Forwarding | β 100% |
| Themes | β 100% |
| Settings | β 100% |
| Tests | π§ 70% |
| Docs | β 90% |
9,500+ lines of Rust
See CONTRIBUTING.md
Areas needing help:
- SFTP russh integration
- Cross-platform testing
- Additional themes
- Documentation
- Bug fixes
MIT License - See LICENSE.md
- Repository: https://github.com/tabssh/desktop
- Issues: https://github.com/tabssh/desktop/issues
- Android Version: ../android (reference implementation)
- russh - SSH implementation
- egui - Immediate mode GUI
- tokio - Async runtime
- Android TabSSH - Original inspiration
Built with π¦ Rust