Skip to content

Repository files navigation

Lumin

轻量、高速、全平台 SSH 客户端

Release Platform License

English · 简体中文


概述

Android 客户端(独立仓库、分开发版):Lumin-SSH-Android · 发行版

Lumin 是一款面向开发者和运维人员的桌面 SSH 客户端。基于 Go 原生并发 + 本机 WebSocket + xterm.js,在 Wails 桌面壳中提供低延迟终端体验。内置系统资源探针、远程文件管理器(内置/外置编辑器)、命令历史与智能补全、连接级代理、可选加密云同步、AI 对话与 MCP 集成等能力,无需在服务器安装 Agent

Lumin 主面板

Lumin 终端与资源监控

核心功能

终端与连接

  • 原生级全异步 PTY — Go 并发处理 I/O;终端流量走本机 loopback WebSocket(随机端口 + 会话级 token + Origin 校验),不经 Wails IPC 热路径
  • 预测本地回显 — 高延迟网络下输入仍保持跟手
  • 多终端标签 — 同一 SSH 连接内可开多个独立终端标签
  • 多会话管理 — 同时维护多台服务器会话;标签右键:断开 / 关闭 / 重连
  • 本地与串口终端 — Windows 支持 PowerShell、CMD 与已安装的 WSL 发行版,macOS/Linux 支持本机 Shell;还可直连串口设备。WSL/Unix 本地会话支持文件管理器与资源探针,Windows 原生 Shell 支持本地文件管理器但不支持资源探针,串口会话仅提供终端
  • 终端编码 — 每个服务器可单独选择 UTF-8、GB18030/GBK/Big5、日/韩文编码、Windows/ISO-8859、IBM/OEM 等编码,输入输出双向转换
  • SSH 通道占用 — 会话标签显示终端、共享文件与上传通道合计,接近服务器上限时预警
  • 可折叠命令块 — 终端左侧可显示命令块边框,点击收起输出,便于浏览长日志
  • 终端链接 — URL 可点击,用系统浏览器打开
  • 终端时间戳 — 可选行首时间戳(xterm marker,随 scrollback 同步)
  • 日志关键字高亮 — 自定义关键字配色规则(ANSI 16 色或任意色值),长日志一眼定位 ERROR/告警
  • Alt 历史指令 — 按 Alt 呼出历史命令快速切换(可关闭);命令输入区快捷键提示可用 F1 开关
  • 敏感信息隐藏 — 一键隐藏/显示密码、密钥等
  • 会话级 shell hook(bash) — 连接 bash 时注入会话级 PROMPT_COMMAND,采集命令历史与 CWD(不写 .bashrc);用于历史面板 / AI 与补全;另支持 OSC 733 序列兼容 zsh/fish 等非 bash shell 的目录跟随
  • 端口转发 — SSH 本地/远程端口转发,增删改查,按会话持久化,断连自动回收

仪表盘

  • 内联服务器编辑 — 左侧常驻添加/编辑表单,支持「保存」或「保存并连接」
  • 卡片 / 表格双视图 — 网格卡片与表格布局切换
  • 搜索过滤 — 按名称、主机、标签等实时搜索
  • 智能延迟检测SSH Banner RTT(可穿透部分 TUN/代理场景)与 TCP Dial;可配置间隔或关闭;Banner 模式有更保守的刷新下限以降低安全设备误报
  • 标签溢出下拉 — 标签过多时收起为可搜索下拉

服务器管理

  • 保存并连接 — 添加后可立即建连
  • 克隆服务器 — 右键克隆,拷贝配置(含密码/密钥/凭据引用/代理)
  • 导入 / 导出 — 导出全部或勾选节点(含引用凭据与代理节点)为 明文 JSON密文 .lumin2;密文可复用恢复密码或自定义密码;导入自动识别 JSON / .lumin2;提供导入模板
  • 重复检测 — host + port + username 重复时拦截
  • 分组管理 — 分组、移动、按组过滤
  • 操作系统图标 — 自动识别 Ubuntu、Debian、CentOS、RHEL、Rocky、Alma、Fedora、Arch、NixOS、Alpine、Kali、Gentoo、openSUSE、openEuler、OpenCloudOS、Anolis、TencentOS、Alibaba、AOSC、Oracle、FreeBSD、Windows、macOS 等;图标资源位于 frontend/public/
  • 凭据管理 — 可复用用户名/密码/私钥,修改后引用方自动生效
  • 连接级代理 — 直连、引用代理节点,或自定义 SOCKS5 / HTTP
  • 初始路径 — 终端与文件管理器可分别设置初始目录

