Content
<div align="center">
# Tool List
**Lightweight, High-Speed, Cross-Platform SSH Client**
[](https://github.com/wmwlwmwl/Lumin-SSH/releases)
[](https://github.com/wmwlwmwl/Lumin-SSH/releases)
[](LICENSE)
[English](./README_EN.md) ·
</div>
---
## Overview
Lumin is a desktop SSH client designed for developers and system administrators. Built with Go native concurrency, WebSocket, and xterm.js, it provides a millisecond-level responsive terminal experience. With features like built-in system resource monitoring, remote file manager, command history, shortcut commands, cloud encryption synchronization, and AI agent integration, no agent needs to be installed on the server.
<div align="center">
<img src="assets/pc_empty_main.png" alt="Lumin Main Panel" width="800" />
<br /><br />
<img src="assets/pc_connected_session.png" alt="Lumin Terminal and Resource Monitoring" width="800" />
</div>
---
## Core Features
### Terminal and Connection
- **Native-level fully asynchronous PTY engine** — Based on Go native concurrency to handle I/O, WebSocket + xterm.js for extremely low latency channel
- **Predictive Local Echo** — Provides smooth input experience even in high-latency networks
- **Multi-terminal tabs** — Multiple independent terminal tabs can be opened within one SSH session, supporting close
- **Session Management** — Supports managing multiple SSH sessions, and disconnect/close/reconnect from tab right-click menu
- **Sensitive Information Hiding** — One-click hide/show passwords, private keys, and other sensitive information
### Quick Connection and Dashboard
- **Lightning Direct Connection** — No need for pre-configuration, quickly connect by inputting host, port, username, and password/private key
- **Card/Table Dual Views** — Server list supports grid card and table views
- **Search and Filter** — Real-time search server name, host, tags, etc.
- **Intelligent Latency Detection** — Supports **SSH Banner RTT** (can penetrate TUN proxy, recommended with Clash/V2Ray) and **TCP Dial** protocols
- **Configurable Ping Auto-Refresh** — Latency detection interval can be customized
### Server Management
- **Auto Save** — Automatically save server configuration after lightning direct connection
- **Clone Server** — Right-click server to clone, copy all configurations (including password/private key)
- **Duplicate Detection** — Automatically detect host+port+username duplication and prevent it when adding/editing/cloning/lightning connecting
- **Group Management** — Supports server grouping, moving groups, and filtering by group
- **Operating System Icon Identification** — Automatically identify 30+ operating systems and display corresponding icons
- **Credential Management** — Centralized management of reusable username/password/private key authentication credentials, automatically taking effect on all referenced servers after modification
### System Resource Probe
- **Zero Agent Deployment** — Automatically mount monitoring panel after direct connection, no need to install any software on the server
- **Real-time Metrics** — Real-time CPU per core curve, memory donut chart, network throughput line chart, disk partition mount table
- **GPU and RAID Support** — Additional support for graphics card and disk array information query
- **Process Management** — Real-time view and terminate processes, support search, sort, signal sending
- **Configurable Refresh Interval** — Probe data refresh frequency can be adjusted in settings
### Remote File Manager
- **Complete File Operations** — Browse, upload, download, delete, rename, new directory/file
- **Built-in Code Editor** — Directly edit remote files, support syntax highlighting (max 5MB)
- **Compression/Decompression** — Support tar.gz / zip format
- **File Permission Modification (chmod)** — Visual permission editing and octal setting
- **Drag-and-Drop Upload** — Support dragging files from local to panel for upload
- **Right-click Copy Path** — Files and folders support right-click copying complete remote path
- **Three Layout Modes** — Support tab, right-side split screen, and bottom split screen switching
### Command History and Shortcut Commands
- **Automatic Capture** — Manually input and executed commands in the terminal are automatically saved to the server database
- **Search and Replay** — Search history commands by server or globally, one-click resend
- **Shortcut Command Library** — Supports grouping management of command fragments, one-click send to current or all sessions
- **Dynamic Parameters** — Supports inserting dynamic parameters `p#` in commands, pop-up input when executing
### Credential Management
- **Centralized Authentication Management** — Create reusable password/private key credential groups, associated with multiple servers
- **Automatic Synchronization Update** — Modify credentials and automatically take effect on all referenced servers
- **Private Key Passphrase** — Supports configuring private key passphrase (optional empty)
### AI Agent Integration (MCP)
- **Built-in MCP Service** — Automatically start Streamable HTTP MCP server when the application starts, providing SSH session access capability for AI tools
- **AI Agent Panel** — Display AI tool configuration panel on the session page, showing MCP service address, available tool list, and connection guide
- **Visibility Control** — Can enable/disable AI agent panel in settings (default disabled)
- **Terminal Output Control** — Can limit the maximum number of lines and characters that MCP reads terminal output
- **Zero Configuration Access** — AI editors (like Windsurf, Cursor, VS Code + Copilot, etc.) can access through MCP client configuration
### All-time Cloud Roaming
- **Four Cloud Storage Backends** — Support **WebDAV**, **Cloudflare R2 (S3 compatible)**, **FTP**, **SFTP**
- **AES-256-GCM Encryption** — Automatically encrypt snapshots with each configuration change, and only store encrypted data in the cloud
- **Multi-terminal One-click Recovery** — Configure synchronization backend on a new device and recover all server configurations with one click
- **Automatic Synchronization Mode** — Automatically execute merge synchronization according to preferences at startup
- **Retention Count** — Configurable backup retention count to avoid infinite accumulation
### Local High-Intensity Encryption
- Automatically generate 32-byte random AES key on first run
- All passwords, private keys, and token credentials are encrypted with AES-GCM before being stored
### Automatic Update
- Automatically detect GitHub Release on startup (delayed by 2.5s, does not block startup)
- Support manual check for updates in settings
- Real-time download progress + SHA256 file verification
- Verify and replace executable files and automatically restart after verification passes
### System Tray
- Close window can choose **Minimize to Tray**, **Direct Exit**, or **Ask Each Time**
- Single instance protection, repeat startup will automatically wake up the existing window
- Tray icon left-click shows window, right-click pops up menu (show main window / complete exit)
### Operation Confirmation and Security
- **Operation Confirmation Popup** — Close connection, close all, close window support secondary confirmation
- **"Don't Ask Again" Option** — Can check to skip confirmation, and restore in settings
- **Host Key Verification** — First connection host key fingerprint confirmation + key change detection to prevent man-in-the-middle attack
- **Connection Progress Animation** — Visual card during connection process
### Visual and Theme
- **Dark/Light Dual Themes** — Support automatic switching following system
- **Custom Accent Color** — 10 preset color choices
- **Four Terminal Color Schemes** — Lumin Default, Tokyo Night, Catppuccin, Dracula
- **Custom Terminal Wallpaper** — Support uploading images as terminal background, adjustable transparency
- **Aero Glass and Micro-Interaction** — Pop-up aero glass blur, menu shrink entry, connection ripple, etc.
- **Toast Notification** — Operation results are prompted with non-intrusive aero glass toast
### Layout and Split Screen
- **Left-side Split Screen/Bottom Split Screen** — Two split screen modes, freely drag and drop to adjust size
- **Probe Panel Width Adjustable** — Monitoring panel supports dragging to adjust width
- **AI Panel Width Adjustable** — AI agent panel supports dragging to adjust width
- **Layout Preference Persistence** — All layout settings are saved to local storage in real-time
### Shortcut Keys and Personalization
- **Custom Shortcut Keys** — Copy, paste, clear screen, new tab, SIGINT, EOF, SIGTSTP, clear input line all support free binding
- **Terminal Font Size** — Slider real-time adjustment
- **Terminal Input Echo** — Support closing echo to protect sensitive content input
- **Internationalization** — Simplified Chinese / English immediate switching
### Window Memory
- **Remember Window Size** — Automatically restore the window size when closed last time on startup
- **Adaptive Screen** — Automatically adjust the initial window size according to screen resolution (leaving 10% margin)
---
## Quick Start
### First Use
1. Download the latest version of `Lumin.exe` from [Releases](https://github.com/wmwlwmwl/Lumin-SSH/releases)
2. Double-click to run — configuration directory automatically created in `%APPDATA%\Lumin\config\`
3. Click **Lightning Direct Connection** on the dashboard, input host, port, username, and password/private key to quickly connect, and automatically save to server list after connection
4. Or click **Add Server** to open the complete form, fill in more configuration items and save
### Daily Operation
- **Connect Server** — Double-click server card, or right-click → Connect
- **Multi-tab Terminal** — Click `+` on the tab bar in the session to create a new independent terminal tab
- **System Probe** — Click the **Probe** panel on the sidebar to view real-time CPU, memory, disk, and network metrics
- **File Management** — Click the **File** panel on the sidebar to browse, upload, download, and edit remote files
- **Shortcut Commands** — Save commonly used commands in settings → shortcut commands, one-click send
- **Clone Server** — Right-click any server → Clone, copy all configurations (including password/private key)
- **Credential Management** — Create reusable credentials in dashboard → Credential Management, cross-server association reference
---
## Configuration and Data
### Data Storage Path
Automatically create `Lumin/config/` folder in user configuration directory on first run:
| Platform | Path |
|------|------|
| Windows | `%APPDATA%\Lumin\config\` |
| macOS | `~/Library/Application Support/Lumin/config/` |
| Linux | `~/.config/Lumin/config/` |
### Main Files
| File | Purpose |
|------|------|
| `lumin.key` | 32-byte AES encryption key (automatically generated on first run) |
| `connections.json` | Server connection configuration (AES-GCM encrypted storage password/private key) |
| `credentials.json` | Credential management data |
| `webdav.json` | WebDAV / R2 / FTP / SFTP synchronization configuration |
| `quick_commands.json` | Shortcut command library data |
| `param_history.json` | Dynamic parameter history record |
| `history/` | Command history for each server |
| `sync_mode.json` | Automatic synchronization mode configuration |
| `last_sync_time` | Last synchronization timestamp |
| `snapshot_time` | Snapshot timestamp |
---
## Automatic Update Mechanism
Lumin uses GitHub Releases as the update distribution channel, and the process is as follows:
1. **Version Detection** — Call GitHub API to get the latest Release information on startup and in settings
2. **Semantic Comparison** — Automatically compare local version with the latest version
3. **Resource Matching** — Automatically match the corresponding `.exe` according to the current running version (portable/installation)
4. **Secure Download** — Mandatory HTTPS, real-time push download progress
5. **Integrity Verification** — SHA256 verification to prevent file tampering
6. **Hot Replacement and Restart** — Replace the current executable file and automatically restart after verification passes
> Version number unified management: `wails.json` (build), `frontend/src/config.js` (frontend), and `frontend/package.json` (npm) keep consistent.
---
## Configuration Interface
Lumin provides a rich settings panel, classified and managed by tabs:
| Tab | Function |
|--------|------|
| **General** | Interface language, close connection confirmation, close all confirmation, close window behavior |
| **Network** | Latency detection protocol selection (SSH Banner RTT / TCP Dial), probe and latency refresh interval |
| **Appearance** | Terminal font size, terminal input echo, terminal color theme, interface theme, accent color, terminal wallpaper |
| **AI Integration** | Display/hide AI agent panel, MCP terminal output line and character limit |
| **Shortcut Keys** | Free binding of all terminal operation shortcut keys |
| **Synchronization and Cloud** | WebDAV / R2 / FTP / SFTP configuration and automatic synchronization strategy |
| **About** | Version information, check for updates, community links |
---
## Build Guide
### Environment Requirements
- **Go 1.20+**
- **Node.js 18+**
- **Wails CLI**
### Installation and Build
```bash
# Install Wails CLI
go install github.com/wailsapp/wails/v2/cmd/wails@latest
# Clone repository
git clone https://github.com/wmwlwmwl/Lumin-SSH.git
cd Lumin-SSH
# Production build (portable)
wails build
# Build NSIS installation package (need to install NSIS)
wails build -nsis
```
### Build Products
- Portable: `build/bin/Lumin.exe`
- Installation package: `build/bin/Lumin-amd64-installer.exe`
---
## Precautions
### Security Related
- **AES Key Backup** — `lumin.key` is the main key, and once lost, all encrypted data (password, private key) will not be recoverable, please backup
- **WebSocket Authentication** — Terminal WebSocket connection uses random 32-byte token + strict Origin header verification (`wails://wails`), preventing unauthorized local access
- **Host Key Verification** — Please carefully verify the host key fingerprint on the first connection, Lumin will automatically detect key changes to prevent man-in-the-middle attacks
### Operation Related
- **Single Instance Protection** — Lumin only allows one instance to run, and repeated startup will automatically wake up the existing window
- **Close Window Behavior** — Can configure the behavior when closing the window in settings → General: ask each time, direct exit, minimize to tray
- **Synchronization Conflict Handling** — Automatic merge strategy will handle conflicts during multi-device synchronization, and can view synchronization mode in settings → Synchronization and Cloud
### MCP / AI Integration
- **Fixed Local Port** — Built-in MCP server bound to `127.0.0.1:5779`, please ensure this port is not occupied
- **Local Access Only** — MCP service only listens to localhost, AI editors need to run on the same machine
---
## Frequently Asked Questions (FAQ)
### How are passwords/private keys encrypted and stored?
Automatically generate a 32-byte random AES key on first run, saved to `lumin.key`. All passwords, private keys, and credentials are encrypted with AES-256-GCM before being stored.
### How to synchronize configurations to multiple computers?
Configure any backend of WebDAV / R2 / FTP / SFTP in settings → Synchronization and Cloud → , Lumin will automatically encrypt snapshots and synchronize with each configuration change. Configure the same backend on a new device to recover.
### Will cloning a server copy the password?
Yes. Cloning gets the decrypted real password/private key data through the backend API, and the cloned server configuration (including password, private key, and credential reference) is completely consistent with the original server, without needing to input again.
### What is the difference between credential management and directly using username and password?
Credential management extracts authentication configuration (username/password/private key) as an independent entity, which can be associated with multiple servers. Modifying credentials will automatically take effect on all servers that reference the credentials, without needing to edit each server. Suitable for scenarios where multiple servers use the same authentication information.
### How to use the AI agent panel?
Lumin has a built-in MCP (Model Context Protocol) server, which automatically listens to `127.0.0.1:5779` on startup. AI editors (Windsurf, Cursor, Copilot, etc.) can connect through MCP client configuration, and AI can read terminal output and execute commands. Can control panel display and output range in settings → AI Integration.
### Which operating systems are supported?
Supports Windows, macOS, and Linux platforms, and each platform's native build has been tested.
### How to set the window close behavior?
Settings → General → Close window, supports three choices:
- **Ask Each Time** — Pop-up confirmation window to exit or minimize to tray when closing the window
- **Direct Exit** — Click close to directly exit the application
- **Minimize to Tray** — Click close to minimize to the system tray
---
## Sponsor Support
If you find Lumin helpful, welcome to scan the code for sponsorship support, and your encouragement is the motivation for continuous updates.
<div align="center">
<table>
<tr>
<td align="center">
<img src="assets/wx.png" alt="WeChat Sponsorship" width="200" />
<br/>
<strong>WeChat</strong>
</td>
<td align="center">
<img src="assets/zfb.png" alt="Alipay Sponsorship" width="200" />
<br/>
<strong>Alipay</strong>
</td>
<td align="center">
<img src="assets/qq.png" alt="QQ Sponsorship" width="200" />
<br/>
<strong>QQ</strong>
</td>
</tr>
</table>
</div>
---
## Contribution Guide
Welcome to any form of contribution! You can participate by:
- **Reporting Bugs** — Submit through [GitHub Issues](https://github.com/wmwlwmwl/Lumin-SSH/issues/new)
- **Code Contribution** — Fork repository, submit PR
- Follow existing code style and naming conventions
- Non-blocking operations use asynchronous mode
---
## License
This project follows the [MIT License](LICENSE) protocol.
MCP Config
Below is the configuration for this MCP Server. You can copy it directly to Cursor or other MCP clients.
mcp.json
Connection Info
You Might Also Like
No recommendations available