Home
Softono
r-shell

r-shell

Open source MIT TypeScript
82
Stars
14
Forks
15
Issues
2
Watchers
1 week
Last Commit

About r-shell

๐Ÿš€ Lightweight open-source SSH/SFTP/FTP client built with Rust & Tauri 2. Only ~34 MB memory. Installer under 10 MB . Split terminals, SFTP, GPU monitoring. macOS/Windows/Linux.

Platforms

Web Self-hosted Linux Windows macOS

Languages

TypeScript

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:

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

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

  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 โญ!