系统资源探针

  • 零 Agent — 连上后按需部署监控脚本(如 ~/.lumin/probe.sh),无需常驻服务
  • 实时指标 — 每核 CPU、内存、网络吞吐、磁盘分区等
  • GPU / RAID — 额外信息查询(环境支持时)
  • 进程管理 — 查看、搜索、排序、发信号;可开启终止确认;低开销 top-N 采样(兼容 OpenWrt 等精简环境,排除采样脚本自身开销)
  • 网络明细 — 活动连接与流量相关视图
  • 刷新间隔与面板位置 — 可配置;探针可放左侧或右侧

远程文件管理器

  • 完整文件操作 — 浏览、上传、下载、删除、重命名、新建、复制/移动
  • 剪贴板 — 右键复制 / 剪切 / 粘贴(会话内远程路径)
  • 内置编辑器 — 语法高亮编辑远端文件(体积上限约 5MB)
  • 外置编辑器 — 系统默认或指定本地编辑器;本地保存后自动回传(fsnotify + 防抖,约 5MB 上限);记忆编辑器路径
  • 压缩 / 解压 — tar.gz 等;支持双击解压压缩包(可在设置中开关);解压时校验符号链接目标,防路径逃逸
  • 压缩传输 — 多文件本机打包 tar.gz,上传后远端解压
  • 分块上传 — 可配置块大小、并发文件数、每文件并发块、全局在途上限
  • 传输队列 — 上传/下载队列面板;传输通道并发与复用经过优化
  • 大目录性能 — 文件列表虚拟化渲染,避免大目录一次创建全部行节点
  • 文件定位器 — 在当前目录按名称定位,支持上一个/下一个命中与键盘导航
  • 类型识别与刷新 — 正确区分目录和符号链接;终端命令完成或面板重新聚焦时自动刷新当前目录
  • 下载冲突策略 — 询问 / 覆盖 / 跳过 / 重命名;可按大小、修改时间判定
  • chmod / chown — 可视化权限与所有者
  • 跟随终端目录 — 终端 cd 后可同步路径
  • 拖拽上传 — 本地文件拖入面板
  • 复制远程路径 — 右键复制完整路径
  • 布局
    • 工作区停靠:标签页 / 右侧分栏 / 底部分栏
    • 文件列表:顶部标签单栏左侧标签双面板(历史标签 + 左右双列表)

命令历史、补全与快捷指令

  • 自动捕获 — 回车执行的命令写入本机历史库(按服务器 / 全局)
  • 搜索与回放 — 搜索后一键重发
  • 智能补全 — 汇总服务器历史、全局历史、快捷指令、常用命令与远端路径
  • 快捷指令库 — 分组管理;可发到当前或全部会话
  • 固定命令栏 — 将快捷指令常驻在终端输入区上方,点击后确认再发送
  • 动态参数p# 占位,执行时弹窗填写

凭据与代理节点

  • 凭据 — 集中管理密码/私钥/口令;多服务器引用
  • 代理节点 — 设置 → 网络中维护 SOCKS5 / HTTP 节点;服务器可引用;AI 请求也可指定代理节点
  • 导入导出联动 — 导出连接时带上被引用的代理节点

