An open API service indexing awesome lists of open source software.

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: 14 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.

Awesome Lists containing this project

README

          

# R-Shell - SSH Client Application

[![GitHub license](https://img.shields.io/github/license/GOODBOY008/r-shell)](https://github.com/GOODBOY008/r-shell/blob/main/LICENSE)
[![Test](https://github.com/GOODBOY008/r-shell/actions/workflows/test.yml/badge.svg)](https://github.com/GOODBOY008/r-shell/actions/workflows/test.yml)
[![Release](https://github.com/GOODBOY008/r-shell/actions/workflows/release.yml/badge.svg)](https://github.com/GOODBOY008/r-shell/actions/workflows/release.yml)
[![GitHub stars](https://img.shields.io/github/stars/GOODBOY008/r-shell)](https://github.com/GOODBOY008/r-shell/stargazers)
[![GitHub issues](https://img.shields.io/github/issues/GOODBOY008/r-shell)](https://github.com/GOODBOY008/r-shell/issues)
[![GitHub forks](https://img.shields.io/github/forks/GOODBOY008/r-shell)](https://github.com/GOODBOY008/r-shell/network)
[![Tauri](https://img.shields.io/badge/Tauri-2.0-blue?logo=tauri)](https://tauri.app/)
[![React](https://img.shields.io/badge/React-19-61dafb?logo=react)](https://react.dev/)
[![Rust](https://img.shields.io/badge/Rust-Latest-orange?logo=rust)](https://www.rust-lang.org/)

A modern, feature-rich SSH client application built with React, TypeScript, and Tauri.

[Features](#features) โ€ข [Installation](#getting-started) โ€ข [Documentation](#documentation) โ€ข [Contributing](CONTRIBUTING.md) โ€ข [License](LICENSE)

---

## ๐Ÿ“ธ Screenshots


R-Shell Application Screenshot

R-Shell's modern and intuitive interface


---

## ๐ŸŽฏ Project Purpose

This project is a **learning and practice project for vibe coding** methodology. It demonstrates:

- ๐ŸŽจ **AI-Generated Frontend**: The entire frontend UI is generated from Figma designs using [Figma Make](https://www.figma.com/make/uUd7WO54vPnv03SmioKWqj/SSH-Client-Application?node-id=0-1&t=ZzB8GvFKHeoUIZpw-1)
- ๐Ÿค– **AI-Assisted Development**: The complete development process is powered by **GitHub Copilot**
- ๐Ÿš€ **Modern Workflow**: Experience the efficiency of AI-driven development with minimal manual coding

> **Note**: This is an experimental project to explore the capabilities and limitations of AI-assisted development workflows. The goal is to understand how far we can go with AI pair programming tools in building a complete desktop application.
>
> ๐Ÿ“ **View the Figma Design**: Check out the [Figma Make preview](https://www.figma.com/make/uUd7WO54vPnv03SmioKWqj/SSH-Client-Application?node-id=0-1&t=ZzB8GvFKHeoUIZpw-1) to see how the frontend was generated.

## Overview

R-Shell is a desktop SSH client that provides a beautiful and intuitive interface for managing SSH connections, file transfers, and remote system monitoring. Built with modern web technologies and packaged as a native desktop application using Tauri.

## Features

### ๐Ÿ”Œ Connection Management
- **Multi-Connection Support**: Manage multiple SSH connections simultaneously with an intuitive tabbed interface
- **Connection Profiles**: Save and organize your SSH connection profiles for quick access
- **Connection Persistence**: Automatically save and restore your connections across application restarts
- **Secure Authentication**: Support for password and SSH key-based authentication

### ๐Ÿ’ป Terminal Experience
- **Full-Featured PTY Terminal**: Powered by xterm.js with complete terminal emulation
- **Customizable Themes**: Choose from multiple terminal color schemes and appearance settings
- **Keyboard Shortcuts**: Extensive keyboard shortcuts for improved productivity
- **Terminal Addons**: Advanced features including search, web links, and fit addon support

### ๐Ÿ“ File Management
- **Integrated SFTP Browser**: Browse, upload, and download files directly from the interface
- **Drag-and-Drop Support**: Easily transfer files between local and remote systems
- **File Operations**: Complete file management with rename, delete, move, and permission editing
- **Dual-Panel View**: Side-by-side local and remote file browsing

### ๐Ÿ“Š System Monitoring
- **Real-Time Metrics**: Monitor CPU, memory, GPU, disk, and network usage in real-time
- **GPU Monitoring**: Track NVIDIA and AMD GPU utilization, memory, temperature, and power consumption
- **Resource Visualization**: Beautiful charts and graphs using Recharts
- **Network Monitor**: Track network traffic and connection statistics
- **Performance Logs**: View detailed system logs and application events

### ๐ŸŽจ User Interface
- **Modern Design**: Clean and intuitive interface built with Radix UI primitives
- **Responsive Layout**: Resizable panels and flexible workspace arrangement
- **Dark/Light Themes**: Support for multiple UI themes
- **Accessibility**: Built with accessibility in mind using WAI-ARIA compliant components

### โšก Performance
- **Native Speed**: Powered by Tauri for true native performance
- **Low Memory Footprint**: Efficient resource usage compared to Electron-based alternatives
- **Fast Startup**: Quick application launch and connection establishment
- **Cross-Platform**: Works seamlessly on Windows, macOS, and Linux

## Tech Stack

### Frontend
- **React 19**: Modern React with latest features
- **TypeScript**: Type-safe development
- **Tailwind CSS**: Utility-first CSS framework
- **Radix UI**: Accessible component primitives
- **Lucide Icons**: Beautiful icon set
- **React Hook Form**: Form state management
- **Recharts**: Data visualization

### Backend/Desktop
- **Tauri 2**: Build native desktop apps with web technologies
- **Rust**: Fast and memory-efficient backend

## Project Structure

```
r-shell/
โ”œโ”€โ”€ src/
โ”‚ โ”œโ”€โ”€ components/ # React components
โ”‚ โ”‚ โ”œโ”€โ”€ ui/ # Reusable UI components (Radix-based)
โ”‚ โ”‚ โ”œโ”€โ”€ pty-terminal.tsx # PTY terminal with xterm.js
โ”‚ โ”‚ โ”œโ”€โ”€ integrated-file-browser.tsx # SFTP file browser
โ”‚ โ”‚ โ”œโ”€โ”€ connection-manager.tsx # Connection management
โ”‚ โ”‚ โ”œโ”€โ”€ system-monitor.tsx # Real-time metrics
โ”‚ โ”‚ โ”œโ”€โ”€ connection-dialog.tsx # SSH connection form
โ”‚ โ”‚ โ”œโ”€โ”€ connection-tabs.tsx # Tab navigation
โ”‚ โ”‚ โ”œโ”€โ”€ menu-bar.tsx # Application menu
โ”‚ โ”‚ โ”œโ”€โ”€ settings-modal.tsx # Settings dialog
โ”‚ โ”‚ โ””โ”€โ”€ ... # Other components
โ”‚ โ”œโ”€โ”€ lib/ # Utility functions
โ”‚ โ”‚ โ”œโ”€โ”€ connection-storage.ts # Persistent connection profiles
โ”‚ โ”‚ โ”œโ”€โ”€ terminal-config.ts # Terminal appearance settings
โ”‚ โ”‚ โ””โ”€โ”€ utils.ts # Helper utilities
โ”‚ โ”œโ”€โ”€ styles/ # Global styles
โ”‚ โ”œโ”€โ”€ App.tsx # Main application shell
โ”‚ โ”œโ”€โ”€ main.tsx # React entry point
โ”‚ โ””โ”€โ”€ index.css # Global CSS with Tailwind directives
โ”œโ”€โ”€ src-tauri/ # Tauri/Rust backend
โ”‚ โ”œโ”€โ”€ src/
โ”‚ โ”‚ โ”œโ”€โ”€ ssh/ # SSH/SFTP implementation
โ”‚ โ”‚ โ”œโ”€โ”€ commands.rs # Tauri command handlers
โ”‚ โ”‚ โ”œโ”€โ”€ websocket_server.rs # WebSocket terminal I/O
โ”‚ โ”‚ โ”œโ”€โ”€ connection_manager.rs # Connection lifecycle
โ”‚ โ”‚ โ”œโ”€โ”€ lib.rs # Library setup
โ”‚ โ”‚ โ””โ”€โ”€ main.rs # Application entry
โ”‚ โ”œโ”€โ”€ Cargo.toml # Rust dependencies
โ”‚ โ””โ”€โ”€ tauri.conf.json # Tauri configuration
โ”œโ”€โ”€ docs/ # Documentation
โ””โ”€โ”€ index.html # HTML entry point
```

## Installation

### ๐Ÿบ Homebrew (macOS - Recommended)

The easiest way to install r-shell on macOS:

```bash
# Add the tap
brew tap GOODBOY008/tap

# Install r-shell
brew install --cask r-shell
```

**Update to the latest version:**

```bash
brew upgrade --cask r-shell
```

**Uninstall:**

```bash
# Remove the app
brew uninstall --cask r-shell

# Remove all app data
brew uninstall --zap --cask r-shell
```

### ๐Ÿ“ฆ Download Releases

Download pre-built binaries from the [Releases](https://github.com/GOODBOY008/r-shell/releases) page:

- **macOS**:
- Apple Silicon: `r-shell_x.x.x_aarch64.dmg`
- 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` or `.deb`

## Getting Started (Development)

### Prerequisites

- Node.js (v18 or higher)
- pnpm (recommended) or npm
- Rust and Cargo (for Tauri)

### Build from Source

1. Clone the repository:
```bash
git clone https://github.com/GOODBOY008/r-shell.git
cd r-shell
```

2. Install dependencies:
```bash
pnpm install
```

3. Run in development mode:
```bash
# Web only
pnpm run dev

# Desktop with Tauri
pnpm tauri dev
```

### Building for Production

```bash
# Build web assets
pnpm run build

# Build desktop application
pnpm tauri build
```

## Development

### Available Scripts

- `pnpm run dev` - Start Vite development server
- `pnpm run build` - Build for production
- `pnpm run preview` - Preview production build
- `pnpm tauri dev` - Run Tauri app in development mode
- `pnpm tauri build` - Build Tauri app for production

### Key Components

#### App.tsx
Main application component that manages:
- Connection state and tabs
- Dialog modals (connection, SFTP, settings)
- Layout with resizable panels
- Connection selection and navigation

#### Terminal Component
Provides terminal emulation with:
- Command input/output
- Connection management
- Terminal themes
- Copy/paste support

#### Connection Manager
Tree-view interface for:
- Organizing connections into folders
- Quick connection access
- Edit, duplicate, and delete connections
- Connection status indicators (green dot for active)

#### File Browser
Integrated file management:
- Remote file browsing
- File upload/download
- Drag-and-drop support
- File operations (rename, delete, etc.)

#### System Monitor
Real-time monitoring:
- CPU usage
- Memory usage
- Network statistics
- Disk usage

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## Additional Resources

- [Tauri Documentation](https://tauri.app/)
- [Tauri API Reference](https://tauri.app/v2/api/js/)
- [React Documentation](https://react.dev/)
- [Vite Documentation](https://vitejs.dev/)
- [Rust Book](https://doc.rust-lang.org/book/)

## ๐Ÿค Contributing

We welcome contributions from the community! This project is an experiment in AI-assisted development, and we're excited to see how the community can enhance it.

**Quick Links:**
- [Contributing Guidelines](CONTRIBUTING.md) - How to contribute
- [Code of Conduct](CODE_OF_CONDUCT.md) - Community guidelines
- [Version Bump Guide](docs/VERSION_BUMP.md) - How to bump versions
- [Layout Guide](LAYOUT_GUIDE.md) - Understanding the layout system
- [Quick Start](QUICKSTART.md) - Development setup

### How to Contribute

1. **Fork the repository**
2. **Create a feature branch** (`git checkout -b feature/amazing-feature`)
3. **Commit your changes** (`git commit -m 'feat: add amazing feature'`)
4. **Push to the branch** (`git push origin feature/amazing-feature`)
5. **Open a Pull Request**

Please read our [Contributing Guidelines](CONTRIBUTING.md) and [Code of Conduct](CODE_OF_CONDUCT.md) before contributing.

### Areas We Need Help

- ๐Ÿ› Bug fixes and issue reports
- ๐Ÿ“ Documentation improvements
- โœจ Feature enhancements
- ๐Ÿงช Test coverage
- ๐ŸŒ Internationalization (i18n)
- ๐ŸŽจ UI/UX improvements

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐ŸŒŸ Star History

If you find this project useful, please consider giving it a star! โญ

[![Star History Chart](https://api.star-history.com/svg?repos=GOODBOY008/r-shell&type=Date)](https://star-history.com/#GOODBOY008/r-shell&Date)

## ๐Ÿ’ฌ Community & Support

- **Issues**: [GitHub Issues](https://github.com/GOODBOY008/r-shell/issues)
- **Discussions**: [GitHub Discussions](https://github.com/GOODBOY008/r-shell/discussions)
- **Pull Requests**: [GitHub PRs](https://github.com/GOODBOY008/r-shell/pulls)

## ๐Ÿ™ Acknowledgments

- Built with components from [shadcn/ui](https://ui.shadcn.com/)
- UI design generated from [Figma Make](https://www.figma.com/make/)
- Icons from [Lucide](https://lucide.dev/)
- Powered by [GitHub Copilot](https://github.com/features/copilot)

---

**Made with โค๏ธ and ๐Ÿค– AI**

If you like this project, please give it a โญ!