https://github.com/involvex/ssh-app-flutter
A powerful and versatile Flutter-based SSH Client and Server application for Mobile and Desktop.
https://github.com/involvex/ssh-app-flutter
Last synced: 13 days ago
JSON representation
A powerful and versatile Flutter-based SSH Client and Server application for Mobile and Desktop.
- Host: GitHub
- URL: https://github.com/involvex/ssh-app-flutter
- Owner: involvex
- Created: 2026-04-07T03:02:33.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-19T19:50:41.000Z (25 days ago)
- Last Synced: 2026-05-19T23:23:11.453Z (25 days ago)
- Language: Dart
- Size: 555 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- Agents: AGENTS.md
Awesome Lists containing this project
README
# SSH App
A powerful and versatile Flutter-based SSH Client and Server application for Mobile and Desktop.


## Features
### 🚀 SSH Client
- Connect to any remote SSH server using passwords or private keys.
- **Full Terminal Emulator**: Built-in `xterm` terminal with full color and interactive support.
- **Session Persistence**: Keep your connections alive in the background.
- **Control Panel**: Quick access buttons for Ctrl, Alt, Arrow keys, and more.
### 🏠 SSH Server
- Host a local SSH server directly on your device.
- Provide secure remote access to your device's shell (CMD on Windows, SH/Bash on Unix-like systems).
- Configurable port and authentication.
### 🔑 Key Management
- Generate and manage SSH key pairs (RSA, ED25519, etc.).
- Securely store and use private keys for passwordless authentication.
### 📁 Profile Manager
- Save frequently used connection settings as profiles.
- Quick connect with a single tap.
- Organize your remote servers efficiently.
### ⌨️ Keyboard & Shortcuts
- **Custom Shortcut Bar**: Add your own frequently used commands or keys to a scrollable bar.
- **Global Hotkeys**: Use `Ctrl+N` (New Connection), `Ctrl+P` (Profiles), `Ctrl+K` (Keys), and `Ctrl+D` (Discovery).
- **Snippet Manager**: Store and inject command fragments into your active terminal sessions.
### 🔍 Network Discovery
- Scan your local network to find other devices and services.
- Quickly identify available SSH targets.
### 🎨 Highly Customizable
- **Theme Engine**: Support for Light, Dark, and System modes.
- **Accent Colors**: Choose your favorite color theme.
- **Terminal Styling**: Configurable font sizes and styles.
## Main Technologies
- **Flutter**: Cross-platform UI framework.
- **dartssh2**: Pure Dart implementation of the SSH2 protocol.
- **xterm**: Robust terminal emulator widget.
- **flutter_pty**: Pseudo-terminal support for local shell processes.
- **Provider**: Clean and reactive state management.
- **Network Info Plus**: For IP and network state detection.
## Getting Started
### Prerequisites
- [Flutter SDK](https://docs.flutter.dev/get-started/install) (>= 3.2.0)
- [Dart SDK](https://dart.dev/get-dart)
### Installation
1. Clone the repository:
```bash
git clone https://github.com/your-username/ssh_app.git
cd ssh_app
```
2. Install dependencies:
```bash
flutter pub get
```
3. Run the application:
```bash
flutter run
```
### Building for Production
- **Android**: `flutter build apk`
- **iOS**: `flutter build ios`
- **Windows**: `flutter build windows`
- **macOS**: `flutter build macos`
- **Linux**: `flutter build linux`
## Project Structure
- `lib/models/`: Data structures for Profiles, Keys, Shortcuts, and Snippets.
- `lib/providers/`: State management for SSH, Settings, and Snippets.
- `lib/services/`: Core logic for configuration, key generation, and network discovery.
- `lib/screens/`: Top-level UI pages and tabs.
- `lib/widgets/`: Reusable UI components and modal dialogs.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.