Skip to content

tabssh/desktop

Repository files navigation

TabSSH Desktop

πŸ¦€ Modern SSH/SFTP client built with Rust - Cross-platform, fast, and secure.

Build License Rust Status

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


🐳 Prerequisites

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

🎯 Features

βœ… Complete Feature Set (100%)

  • 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

πŸ”„ Coming from Android v1.1.0 (In Development)

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


πŸš€ Quick Start

Prerequisites

  • Rust 1.75+ (install)
  • Docker (for builds)

Build

# Clone
git clone https://github.com/tabssh/desktop
cd desktop

# Build
cargo build --release

# Run
./target/release/tabssh

Development

# Run in debug mode
cargo run

# Run tests
cargo test

# Format and lint
cargo fmt
cargo clippy

πŸ“¦ Installation

Linux

# Build static binary
make build

# Install
sudo cp binaries/tabssh-linux-amd64 /usr/local/bin/tabssh

macOS

cargo build --release --target x86_64-apple-darwin
# or
cargo build --release --target aarch64-apple-darwin

Windows

cargo build --release --target x86_64-pc-windows-msvc

🎨 Themes

8 built-in themes:

  • Default Dark
  • Dracula
  • Solarized Dark/Light
  • Nord
  • Monokai
  • Gruvbox Dark
  • One Dark
  • Tokyo Night

Switch themes in Settings (Ctrl+,)


⌨️ Keyboard Shortcuts

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

πŸ—οΈ Architecture

  • Language: Rust 2021 edition
  • UI: egui (immediate-mode GUI)
  • SSH: russh (pure Rust SSH2)
  • Async: tokio runtime
  • Database: SQLite (rusqlite)
  • Terminal: Custom VT emulator

πŸ§ͺ Testing

# All tests
cargo test

# Unit tests only
cargo test --lib

# Integration tests
cargo test --test '*'

# With logging
RUST_LOG=debug cargo test

πŸ“Š Project Status

Completion: 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


🀝 Contributing

See CONTRIBUTING.md

Areas needing help:

  • SFTP russh integration
  • Cross-platform testing
  • Additional themes
  • Documentation
  • Bug fixes

πŸ“ License

MIT License - See LICENSE.md


πŸ”— Links


πŸ™ Acknowledgments

  • russh - SSH implementation
  • egui - Immediate mode GUI
  • tokio - Async runtime
  • Android TabSSH - Original inspiration

Built with πŸ¦€ Rust

About

Repo for desktop

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published