A modern desktop SSH/SFTP client built with Rust.
ShellMaster3 is a Rust-based desktop app for managing remote servers with:
- SSH terminal sessions
- SFTP file browsing and transfers
- Remote system monitoring
- Snippets and known-host management
- Configurable UI and connection settings
The project currently focuses on core functionality and architecture evolution.
This project is built with vibe coding, and the code is generated by AI.
- SSH connection management
- Password and private-key authentication
- Jump host and proxy support
- Host key trust flow and known-host persistence
- Terminal tab/session UI
- SFTP file list, folder tree, upload/download, and basic remote editing workflow
- Remote monitor panel (CPU, memory, disk, network)
- Local persistence for servers, settings, snippets, and known hosts
- Built-in Chinese and English UI language support
- Language: Rust (Edition 2021)
- UI:
gpui,gpui-component - SSH:
russh - SFTP:
russh-sftp - Terminal emulation:
alacritty_terminal - Async runtime:
tokio - Serialization:
serde,serde_json
src/
components/ # Shared UI components (terminal/sftp/monitor/dialogs)
models/ # Domain models and settings
pages/ # Main pages (home, connecting, session)
services/ # Storage, SSH/SFTP services, monitor service
ssh/ # SSH client/session/connector/reconnect logic
state/ # Global and session state
terminal/ # Terminal bridge, renderer, key handling
docs/
architecture.md
ssh-connection-architecture.md
sftp-architecture.md
monitor-architecture.md
settings-design.md
- Rust toolchain (stable)
- Cargo
- Desktop environment supported by
gpui
cargo build
cargo runFor debug logging:
RUST_LOG=debug cargo runShellMaster3 stores app data under your OS config directory in shellmaster.
- macOS:
~/Library/Application Support/shellmaster - Linux:
~/.config/shellmaster - Windows:
C:\Users\<User>\AppData\Roaming\shellmaster
Key files and folders:
servers.jsonsettings.jsonsnippets.jsonknown_hosts.jsonkeys/(managed private keys)
- Imported private keys are copied into
keys/. - On Unix, key directory/file permissions are tightened (
0700for directory,0600for files). - Legacy private key paths are migrated on startup.
Details: PRIVATE_KEY_MIGRATION.md
- Terminal experience polish (keybindings, behavior consistency)
- SFTP editing and transfer UX hardening
- Monitor data refresh/performance optimization
- Cross-platform packaging and release pipeline
- WebDAV-based multi-device config sync
- Jump host connection enhancements
- Expanded keyboard shortcuts and customization
- Better connection diagnostics and error surfacing
- Sync/export-import workflow refinement
- More automated tests (unit + integration)
Contributions are welcome.
Recommended flow:
- Fork and create a feature branch.
- Keep changes focused and documented.
- Run local checks before opening a PR.
- Link related design docs if architecture is affected.
This project is licensed under the MIT License. See LICENSE.