AI 对话与 MCP

  • 内置 AI 面板 — 多轮对话、流式输出、推理展示、消息编辑/重试/复制
  • 多协议供应商 — Compatible / Messages / Responses 等
  • 斜杠命令与 @ 提及/ 自定义命令;@ 引用终端输出或远端路径
  • 工具审批 — 读取/写入自动批准可独立开关;执行审批为三档互斥模式:基本规则(命令白名单)/ 只读批准 / 全部批准,支持许可与拒绝命令前缀(冲突时最长前缀匹配优先);支持继续/终止、终端重新指派
  • 变更审阅 — 远端编辑类工具提供 diff / patch / 恢复工作台
  • 上下文压缩与对话备份 — Token 压缩;自动/手动备份与还原;任务标题可编辑
  • 对话搜索 — 对 AI 对话历史做全文检索(SQLite FTS5 + CJK 回退)
  • 联网搜索 — 支持 Responses API web_search 工具;可按供应商开关或指定专用联网搜索供应商
  • 对话存储目录 — 可在 AI 设置中自定义对话数据存储路径,更改时自动迁移现有数据
  • 协同相关能力 — 对话协同接管等(见 AI 面板)
  • 多会话工作区 — AI 支持终端内多标签会话,布局与会话随工作区恢复
  • 生成调优 — 思考深度最高可选 Max;模型缓存策略与高级采样参数可配
  • 终端隔离 — 可为终端维护相对独立的 AI 运行期上下文
  • 内置 MCP 服务(Streamable HTTP) — 默认启用并监听 127.0.0.1:5779(可在 AI 设置中关闭);无 HTTP token,主要靠 loopback + Origin 摩擦控制(不是同用户恶意进程的安全边界)
  • 外部 CLI 接入 — Claude Code、Codex 等 CLI 可通过 MCP 连接操控已连接的服务器;操作痕迹在 MCP 活动面板可见(客户端、服务器、命令、状态);可选开启写操作审批(接入指南
  • MCP 客户端 — 添加外部 MCP(stdio / SSE / Streamable HTTP),启停、重载、超时等
  • 终端输出控制 — 限制 MCP/AI 读取终端输出的行数与字符数

内置 MCP 工具(节选)

list_connected_sessions · get_work_path · list_files · read_file · write_to_file · transfer_batch · transfer_list · execute_command · ask_followup_question · attempt_completion · search_replace · apply_diff · apply_patch · edit_file

云同步

  • 后端 — WebDAV、Cloudflare R2(S3 兼容)、FTP、SFTP(均为用户自建/自有端点)
  • 快照内容 — 服务器、凭据、快捷指令、AI 供应商与全局设置、代理节点、删除墓碑等
  • 加密策略
    • 已设置恢复密码 → 上传 .lumin2(PBKDF2 + AES-GCM)
    • 未设置 → 上传明文 .json(便于迁移,但云端可读敏感字段,请谨慎)
  • 合并与墓碑 — 按时间与删除记录合并,降低多端互相覆盖;自动同步可独立开关,模式可选单一后端或「全部」
  • 保留份数 — 可配置

本地加密

  • 首次运行生成 32 字节 lumin.key(配置目录,权限尽量收紧)
  • 连接密码、私钥、passphrase、代理密码、凭据、恢复密码、部分云账号密钥等经 AES-256-GCM 后写入本地 JSON
  • 说明:AI API Key、部分代理节点文件等当前以业务 JSON 保存,不全部lumin.key;云同步密文依赖恢复密码,与 lumin.key 是两套体系

自动更新

  • 启动约 2.5s 后检查 GitHub Release(不阻塞首屏)
  • 设置 → 关于可手动检查
  • 仅允许 HTTPS 的 GitHub Release 资产下载路径;可选 gh 镜像加速
  • 强制 SHA256 校验后安装/热替换(Windows 便携版、安装包;Linux deb/rpm;macOS dmg + codesign 校验等按平台)

系统托盘与单实例

  • 关闭窗口:每次询问 / 直接退出 / 最小化到托盘
  • 单实例;重复启动唤起已有窗口
  • 托盘左键显示、右键菜单;久置后尽量强制前台(平台相关)

视觉、主题与布局

  • 深色 / 浅色 — 可跟随系统
  • 主题包 — 内置多套终端/界面主题(含深浅变体);支持主题包在浅/深色间复制与 AI 辅助调色(配色模式对话默认不落库)
  • 字体管理 — 导入 ttf/otf/ttc/woff/woff2,分别用于界面、终端、AI 面板
  • 背景 — 全局背景与终端背景独立设置;全局背景可选「覆盖终端」,均支持透明度调节
  • 标题栏主题快捷入口 — 可开关
  • 分屏 — 探针、文件管理器、AI 面板宽度/位置可调;布局偏好持久化
  • Toast — 非侵入提示

快捷键、语言与工作区

  • 自定义快捷键 — 复制/粘贴/清屏/新建标签/信号与清空输入行等
  • 国际化 — 内置 28 种语言/地区包,即时切换
  • 工作区记忆 — 窗口尺寸与最大化;可选恢复会话与分屏;程序级或会话级持久化

运行环境

  • 设置 → 运行环境:安装/检测 uv

快速开始

首次使用

  1. Releases 下载当前平台包(Windows 便携/安装包、Linux deb/rpm、macOS dmg 等)
  2. 运行后配置目录自动创建(见下表)
  3. 仪表盘左侧填写主机信息 → 保存保存并连接
  4. 需要时在设置中配置代理节点、云同步、恢复密码、AI 供应商等

日常

  • 双击卡片或右键连接;会话内 + 开多终端
  • 侧栏打开探针 / 文件 / AI
  • 快捷指令、凭据、克隆、导入导出从主机列表与对应入口进入

配置与数据

路径

平台 配置目录
Windows %APPDATA%\Lumin\config\
macOS ~/Library/Application Support/Lumin/config/
Linux ~/.config/Lumin/config/

主要文件(节选)

文件 / 目录 用途
lumin.key 本地 AES 主密钥(首次生成)。丢失则本机已加密字段无法解密,请备份
connections.json 服务器列表(敏感字段 AES-GCM)
credentials.json 凭据库
webdav.json 各同步后端配置(账号密钥等加密存储)
quick_commands.json 快捷指令
param_history.json 动态参数历史
history/ 命令历史
sync_mode.json / auto_sync_enabled.json / sync_tombstones.json 同步模式、自动同步开关、时间戳与删除墓碑
recovery_password 恢复密码(由 lumin.key 加密存放)
ai_global_settings.json AI 全局(含 MCP 开关、自动批准等)
ai_providers.json AI 供应商列表(含 API Key 等业务字段)
proxy_nodes.json 代理节点
tasks/ AI 对话与备份(存储目录可在 AI 设置中自定义,路径记录于 app_settings.json
port_forwards.json 端口转发记录
file_manager_settings.json 文件管理器偏好(双击解压、传输调优等)
app_settings.json 应用偏好(GPU 加速、运行环境、主题包、AI 对话存储路径)
workspace_*.json 工作区状态、偏好与会话恢复

Windows 的 WebView2 用户数据目录固定在 %APPDATA%\Lumin\,与 config\ 同级;便携版可执行文件改名不会再创建多套浏览器数据目录。


自动更新

  1. 拉取 wmwlwmwl/Lumin-SSH 的 GitHub Release 元数据
  2. 按平台匹配安装包 / 便携包
  3. HTTPS 下载(可镜像)→ .sha256 校验 → 平台安装或热替换

版本号以 wails.jsonfrontend/src/config.tsfrontend/package.jsonfrontend/package-lock.json 为准,当前为 1.3.1


设置界面

标签 内容
通用 语言、各类操作确认、关闭窗口行为、工作区记忆、更新镜像、WebView GPU 等
网络 延迟协议与间隔、探针刷新、代理节点
文件管理器 跟随终端、压缩传输、队列、双击解压、布局/标签、下载冲突、分块上传等
运行环境 uv 安装与检测
外观 字体、终端主题与背景、界面主题包、探针位置、命令块边框等
快捷键 终端快捷键绑定
同步与云 WebDAV / R2 / FTP / SFTP、恢复密码、保留份数、自动同步
关于 版本、检查更新、仓库与社区链接

AI 供应商、工具审批、MCP 服务/客户端、对话备份等在 AI 面板设置 中,不占用上表标签。


构建

环境

  • Go 1.26+(见 go.mod
  • Node.js 18+
  • Wails v2 CLI

命令

go install github.com/wailsapp/wails/v2/cmd/wails@latest
git clone https://github.com/wmwlwmwl/Lumin-SSH.git
cd Lumin-SSH

wails dev            # 启动开发模式
wails build          # 便携/平台默认产物
wails build -nsis    # Windows 安装包(需 NSIS)

常见产物:build/bin/Lumin / Lumin.exe;安装包与 deb/rpm/dmg 由 CI 或本地脚本按平台生成。

Windows 本地一键构建(自动同步版本号、UPX 压缩、输出 Lumin-V{版本}-portable.exeLumin-V{版本}-amd64-installer.exe):

.\build_release.ps1    # 需本地具备 Go、NSIS、UPX 环境

正式发版(打 tag、更新日志、多平台包)见 .github/RELEASE.md


安全与注意

务必了解

  • lumin.key 备份 — 本地 AES 主密钥。丢失后,本机已加密的密码/私钥/恢复密码等无法解密。若另有恢复密码保护的云端 .lumin2 或明文导出,仍可能从其他副本恢复,但本地仓本身会失效。
  • 恢复密码与明文同步 — 未设恢复密码时,云同步为明文 JSON(含服务器密码、私钥、AI Key 等)。生产环境强烈建议设置强恢复密码。
  • 主机密钥 — 首次连接核对指纹;变更会提示,降低 MITM 风险。
  • 终端 WebSocket — 仅 127.0.0.1、随机端口、随机 token、Origin 限制。
  • MCP — 默认绑定 127.0.0.1:5779;可关闭。无 token 时,同用户本地进程理论上可调用已连接会话上的工具。不要对公网暴露,也不要假设能防本机木马。
  • 更新链 — 依赖 GitHub Release 与 SHA256;账号/CI 被攻破时哈希可被同时替换,属供应链信任模型限制。

使用习惯

  • 单实例;托盘与关闭行为在「通用」中配置
  • 外置编辑:先内置再外置;以文件变更监听回传,不以编辑器进程退出为准
  • 涉及本地运行环境能力时需先装好 uv 运行环境

FAQ

密码如何存?

本机用 lumin.key 做 AES-256-GCM。云同步另用恢复密码生成 .lumin2,或明文 .json

如何多机同步?

设置 → 同步与云 → 配置自有 WebDAV/R2/FTP/SFTP。建议先设恢复密码再开自动同步。

克隆会带密码吗?

会,与原配置一致(含密钥与凭据引用)。

凭据和「写在服务器上的密码」有何不同?

凭据是可复用实体,一处修改、多处生效。

外置编辑远程文件?

文件管理器打开 → 内置编辑器 → 使用系统/指定编辑器;本地保存后自动回传。

AI / MCP?

AI 面板配置供应商与审批策略。MCP 在 AI 设置中开关;启用后本机 MCP 客户端或编辑器可连 127.0.0.1:5779(详见面板说明)。

支持哪些桌面系统?

Windows、macOS、Linux 原生构建。


赞助

如果你觉得 Lumin 有用,欢迎扫码支持:

微信赞赏
微信
支付宝赞赏
支付宝
QQ赞赏
QQ

贡献

  • Bug:Issues
  • PR:Fork 后提交;尽量贴合现有风格;I/O 与网络保持非阻塞

许可证

LICENSELumin SSH Source License 1.1,与 Android 端同族):

可以 非商业使用、学习、研究、公开二开(保留许可与署名;对外发布须源码可得
不可以 商用(出售、收费分发、商业内嵌、营利服务等,定义见 LICENSE)
不可以 仅以加密/加壳/强混淆形式对外发布且不提供对应可读源码

范围: 本许可约束本仓原创代码;第三方依赖仍遵守其原许可证(不得用本许可去削弱第三方已授予的权利)。

本许可为自定义条款,非正式法律意见。涉及商业边界时请自行咨询律师。

桌面端与 Android 分仓分发;本仓库 Release 仅 Desktop。Android 见 Lumin-SSH-Android

About

轻量全平台 SSH 客户端(Windows / macOS / Linux) — Go 原生并发 · 毫秒级终端 · 远程文件管理 · 系统探针 · 云端加密同步 · AI 对话 · MCP 智能体集成,无需服务端 Agent

Resources

Stars

73 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages