Logan.LiandCursor 188f3556ed fix: allow closing last session tab and restore DevTools shortcut
Closing the sole remaining non-welcome tab now resets to welcome; enable Tauri devtools, menu/shortcut toggle, and copy release artifacts from CARGO_TARGET_DIR.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 01:31:20 +08:00
2026-07-31 01:37:01 +08:00

OpsXShell

轻量原生的跨平台运维终端。产品目标是让常用远程操作更直接,不做审计平台,也不依赖插件才能完成基础工作。

已支持

  • SSH 终端:密码、私钥、SSH Agent 自动尝试、主机指纹校验
  • 会话管理:分组、标签、快速连接、多标签、终端分屏;界面中英双语(zh-CN / en)
  • 批量命令:选中多个会话执行同一命令,结果仅保留在当前窗口(不含 RDP / VNC)
  • SFTP:双栏文件管理、断点续传、完整后原子替换、重命名、权限、远程文本编辑
  • 端口转发:本地、远程、动态 SOCKS5;状态栏「转发」打开抽屉启停;规则可编辑和复制,与运行实例分离;动态默认 127.0.0.1:1080,经当前 SSH 服务器出口 IP 访问外网
  • 连接代理:HTTP CONNECT、SOCKS5,可选用户名密码
  • OpenSSH 配置:导入 ~/.ssh/config 常用字段;界面支持单跳选择,Rust 后端支持最多 8 跳
  • 系统链接:ssh://user@host:port 唤起已有或新启动的 OpsXShell,并进入预填充快速连接确认
  • 远程桌面:原生 RDP(IronRDP)与 VNC(vnc-rs);剪贴板与共享盘(RDP)
  • 本地终端与串口:系统 Shell、串口设备与波特率配置
  • SSH Agent CLI:OpenAI/Responses/Anthropic 兼容 Provider、new-api 与 Ollama;自然语言驱动最多 8 步的执行→观察循环,三级安全模式、五级风险和破坏性命令硬拒绝
  • 本地安全:AES-256-GCM 加密会话密码、密钥口令和模型 API Key,不保存终端命令或 AI 对话历史

产品边界

OpsXShell 聚焦 SSH、SFTP、代理、转发、远程桌面、串口和多终端工作区。审计、录像、审批等堡垒机能力不在产品范围内。

当前仍需补齐的专业能力:

  • Agent Forwarding、OpenSSH 证书与 FIDO2
  • 断网重连、休眠恢复和大量标签切换的持续压测
  • SFTP 内容校验和、显式冲突选择和任务恢复
  • RDP / VNC 生产级证书校验与更多通道能力
  • Windows 实机验收、自动更新、代码签名、macOS 公证和崩溃诊断

技术栈

层级 技术
桌面运行时 Tauri 2
原生后端 Rust 2021
SSH / SFTP ssh2 0.9 / libssh2
远程桌面 IronRDP / vnc-rs
本地终端 portable-pty 0.9
串口 serialport 4.8
前端 React 18 + TypeScript 5 + Vite 5
状态管理 Zustand 4.4+
终端 XTerm.js 5.5+
国际化 i18next(zh-CN / en)
测试 Vitest + Rust test

会话和设置保存在系统应用数据目录的 opsxshell-data.json。主密钥固定保存在 ~/.opsxshell/master.key,Unix 权限为目录 0700、文件 0600。旧版 typo 路径 ~/.opsxshsell/ 会在启动时自动迁移并保留 .opsxshsell.bak 备份。

开发

环境要求:Node.js 18+、npm 9+、Rust 1.77+。

npm install
npm run dev

常用检查与构建:

npm run acceptance:quick
npm run acceptance:full
./build.sh v2.1.1 mac-arm64
build.bat v2.1.1 win-x64
./release.py v2.1.1 --dry-run

build.sh(macOS/Git Bash)和 build.bat(Windows CMD)会校验版本、运行门禁、构建并验证安装包,最终产物统一复制到 release/v<版本>/<平台>/ 并生成 SHA256SUMS.txt。显式传入新版本会同步所有版本文件,但不会自动创建或推送 Git tag。release.py 在 tag 推送后创建 Gitee Release、上传安装包和校验文件,并核对远程附件;先使用 --dry-run 检查待发布文件。平台打包必须在对应系统执行:macOS 在 macOS 构建,Windows x86_64 在 Windows 构建。

目录

src/                         React 界面与状态管理
src/i18n/                    界面文案(zh-CN / en)
src/platform/                Tauri 命令和事件适配层
src/platform/sftp.ts         本地/远程路径强类型传输边界
src/platform/rdp.ts          RDP 会话适配
src/platform/vnc.ts          VNC 会话适配
src/utils/terminalPipeline.ts 终端输入、输出和背压管线
shared/types/                前后端共享 TypeScript 契约
src-tauri/src/commands/      精简的 Tauri 命令边界
src-tauri/src/domain/        原生领域模型
src-tauri/src/services/      SSH、SFTP、隧道、PTY、串口、桌面、AI、存储服务
src-tauri/src/services/ssh/  认证、known_hosts、代理/跳板和 SFTP 子模块
src-tauri/src/services/tunnel/ 转发运行模型、SOCKS5 协议和双向 Relay
src-tauri/src/services/desktop/ RDP(IronRDP)与 VNC(vnc-rs)
test/                        前端测试与基础验收
scripts/                     构建和验收脚本

快捷键

快捷键 功能
Cmd/Ctrl + N 新建会话
Cmd/Ctrl + K 快速连接
Cmd/Ctrl + B 折叠/展开侧栏
Cmd/Ctrl + D 终端分屏
Cmd/Ctrl + W 关闭标签
Cmd + Option + I / F12 开发构建打开调试工具

文档

许可证

MIT

S
Description
No description provided
Readme MIT
19 MiB
0 Stars 0 Watchers 0 Forks
Languages
TypeScript 70%
Rust 21.9%
CSS 2.4%
HTML 1.8%
JavaScript 1.4%
Other 2.5%