https://github.com/goodboy008/r-shell
๐ A modern SSH client built with Tauri, React & Rust. AI-powered development: Frontend generated from Figma Make, developed with GitHub Copilot. Features multi-session management, file browser, system monitoring & more.
https://github.com/goodboy008/r-shell
ai-assisted desktop-app figma github-copilot react rust sftp ssh-client system-monitor tauri terminal typescript
Last synced: 10 days ago
JSON representation
๐ A modern SSH client built with Tauri, React & Rust. AI-powered development: Frontend generated from Figma Make, developed with GitHub Copilot. Features multi-session management, file browser, system monitoring & more.
- Host: GitHub
- URL: https://github.com/goodboy008/r-shell
- Owner: GOODBOY008
- License: mit
- Created: 2025-10-30T08:16:36.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2026-02-04T07:34:45.000Z (4 months ago)
- Last Synced: 2026-02-06T00:30:18.572Z (4 months ago)
- Topics: ai-assisted, desktop-app, figma, github-copilot, react, rust, sftp, ssh-client, system-monitor, tauri, terminal, typescript
- Language: TypeScript
- Homepage: https://github.com/GOODBOY008/r-shell
- Size: 8.41 MB
- Stars: 13
- Watchers: 1
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# R-Shell โ Lightweight, Fast SSH Client for macOS, Windows & Linux
[](https://github.com/GOODBOY008/r-shell/blob/main/LICENSE)
[](https://github.com/GOODBOY008/r-shell/actions/workflows/test.yml)
[](https://github.com/GOODBOY008/r-shell/actions/workflows/release.yml)
[](https://github.com/GOODBOY008/r-shell/stargazers)
[](https://github.com/GOODBOY008/r-shell/issues)
[](https://tauri.app/)
[](https://react.dev/)
[](https://www.rust-lang.org/)
A modern, lightweight SSH/SFTP/FTP client built with Rust and Tauri 2. Uses ~98% less memory than FinalShell (~34 MB vs ~1.7 GB). Installer under 10 MB โ 12ร smaller.
**Low memory** ยท **Native speed** ยท **Multi-protocol** ยท **Split terminals** ยท **SFTP file manager** ยท **GPU monitoring** ยท **Log viewer** ยท **Directory sync**
[Why R-Shell?](#-why-r-shell) ยท [Features](#-features) ยท [Install](#-installation) ยท [Screenshots](#-screenshots) ยท [Contributing](CONTRIBUTING.md) ยท [License](LICENSE)
---
## ๐ธ Screenshots
R-Shell โ split terminals, file manager, and system monitor in a single window
---
## ๐ Why R-Shell?
Most popular SSH clients (FinalShell, MobaXterm, Xshell) are built on Java or Electron, which means high memory usage even when idle. R-Shell is built with Rust + Tauri 2, delivering native performance with a fraction of the memory footprint.
### Memory Comparison (Real-World Test)
Both apps running side-by-side on macOS (Apple Silicon, 16 GB RAM), measured with macOS `footprint` (same metric as Activity Monitor):
| App | Technology | Memory | Relative |
|-----|-----------|--------|----------|
| **R-Shell** | Rust + Tauri 2 | **~34 MB** | **1ร** |
| FinalShell | Java (Identifier: st) | **~1.7 GB** | **~50ร** |
> R-Shell uses approximately **98% less memory** than FinalShell โ that's **~1.7 GB saved** for your IDE, browser, and Docker.
### Installer Size Comparison
| Platform | R-Shell | FinalShell | Savings |
|----------|---------|-----------|---------|
| **Windows** | **3.99 MB** | 64 MB | **~16ร** smaller |
| **macOS** | **8.13 MB** | 102 MB | **~12ร** smaller |
> No bundled JVM, no Chromium โ Tauri uses the OS native webview, so the installer stays tiny.
### Why does this matter?
- Developers often keep SSH clients open all day alongside IDEs, browsers, and Docker
- FinalShell alone can consume over 10% of a 16 GB machine's RAM while idle
- Rust's zero-cost abstractions mean low memory without sacrificing features
- No JVM startup overhead โ R-Shell launches instantly
---
## ๐ฏ About
R-Shell is a free, open-source, cross-platform SSH client that combines an interactive terminal, a dual-panel file manager, real-time system & GPU monitoring, and log viewing โ all in one VS Code-like workspace. Built with Rust for native performance and minimal resource usage, it's a lightweight alternative to FinalShell, MobaXterm, and Xshell.
- ๐ **Native Performance** โ Tauri 2 + Rust backend, not Electron or Java. ~34 MB memory footprint vs FinalShell's ~1.7 GB.
- ๐จ **AI-Generated Frontend** โ The UI was generated from [Figma designs](https://www.figma.com/make/uUd7WO54vPnv03SmioKWqj/SSH-Client-Application)
- ๐ค **AI-Assisted Development** โ The entire codebase is built with **GitHub Copilot**
- ๐ **Cross-Platform** โ macOS, Windows, and Linux
---
## โจ Features
### ๐ Multi-Protocol Connections
| Protocol | Authentication | Description |
|----------|---------------|-------------|
| **SSH** | Password, Public Key (with passphrase) | Full interactive PTY terminal |
| **SFTP** | Password, Public Key | Standalone file transfer sessions |
| **FTP** | Password, Anonymous | Plain FTP file transfers |
| **FTPS** | Password, Anonymous | FTP over TLS |
- **Connection Manager** โ Tree-view sidebar with folders, favorites, tags, drag-and-drop organization
- **Connection Profiles** โ Save, import/export (JSON), duplicate, edit saved connections
- **Session Restore** โ Automatically reconnects your previous workspace on launch
- **Quick Connect** โ Toolbar dropdown with recent connections
- **Auto Reconnect** โ Exponential backoff reconnection (up to 5 attempts)
### ๐ป Interactive PTY Terminal
- **Full terminal emulation** via xterm.js v5 โ supports vim, htop, top, less, and all interactive programs
- **WebSocket streaming** โ low-latency bidirectional I/O with flow control (inspired by ttyd)
- **WebGL renderer** โ hardware-accelerated rendering with automatic canvas fallback
- **Terminal search** โ regex and case-sensitive search with F3 navigation
- **Context menu** โ copy, paste, select all, clear, save to file, reconnect
- **IME / CJK input** โ full support for Chinese, Japanese, Korean input methods
### ๐ช Split Panes & Tab Groups
- **Split in 4 directions** โ Up, Down, Left, Right
- **Recursive grid layout** โ unlimited nested splits with resizable panels
- **Tab management** โ add, close, duplicate, reorder (drag-and-drop), move between groups
- **Drop zone overlay** โ drag tabs onto 5 drop zones (up/down/left/right/center)
- **Keyboard shortcuts** โ Ctrl+\ split, Ctrl+1-9 focus group, Ctrl+Tab cycle tabs
### ๐ Dual-Panel File Manager (FileZilla-style)
- **Local + Remote panels** โ side-by-side browsing with upload/download buttons
- **Works over SSH, SFTP, FTP, and FTPS** โ unified file operations across all protocols
- **File operations** โ create, rename, delete, copy files and directories
- **Breadcrumb navigation** โ editable address bar with click-to-navigate
- **Sort & filter** โ by name, size, date, permissions, owner (ascending/descending)
- **Multi-select** โ select multiple files for batch operations
- **Transfer queue** โ queued transfers with progress, speed, ETA, cancel, and retry
- **Recursive directory transfer** โ uploads/downloads entire directory trees
### ๐ Directory Synchronization
- **4-step sync wizard** โ Configure โ Compare โ Review โ Sync
- **Sync directions** โ Local-to-Remote or Remote-to-Local
- **Comparison criteria** โ Size, Modified time, or both
- **Diff preview** โ per-item checkboxes with upload/download/delete/skip actions
- **Exclude patterns** โ skip `.git`, `node_modules`, `.DS_Store`, etc.
### ๐ System Monitoring
- **CPU** โ real-time usage percentage with color-coded thresholds
- **Memory & Swap** โ total, used, free with percentage bars
- **Disk** โ per-mount filesystem usage with progress bars
- **Uptime & Load Average** โ at a glance
- **Process Manager** โ list processes sorted by CPU/MEM, kill with confirmation
- **Real-time charts** โ CPU history and memory area charts (Recharts)
### ๐ฎ GPU Monitoring
- **NVIDIA** (nvidia-smi) โ utilization, memory, temperature, power, fan speed, encoder/decoder
- **AMD** โ GPU stats support
- **Multi-GPU** โ GPU selector with individual or "all" view
- **History charts** โ utilization, memory, temperature over time
- **Temperature thresholds** โ color-coded: green < 60ยฐC, yellow < 75ยฐC, orange < 85ยฐC, red โฅ 85ยฐC
### ๐ Network Monitoring
- **Bandwidth** โ per-interface rx/tx bytes per second
- **Latency** โ real-time network latency measurements
- **Active connections** โ protocol, local/remote address, state, PID
- **Usage charts** โ download/upload history
### ๐ Log Monitoring
- **Multi-source** โ log files, journalctl services, Docker containers, custom paths
- **Auto-discovery** โ automatically finds available log sources on the remote host
- **Level filtering** โ ERROR, WARN, INFO, DEBUG, TRACE filter chips
- **Regex search** โ with match highlighting
- **Live tail** โ configurable refresh interval (1s โ 30s)
- **Line numbers + timestamps + level badges** โ parsed from common log formats
- **Download** โ save log content locally
### ๐จ Appearance & Customization
- **10 terminal color themes** โ VS Code Dark, Monokai, Solarized Dark/Light, Dracula, One Dark, Nord, Gruvbox Dark, Tokyo Night, Matrix
- **Dark / Light / Auto** โ application theme follows system preference
- **7 font families** โ Menlo, JetBrains Mono, Fira Code, Source Code Pro, Consolas, Monaco, Courier New
- **Configurable** โ font size, line height, letter spacing, cursor style (block/underline/bar), scrollback (1Kโ100K lines)
- **Background images** โ custom image with opacity, blur, and position controls
- **Terminal transparency** โ configurable opacity
### โจ๏ธ Keyboard Shortcuts
| Shortcut | Action |
|----------|--------|
| `Ctrl+B` | Toggle Connection Manager |
| `Ctrl+J` | Toggle File Browser |
| `Ctrl+M` | Toggle Monitor Panel |
| `Ctrl+Z` | Toggle Zen Mode |
| `Ctrl+\` | Split terminal right |
| `Ctrl+Shift+\` | Split terminal down |
| `Ctrl+1` โ `9` | Focus terminal group |
| `Ctrl+W` | Close active tab |
| `Ctrl+Tab` | Next tab |
| `Cmd/Ctrl+F` | Search in terminal |
| `F3` / `Shift+F3` | Find next / previous |
### ๐ง Additional Features
- **VS Code-like layout** โ resizable left/right sidebars + bottom panel with 5 layout presets (Default, Minimal, Focus, Full Stack, Zen)
- **Auto-update** โ check for updates with download progress and install-and-relaunch
- **Menu bar** โ File, Edit, Tools, Connection menus with full keyboard shortcuts
- **Status bar** โ active connection name, protocol badge, connection status indicator
- **49 Tauri commands** โ comprehensive Rust backend API
---
## ๐ Tech Stack
### Backend โ Why It's Lightweight
- **Tauri 2** โ native desktop framework, uses the OS webview instead of bundling Chromium (unlike Electron)
- **Rust** โ zero-cost abstractions, no garbage collector, no JVM โ this is why R-Shell uses ~34 MB vs FinalShell's ~1.7 GB
- **russh / russh-sftp** โ pure Rust SSH & SFTP protocol implementation
- **suppaftp** โ FTP/FTPS client
- **tokio** โ async runtime with minimal overhead
- **tokio-tungstenite** โ WebSocket server for PTY streaming
- **sysinfo** โ system stats collection
### Frontend
- **React 19** + **TypeScript** โ type-safe modern React
- **Tailwind CSS** โ utility-first styling
- **Radix UI / shadcn/ui** โ 48+ accessible component primitives
- **xterm.js v5** โ terminal emulation with WebGL, search, web-links, fit, overlay addons
- **Recharts** โ data visualization for monitoring
- **React Hook Form** โ form handling
- **Lucide Icons** โ icon set
---
## ๐ฆ Installation
### ๐บ Homebrew (macOS โ Recommended)
```bash
brew tap GOODBOY008/tap
brew install --cask r-shell
```
**Update:**
```bash
brew upgrade --cask r-shell
```
### ๐ฅ Download Releases
Download from the [Releases](https://github.com/GOODBOY008/r-shell/releases) page:
| Platform | File |
|----------|------|
| macOS (Apple Silicon) | `r-shell_x.x.x_aarch64.dmg` |
| macOS (Intel) | `r-shell_x.x.x_x64.dmg` |
| Windows | `r-shell_x.x.x_x64-setup.exe` |
| Linux | `r-shell_x.x.x_amd64.AppImage` / `.deb` |
---
## ๐ Development
### Prerequisites
- Node.js โฅ 18
- pnpm
- Rust & Cargo
### Quick Start
```bash
git clone https://github.com/GOODBOY008/r-shell.git
cd r-shell
pnpm install
# Web only
pnpm dev
# Desktop with Tauri
pnpm tauri dev
```
### Build for Production
```bash
pnpm build && pnpm tauri build
```
### Testing
```bash
pnpm test # Frontend (Vitest)
cd src-tauri && cargo test # Rust
pnpm test:e2e # E2E
```
### Version Bumping
```bash
pnpm run version:patch # 1.0.0 โ 1.0.1
pnpm run version:minor # 1.0.0 โ 1.1.0
pnpm run version:major # 1.0.0 โ 2.0.0
```
---
## ๐ Project Structure
```
r-shell/
โโโ src/
โ โโโ components/ # React components
โ โ โโโ ui/ # 48+ shadcn/ui primitives
โ โ โโโ terminal/ # Split panes, tab groups, grid renderer
โ โ โโโ pty-terminal.tsx # PTY terminal (WebSocket + xterm.js)
โ โ โโโ connection-*.tsx # Connection dialog, manager, tabs
โ โ โโโ file-*.tsx # File browser, panels
โ โ โโโ sftp-panel.tsx # Dual-panel SFTP manager
โ โ โโโ sync-dialog.tsx # Directory synchronization
โ โ โโโ transfer-*.tsx # Transfer queue & controls
โ โ โโโ system-monitor.tsx # CPU/MEM/Disk/GPU monitor
โ โ โโโ network-monitor.tsx# Network stats
โ โ โโโ log-monitor.tsx # Multi-source log viewer
โ โ โโโ settings-modal.tsx # 6-tab settings
โ โโโ lib/ # State management & utilities
โ โโโ styles/ # Global CSS
โโโ src-tauri/ # Tauri / Rust backend
โ โโโ src/
โ โโโ ssh/ # SSH/SFTP implementation
โ โโโ ftp_client.rs # FTP/FTPS client
โ โโโ commands.rs # 49 Tauri commands
โ โโโ websocket_server.rs# PTY WebSocket streaming
โ โโโ connection_manager.rs # Thread-safe session lifecycle
โโโ docs/ # Documentation
```
---
## ๐ค Contributing
We welcome contributions! This project is an experiment in AI-assisted development.
**Quick Links:**
- [Contributing Guidelines](CONTRIBUTING.md)
- [Code of Conduct](CODE_OF_CONDUCT.md)
- [Version Bump Guide](docs/VERSION_BUMP.md)
- [Layout Guide](LAYOUT_GUIDE.md)
- [Quick Start](QUICKSTART.md)
### How to Contribute
1. Fork the repo
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit (`git commit -m 'feat: add amazing feature'`)
4. Push (`git push origin feature/amazing-feature`)
5. Open a Pull Request
### Areas We Need Help
- ๐ Bug fixes and issue reports
- ๐ Documentation improvements
- โจ Feature enhancements
- ๐งช Test coverage
- ๐ Internationalization (i18n)
- ๐จ UI/UX improvements
---
## ๐ License
MIT โ see [LICENSE](LICENSE).
## ๐ Star History
[](https://star-history.com/#GOODBOY008/r-shell&Date)
## ๐ฌ Community
- [Issues](https://github.com/GOODBOY008/r-shell/issues)
- [Discussions](https://github.com/GOODBOY008/r-shell/discussions)
- [Pull Requests](https://github.com/GOODBOY008/r-shell/pulls)
## ๐ Acknowledgments
- [shadcn/ui](https://ui.shadcn.com/) โ UI components
- [Figma Make](https://www.figma.com/make/) โ Design generation
- [Lucide](https://lucide.dev/) โ Icons
- [GitHub Copilot](https://github.com/features/copilot) โ AI pair programming
---
**Made with โค๏ธ and ๐ค AI**
If you like this project, please give it a โญ!