Skip to content

iwoov/ShellMaster3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

161 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ShellMaster3

A modern desktop SSH/SFTP client built with Rust.

中文文档 (Simplified Chinese)

Overview

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.

AI Notice

This project is built with vibe coding, and the code is generated by AI.

Features

  • 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

Tech Stack

  • Language: Rust (Edition 2021)
  • UI: gpui, gpui-component
  • SSH: russh
  • SFTP: russh-sftp
  • Terminal emulation: alacritty_terminal
  • Async runtime: tokio
  • Serialization: serde, serde_json

Project Structure

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

Requirements

  • Rust toolchain (stable)
  • Cargo
  • Desktop environment supported by gpui

Build & Run

cargo build
cargo run

For debug logging:

RUST_LOG=debug cargo run

Configuration & Data Files

ShellMaster3 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.json
  • settings.json
  • snippets.json
  • known_hosts.json
  • keys/ (managed private keys)

Security Notes

  • Imported private keys are copied into keys/.
  • On Unix, key directory/file permissions are tightened (0700 for directory, 0600 for files).
  • Legacy private key paths are migrated on startup.

Details: PRIVATE_KEY_MIGRATION.md

TODO / Roadmap

In Progress

  • Terminal experience polish (keybindings, behavior consistency)
  • SFTP editing and transfer UX hardening
  • Monitor data refresh/performance optimization

Planned

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

Contributing

Contributions are welcome.

Recommended flow:

  1. Fork and create a feature branch.
  2. Keep changes focused and documented.
  3. Run local checks before opening a PR.
  4. Link related design docs if architecture is affected.

License

This project is licensed under the MIT License. See LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages