R-Shell โ Lightweight SSH Client for macOS, Windows & Linux
A modern SSH/SFTP/FTP/RDP/VNC client built with Rust and Tauri 2. ~98% less memory than Java-based alternatives (~34 MB vs ~1.7 GB). Installer under 10 MB.
Low memory ยท Native speed ยท Multi-protocol ยท Remote desktop ยท Split terminals ยท SFTP file manager ยท GPU monitoring ยท Log viewer ยท Directory sync
Features ยท Install ยท Screenshots ยท Development ยท Contributing
๐ธ Screenshots
R-Shell โ split terminals, file manager, and system monitor in a single window
๐ Why R-Shell?
Most SSH clients (FinalShell, MobaXterm, Xshell) run on Java or Electron โ burning memory even at idle. R-Shell uses Rust + Tauri 2 for native performance at a fraction of the cost.
Memory Comparison
Measured on macOS (Apple Silicon, 16 GB RAM) using footprint:
| App | Technology | Memory | Relative |
|---|---|---|---|
| R-Shell | Rust + Tauri 2 | ~34 MB | 1ร |
| FinalShell | Java | ~1.7 GB | ~50ร |
Installer Size
| Platform | R-Shell | FinalShell | Savings |
|---|---|---|---|
| Windows | 3.99 MB | 64 MB | 16ร smaller |
| macOS | 8.13 MB | 102 MB | 12ร smaller |
No bundled JVM or Chromium โ Tauri uses the OS native webview.
๐ฏ About
R-Shell combines an interactive terminal, dual-panel file manager, remote desktop viewer (RDP/VNC), real-time system/GPU monitoring, and log viewing in a single VS Code-like workspace. Built with Rust for native performance and minimal resource usage.
- Native Performance โ Tauri 2 + Rust backend, not Electron or Java
- AI-Generated Frontend โ UI generated from Figma designs
- AI-Assisted Development โ Entire codebase built with GitHub Copilot
- Cross-Platform โ macOS, Windows, and Linux
โจ Features
๐ Multi-Protocol Connections
| Protocol | Authentication | Description |
|---|---|---|
| SSH | Password, Public Key | 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 |
| RDP | Password | Remote Desktop Protocol |
| VNC | Password | Virtual Network Computing |
- Connection Manager โ Tree-view sidebar with folders, favorites, tags, and drag-and-drop
- Connection Profiles โ Save, import/export (JSON), duplicate, and edit connections
- Session Restore โ Automatically reconnects your 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 โ xterm.js v5 with support for vim, htop, top, less, and all interactive programs
- WebSocket streaming โ Low-latency bidirectional I/O with flow control
- 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-9focus group,Ctrl+Tabcycle tabs
๐ Dual-Panel File Manager (FileZilla-style)
- Local + Remote panels โ Side-by-side browsing with upload/download buttons
- Multi-protocol โ Works over SSH, SFTP, FTP, and FTPS
- 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 โ Upload/download 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 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 โ 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 โ 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)
- Rich formatting โ Line numbers, timestamps, and 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 โ Ctrl+9 |
Focus terminal group |
Ctrl+Shift+W |
Close active tab |
Ctrl+Tab |
Next tab |
Cmd/Ctrl+V |
Paste into terminal |
Cmd/Ctrl+F |
Search in terminal |
F3 / Shift+F3 |
Find next / previous |
Layout shortcuts are ignored while the terminal input is focused, so terminal-native bindings (e.g. tmux
Ctrl+B) still reach the shell.
๐ง Additional Features
- VS Code-like layout โ Resizable left/right sidebars + bottom panel with 5 layout presets (Default, Minimal, Focus, Full Stack, Zen)
- Remote Desktop โ Built-in RDP and VNC viewer with clipboard sync and dynamic resizing
- 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
๐ Tech Stack
Backend
- Tauri 2 โ Native desktop framework using the OS webview (no bundled Chromium)
- Rust โ Zero-cost abstractions, no GC, no JVM โ ~34 MB vs ~1.7 GB
- russh / russh-sftp โ Pure Rust SSH & SFTP 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, and overlay addons
- Recharts โ Data visualization for monitoring
- React Hook Form โ Form handling
- Lucide Icons โ Icon set
๐ฆ Installation
๐บ Homebrew (macOS โ Recommended)
brew tap GOODBOY008/tap
brew install --cask r-shell
Update:
brew upgrade --cask r-shell
๐ฅ Download Releases
Download from the 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
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
pnpm build && pnpm tauri build
Testing
pnpm test # Frontend (Vitest)
cd src-tauri && cargo test # Rust
pnpm test:e2e # E2E
Version Bumping
pnpm run version:patch # 2.2.0 โ 2.2.1
pnpm run version:minor # 2.2.0 โ 2.3.0
pnpm run version:major # 2.2.0 โ 3.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 # 54 Tauri commands
โ โโโ websocket_server.rs # PTY WebSocket streaming
โ โโโ connection_manager.rs # Thread-safe session lifecycle
โโโ scripts/ # Version bump and build scripts
๐ค Contributing
We welcome contributions! This project is an experiment in AI-assisted development.
Quick Links:
How to Contribute
- Fork the repo
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit (
git commit -m 'feat: add amazing feature') - Push (
git push origin feature/amazing-feature) - 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.
๐ Star History
๐ฌ Community
๐ Acknowledgments
- shadcn/ui โ UI components
- Figma Make โ Design generation
- Lucide โ Icons
- GitHub Copilot โ AI pair programming
Made with โค๏ธ and ๐ค AI
If you like this project, please give it a โญ!