Skip to content

πŸš€ 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.

License

Notifications You must be signed in to change notification settings

GOODBOY008/r-shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

66 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

R-Shell - SSH Client Application

GitHub license Test Release GitHub stars GitHub issues GitHub forks Tauri React Rust

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

Features β€’ Installation β€’ Documentation β€’ Contributing β€’ 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
  • πŸ€– 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 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-Session Support: Manage multiple SSH connections simultaneously with an intuitive tabbed interface
  • Connection Profiles: Save and organize your SSH connection profiles for quick access
  • Session Persistence: Automatically save and restore your sessions 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, disk, and network usage in real-time
  • 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
β”‚   β”‚   β”œβ”€β”€ session-manager.tsx     # Connection management
β”‚   β”‚   β”œβ”€β”€ system-monitor.tsx      # Real-time metrics
β”‚   β”‚   β”œβ”€β”€ connection-dialog.tsx   # SSH connection form
β”‚   β”‚   β”œβ”€β”€ session-tabs.tsx        # Tab navigation
β”‚   β”‚   β”œβ”€β”€ menu-bar.tsx            # Application menu
β”‚   β”‚   β”œβ”€β”€ settings-modal.tsx      # Settings dialog
β”‚   β”‚   └── ...                     # Other components
β”‚   β”œβ”€β”€ lib/               # Utility functions
β”‚   β”‚   β”œβ”€β”€ session-storage.ts      # Persistent session 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
β”‚   β”‚   β”œβ”€β”€ session_manager.rs   # Session 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

Getting Started

Prerequisites

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

Installation

  1. Clone the repository:
git clone <repository-url>
cd r-shell
  1. Install dependencies:
pnpm install
  1. Run in development mode:
# Web only
pnpm run dev

# Desktop with Tauri
pnpm tauri dev

Building for Production

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

  • Session state and tabs
  • Dialog modals (connection, SFTP, settings)
  • Layout with resizable panels
  • Session selection and navigation

Terminal Component

Provides terminal emulation with:

  • Command input/output
  • Session management
  • Terminal themes
  • Copy/paste support

Session Manager

Tree-view interface for:

  • Organizing connections
  • Quick connection access
  • Folder-based grouping
  • Connection details

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

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

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 and Code of Conduct 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 file for details.

🌟 Star History

If you find this project useful, please consider giving it a star! ⭐

Star History Chart

πŸ’¬ Community & Support

πŸ™ Acknowledgments


Made with ❀️ and πŸ€– AI

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

About

πŸš€ 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.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published