R-Shell

June 13, 2026 · View on GitHub

R-Shell — Lightweight SSH Client for macOS, Windows & Linux

GitHub license Test Release GitHub stars Tauri React Rust

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 Application Screenshot

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:

AppTechnologyMemoryRelative
R-ShellRust + Tauri 2~34 MB
FinalShellJava~1.7 GB~50×

Installer Size

PlatformR-ShellFinalShellSavings
Windows3.99 MB64 MB16× smaller
macOS8.13 MB102 MB12× 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

ProtocolAuthenticationDescription
SSHPassword, Public KeyFull interactive PTY terminal
SFTPPassword, Public KeyStandalone file transfer sessions
FTPPassword, AnonymousPlain FTP file transfers
FTPSPassword, AnonymousFTP over TLS
RDPPasswordRemote Desktop Protocol
VNCPasswordVirtual 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 shortcutsCtrl+\ 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
  • 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

ShortcutAction
Ctrl+BToggle Connection Manager
Ctrl+JToggle File Browser
Ctrl+MToggle Monitor Panel
Ctrl+ZToggle Zen Mode
Ctrl+\Split terminal right
Ctrl+Shift+\Split terminal down
Ctrl+1Ctrl+9Focus terminal group
Ctrl+Shift+WClose active tab
Ctrl+TabNext tab
Cmd/Ctrl+VPaste into terminal
Cmd/Ctrl+FSearch in terminal
F3 / Shift+F3Find 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

brew tap GOODBOY008/tap
brew install --cask r-shell

Update:

brew upgrade --cask r-shell

📥 Download Releases

Download from the Releases page:

PlatformFile
macOS (Apple Silicon)r-shell_x.x.x_aarch64.dmg
macOS (Intel)r-shell_x.x.x_x64.dmg
Windowsr-shell_x.x.x_x64-setup.exe
Linuxr-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

  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.

🌟 Star History

Star History Chart

💬 Community

🙏 Acknowledgments


Made with ❤️ and 🤖 AI

If you like this project, please give it a ⭐!