# tShellDesktop **Repository Path**: running_tortoise/t-shell-desktop ## Basic Information - **Project Name**: tShellDesktop - **Description**: 一个现代化的 SSH 终端管理工具,类似于 XShell。 - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2026-09-04 - **Last Updated**: 2026-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

tShell

tShell

现代化的 SSH 终端 · 为效率而生

将 SSH 多标签终端、SFTP 双栏传输、远程目录编辑器 与 AI 助手 融为一体,
凭据经 AES-256-GCM 加密后只存在你自己的电脑里。

version license platform electron vue

官网 · Gitee · 下载安装包

--- ## 产品展示 工作台卡片管理连接,终端与 SFTP 可同屏协作: ![tShell 终端与 SFTP](./image/terminal.png) 双栏文件管理器,拖拽上传下载,右键即可改权限、压缩、用编辑器打开: ![tShell SFTP 双栏](./image/sftp.png) 基于 Monaco 的远程目录编辑器,文件树 + 多标签 + 搜索替换,`Ctrl+S` 直接落盘: ![tShell 内置编辑器](./image/editor.png) 界面主题、终端配色、SFTP 停靠位置均可在设置中调整: ![tShell 工作台与设置](./image/QQ20260904-174450.png) --- ## 功能特性 ### SSH 终端 - 基于 xterm.js 的高性能终端,完整 UTF-8 / 链接识别 / 搜索高亮 - 多标签并行,支持分屏;彩色提示符跟随当前配色方案 - 密码认证与 RSA / ED25519 私钥文件认证 - 跳板机 ProxyJump,多级链路一次配置 - 断线自动重连、连接保活,网络抖动后会话可恢复 - 会话日志自动落盘,便于回溯与审计 - 快捷命令一键发送,命令历史可复用 - 一条命令同时下发多台主机(批量执行) ### SFTP 文件管理 - Windows 资源管理器风格的本地 / 远程双栏浏览 - 与当前 SSH 会话共用同一条连接,无需二次登录 - 拖拽传输、文件搜索、权限编辑、压缩解压 - 面板可停靠到终端上 / 下 / 左 / 右,也可拖出为独立窗口 - 标题栏「工具 → SFTP」可单独打开文件管理窗口 ### 远程目录编辑器 - 类 VS Code 布局:文件树、多标签、状态栏、命令盘 - 语法高亮,按扩展名自动识别语言 - 工作区搜索(grep)与文内查找 / 替换 - `Ctrl+S` 保存到远程,支持另存为、新建文件 / 文件夹 - 后台预取目录结构,展开即可编辑 ### AI 助手 直连 OpenAI 兼容接口,支持 [OpenAI](https://api.openai.com)、[DeepSeek](https://api.deepseek.com)、[Ollama](https://ollama.com) 本地模型。API Key 只保存在本机。 | 模式 | 说明 | |------|------| | **Ask** | 选中终端输出直接提问,解释报错、补全命令 | | **Agent** | 生成命令,确认后再写入终端执行 | | **Plan** | 复杂运维任务先出结构化计划,分步确认再落地 | ### 连接与工作台 - 连接卡片 / 分组管理,最近连接快速回访 - 工作台一览多台主机,适合批量运维场景 - 可选桌面窗口模式,用窗口化方式同时打开终端与文件管理器 ### 安全 - 密码与私钥:AES-256-GCM 加密存储 - 密钥派生:PBKDF2(100,000 次迭代) - 全部数据在本地 SQLite,无云端同步、无遥测上报 - 支持离线使用 --- ## 主题 **界面主题**与**终端配色**分开配置,互不影响。 终端配色(8 套):Tokyo Night(默认)、Dracula、Monokai、Nord、One Dark、Gruvbox Dark、Solarized Dark、Catppuccin Mocha。 界面主题另含 GitHub Light / Dark、Solarized Light、Catppuccin Latte、Rosé Pine、Ayu Dark、Material Ocean 等。设置里可单独调节界面字体缩放(终端字号不受影响)。 --- ## 下载 前往官网获取安装包:**[https://shell.imman.cn/](https://shell.imman.cn/)** | 平台 | 包格式 | 说明 | |------|--------|------| | Windows 10 / 11(64 位) | `.exe`(NSIS) | 可自定义安装目录 | | macOS 10.15+(Apple Silicon) | `.dmg` | 拖入「应用程序」即可 | | Linux | AppImage | 官网提供下载入口 | 免费开源,MIT 协议,可个人与商业使用。 --- ## 快速开始(源码) ### 环境要求 - Node.js >= 18 - npm >= 9 ### 安装与运行 ```bash git clone https://gitee.com/running_tortoise/t-shell-terminal.git cd t-shell-terminal npm install ``` 仅预览前端: ```bash npm run dev ``` 启动 Electron 开发模式(完整桌面端): ```bash npm run electron:dev ``` 打包安装包(输出到 `release/`): ```bash npm run electron:build ``` 可选:复制 `env.example` 为 `.env`。当前客户端以本地模式运行,不依赖云端登录;`.env` 中的 API 地址仅用于可选的模型目录刷新。 --- ## 技术栈 | 层级 | 技术 | |------|------| | 桌面框架 | Electron 29 | | 渲染进程 | Vue 3 + TypeScript + Tailwind CSS + Pinia + Vue Router 4 | | 终端 | xterm.js 5 | | 编辑器 | Monaco Editor | | SSH / SFTP | ssh2 | | 本地存储 | SQLite(better-sqlite3) | --- ## 项目结构 采用主进程 / 渲染进程分离,渲染侧按功能拆模块: ``` tShell/ ├── src/ │ ├── main/ # Electron 主进程 │ │ ├── index.ts # 入口、窗口与 IPC │ │ ├── preload.ts # 预加载,暴露安全 API │ │ ├── ssh-manager.ts # SSH 连接 / 通道 │ │ ├── sftp-manager.ts # SFTP 文件操作 │ │ ├── folder-editor-prefetch.ts │ │ ├── database.ts # SQLite │ │ ├── crypto.ts # AES-256-GCM │ │ ├── session-logger.ts # 会话日志 │ │ └── batch-executor.ts # 批量执行 │ ├── renderer/ │ │ ├── modules/ │ │ │ ├── terminal/ # SSH 终端 │ │ │ ├── sftp/ # 双栏 SFTP │ │ │ ├── folder-editor/ # 远程目录编辑器 │ │ │ ├── ai/ # AI 助手(本地直连) │ │ │ ├── connection/ # 连接、分组、快捷命令、批量执行 │ │ │ └── auth/ # 认证存根(纯本地运行) │ │ ├── shared/ # 公共组件、Store、主题 │ │ ├── views/ # 主窗口 / 独立终端 / SFTP / 编辑器窗口 │ │ └── router/ │ └── shared/ # 主进程与渲染进程共享类型、主题 ├── docs/ # 架构、桌面模块、接口文档 ├── image/ # 本仓库介绍截图 ├── website/ # 官网静态页 ├── public/ # 静态资源 └── release/ # 打包输出 ``` 更细的模块边界、IPC 通道与扩展约定见 [docs/架构说明/架构文档.md](./docs/架构说明/架构文档.md)。 --- ## 常用快捷键 ### 全局 | 快捷键 | 功能 | |--------|------| | `Ctrl + N` | 新建连接 | | `Ctrl + T` | 打开工作台标签 | | `Ctrl + W` | 关闭当前标签 | | `Ctrl + Tab` / `Ctrl + Shift + Tab` | 下一个 / 上一个标签 | | `Ctrl + ,` | 打开设置 | | `Ctrl + +` / `Ctrl + -` / `Ctrl + 0` | 界面字体放大 / 缩小 / 重置 | | `F11` | 全屏 | ### 终端 | 快捷键 | 功能 | |--------|------| | `Ctrl + Shift + C` / `V` / `A` | 复制 / 粘贴 / 全选 | | `Ctrl + F` | 搜索终端内容 | | `Ctrl + L` | 清屏 | | `Ctrl + Shift + S` | 打开或关闭当前会话的 SFTP 面板 | | `Ctrl + Shift + L` | 将选中内容加入 AI 对话 | ### 远程编辑器 | 快捷键 | 功能 | |--------|------| | `Ctrl + S` | 保存到远程 | | `Ctrl + W` | 关闭标签 | | `Ctrl + F` / `Ctrl + H` | 文内查找 / 替换 | | `Ctrl + Shift + F` | 工作区搜索 | | `Ctrl + Shift + P` | 命令盘 | --- ## 文档 | 文档 | 内容 | |------|------| | [架构文档](./docs/架构说明/架构文档.md) | 模块划分、目录、IPC、安全 | | [本地 AI](./docs/架构说明/本地AI.md) | Ask / Agent / Plan 与接口配置 | | [桌面模块](./docs/desktop/README.md) | 窗口化桌面、文件管理器、应用系统 | | [用户指南](./docs/desktop/用户指南.md) | 桌面操作、快捷键、个性化 | --- ## 参与贡献 欢迎 Issue 与 Pull Request。建议改动前先阅读架构文档,按现有模块目录新增功能,避免把逻辑堆进主进程入口或根组件。 仓库地址: --- ## 许可证 [MIT](./LICENSE) © 2026 奔跑的乌龟 官网:[https://shell.imman.cn/](https://shell.imman.cn/)