{
  "markdown": "# iTerminal - SSH 连接管理器\n\n一款基于 Tauri 2 + React 构建的现代化 SSH 连接管理工具，专注于提供高效的 SSH 连接管理和终端操作体验。\n\n## 项目介绍\n\n### 背景\n\niTerminal 是一款类似于 XTerminal 的 SSH 连接管理工具，旨在帮助开发者和运维人员更便捷地管理多台服务器。\n\n### 技术栈\n\n| 技术 | 版本 | 说明 |\n|------|------|------|\n| Tauri | 2.x | 跨平台桌面应用框架 |\n| React | 19.x | 前端 UI 框架 |\n| TypeScript | 5.x | 类型安全的 JavaScript |\n| Vite | 7.x | 下一代前端构建工具 |\n| Ant Design | 6.x | 企业级 UI 组件库 |\n| xterm.js | 6.x | 终端模拟器 |\n| Zustand | 5.x | 轻量级状态管理 |\n| Rust | 1.75+ | 后端 SSH 实现 |\n| russh | 0.50 | Rust SSH 客户端库 |\n| russh-sftp | 2.1 | Rust SFTP 客户端库 |\n\n### 核心特性\n\n- 🚀 **轻量高效** - 基于 Tauri，内存占用低，启动速度快\n- 🔐 **安全可靠** - AES-256-GCM 加密存储连接信息，支持 SSH 密钥认证，自动密码迁移\n- 🖥️ **多标签管理** - 支持同时打开多个 SSH 会话\n- 📐 **终端分屏** - 支持水平/垂直分屏，嵌套分屏，可拖拽调整大小\n- 🔍 **终端搜索** - 支持终端内容全文搜索\n- ⌨️ **快捷键系统** - 丰富的快捷键支持，可自定义\n- 📁 **文件管理** - SFTP 文件浏览、上传下载、拖拽上传、文件搜索、压缩解压、文件预览/编辑（CodeMirror 6），面板跟随终端目录，权限不足时支持 sudo 提权上传\n- 📊 **系统监控** - 实时 CPU、内存、磁盘监控面板，进程管理\n- 🤖 **MCP 支持** - 内置 MCP 服务器（Token 鉴权 + SSE 传输），AI 执行的操作实时同步显示到终端\n- 🐳 **Docker 管理** - 容器/镜像/日志/容器终端\n- ✨ **AI 助手** - AI 对话（感知终端上下文）+ 智能体 Agent 自主诊断服务器\n- 🪟 **多窗口支持** - 拖拽连接到边缘创建新窗口，完整终端功能复用\n- 📋 **中文支持** - 完整的中文界面和右键菜单\n- 🌍 **跨平台** - 支持 Windows、macOS、Linux\n\n### 目标用户\n\n- 开发者\n- 系统运维工程师\n- DevOps 工程师\n- 需要管理多台服务器的技术人员\n\n---\n\n## 应用图片\n\n<div style=\"display: flex; overflow-x: auto; gap: 10px; white-space: nowrap;\">\n  <img src=\"https://raw.githubusercontent.com/iTophua/iterminal/main/assets/screenshots/screenshot1-connections.png\" alt=\"连接管理\" style=\"height: 300px; width: auto; flex-shrink: 0;\" />\n  <img src=\"https://raw.githubusercontent.com/iTophua/iterminal/main/assets/screenshots/screenshot2-terminal.png\" alt=\"终端分屏\" style=\"height: 300px; width: auto; flex-shrink: 0;\" />\n  <img src=\"https://raw.githubusercontent.com/iTophua/iterminal/main/assets/screenshots/screenshot3-filemanager.png\" alt=\"文件管理\" style=\"height: 300px; width: auto; flex-shrink: 0;\" />\n  <img src=\"https://raw.githubusercontent.com/iTophua/iterminal/main/assets/screenshots/screenshot4-monitor.png\" alt=\"系统监控\" style=\"height: 300px; width: auto; flex-shrink: 0;\" />\n</div>\n\n\n## 安装与打包\n\n### 环境要求\n\n#### 通用要求\n\n- Node.js >= 18.x\n- Rust >= 1.75\n- npm 或 pnpm\n\n#### Windows\n\n- [Microsoft Visual Studio Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/)（选择 \"Desktop development with C++\"）\n- [WebView2 Runtime](https://developer.microsoft.com/en-us/microsoft-edge/webview2/)（Windows 10/11 通常已内置）\n\n#### macOS\n\n- Xcode Command Line Tools: `xcode-select --install`\n\n#### Linux (Ubuntu/Debian)\n\n```bash\nsudo apt update\nsudo apt install -y libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev\n```\n\n### 开发环境搭建\n\n```bash\n# 1. 克隆项目\ngit clone <repository-url>\ncd iTerminal\n\n# 2. 安装依赖\nnpm install\n\n# 3. 启动开发模式\nnpm run tauri dev\n```\n\n### 生产环境打包\n\n```bash\n# 构建并打包应用\nnpm run tauri build\n```\n\n### 打包输出\n\n构建完成后，安装包位于 `src-tauri/target/release/bundle/` 目录：\n\n| 平台 | 输出格式 | 文件位置 |\n|------|---------|---------|\n| Windows | `.msi` / `.exe` | `bundle/msi/` `bundle/nsis/` |\n| macOS | `.dmg` / `.app` | `bundle/dmg/` `bundle/macos/` |\n| Linux | `.deb` / `.AppImage` | `bundle/deb/` `bundle/appimage/` |\n\n---\n\n## 功能介绍\n\n### 1. 连接管理\n\n#### 1.1 连接列表\n\n- 卡片式展示所有 SSH 连接\n- 分组管理（自定义分组）\n- 标签分类\n- 实时显示连接状态（在线/离线）\n- 支持按名称、IP、标签搜索筛选\n- 连接排序、批量管理\n\n#### 1.2 连接操作\n\n| 操作 | 说明 |\n|------|------|\n| 新建连接 | 创建新的 SSH 连接配置 |\n| 编辑连接 | 修改现有连接信息 |\n| 删除连接 | 删除单个连接 |\n| 复制连接 | 快速复制现有配置创建新连接 |\n| 连接测试 | 测试 SSH 连通性和认证 |\n| 快速连接 | 一键打开 SSH 终端 |\n| 导入/导出 | JSON 格式批量导入导出连接 |\n| 复制 IP | 一键复制服务器 IP 地址 |\n\n#### 1.3 连接状态\n\n- **在线** - 端口可达（绿色指示灯）\n- **离线** - 端口不可达（灰色指示灯）\n- **连接中** - 正在建立连接（蓝色指示灯）\n\n> 💡 启动后自动检测所有连接状态，定期刷新。\n\n#### 1.4 连接配置\n\n**基本配置：**\n- 连接名称\n- 分组\n- 标签\n- 主机名/IP 地址\n- 端口（默认 22）\n- 用户名\n\n**认证方式：**\n- 密码认证\n- SSH 密钥认证（支持 OpenSSH 和 PEM 格式）\n\n### 2. SSH 终端\n\n#### 2.1 多标签管理\n\n- 支持同时打开多个 SSH 会话\n- 连接级别标签页（每个连接可创建多个会话）\n- 标签页显示服务器名称/IP\n- 会话状态标识\n\n#### 2.2 终端分屏\n\n- 支持水平/垂直分屏\n- 可拖拽调整分屏大小\n- 每个分屏独立会话管理\n- 拖拽会话标签创建新分屏\n\n#### 2.3 终端功能\n\n| 功能 | 快捷键/操作 |\n|------|------------|\n| 终端模拟 | 完整的 xterm.js 终端 |\n| 彩色输出 | 支持 ANSI 颜色 |\n| 复制 | 工具栏按钮 / 右键菜单 / CmdOrCtrl+Shift+C |\n| 粘贴 | 右键菜单 / CmdOrCtrl+Shift+V |\n| 全选 | 右键菜单 |\n| 搜索 | 工具栏搜索按钮 / CmdOrCtrl+F |\n| 全屏 | 工具栏全屏按钮 |\n| 分屏 | CmdOrCtrl+D 水平 / CmdOrCtrl+Shift+D 垂直 |\n| 新建会话 | CmdOrCtrl+T |\n| 关闭会话 | CmdOrCtrl+W |\n\n#### 2.4 工具栏\n\n悬浮工具栏提供快捷操作：\n- 📋 **复制** - 复制选中的终端内容\n- 🔍 **搜索** - 打开搜索栏，搜索终端内容\n- 🖥️ **全屏** - 窗口最大化并收起侧边栏\n- 📊 **系统监控** - 打开实时监控面板\n- 📁 **文件管理** - 打开 SFTP 文件管理面板\n- ➖ **收起** - 收起工具栏为小球形态\n\n#### 2.5 多窗口支持\n\n- 拖拽连接标签到窗口边缘创建新窗口\n- 新窗口保留完整终端功能\n- 终端会话自动恢复到新窗口\n- 窗口位置自动记忆\n\n### 3. 文件管理\n\n#### 3.1 文件浏览\n\n- SFTP 协议远程文件浏览\n- 树形/列表双视图切换\n- 路径输入框快速跳转\n- 显示/隐藏隐藏文件\n- 文件大小显示\n- 拖拽上传到指定目录\n\n#### 3.2 文件操作\n\n| 操作 | 说明 |\n|------|------|\n| 新建文件 | 创建空文件 |\n| 新建文件夹 | 创建目录 |\n| 重命名 | 修改文件/文件夹名称 |\n| 删除 | 删除文件或目录 |\n| 修改权限 | chmod 权限设置 |\n| 压缩 | 远程 tar.gz 压缩 |\n| 解压 | 支持 tar.gz/zip/gz 等格式 |\n| 文件搜索 | 远程文件搜索 |\n| 文件预览 | 文本文件预览 |\n| 文件编辑 | 在线编辑远程文件 |\n| 复制文件名 | 复制选中文件名 |\n| 复制路径 | 复制完整路径 |\n\n#### 3.3 文件传输\n\n- **上传文件** - 支持多文件选择上传\n- **上传文件夹** - 整个文件夹上传\n- **拖拽上传** - 直接拖拽文件到面板上传\n- **下载文件** - 选择保存位置下载\n- **传输进度** - 实时显示传输进度\n- **暂停/恢复** - 支持传输暂停和恢复\n\n### 4. 系统监控\n\n#### 4.1 监控面板\n\n实时显示服务器状态，自动刷新：\n\n**系统信息：**\n- 主机名\n- 操作系统\n- 内核版本\n- 运行时间\n\n**CPU 监控：**\n- 总体使用率\n- 各核心使用率（可视化）\n- 核心数量\n- 负载均值\n\n**内存监控：**\n- 内存使用率（可视化）\n- 已用/总量/可用\n- Swap 使用情况\n\n**磁盘监控：**\n- 各挂载点使用率\n- 已用/总量/可用空间\n- 使用率百分比\n\n**进程管理：**\n- 进程列表（按内存排序）\n- 进程终止\n\n#### 4.2 状态指示\n\n- 🟢 绿色 - 使用率 < 70%\n- 🟡 黄色 - 使用率 70% - 90%\n- 🔴 红色 - 使用率 > 90%\n\n### 5. MCP 服务器\n\n内置 MCP (Model Context Protocol) 服务器，支持 AI 助手集成：\n\n- 通过 HTTP API 控制 SSH 连接\n- 支持命令执行、文件操作、系统监控\n- 可与 Claude 等 AI 助手集成\n\n---\n\n## 项目结构\n\n```\niTerminal/\n├── src/                        # React 前端\n│   ├── main.tsx                # 应用入口\n│   ├── App.tsx                 # 路由 + 布局\n│   ├── components/             # 公共组件\n│   │   ├── Sidebar.tsx         # 侧边栏\n│   │   ├── FileManagerPanel.tsx # 文件管理面板\n│   │   ├── MonitorPanel.tsx    # 系统监控面板\n│   │   ├── SettingsPanel.tsx   # 设置面板\n│   │   └── fileManager/        # 文件管理子模块\n│   ├── pages/                  # 页面组件\n│   │   ├── Terminal.tsx        # 终端页面\n│   │   ├── TerminalWindow.tsx  # 新窗口终端\n│   │   ├── Connections.tsx     # 连接管理\n│   │   └── Transfers.tsx       # 传输管理\n│   ├── stores/                 # Zustand 状态管理\n│   │   ├── terminalStore.ts    # 连接/会话状态\n│   │   └── transferStore.ts    # 传输记录状态\n│   ├── services/               # 服务层\n│   │   ├── database.ts         # 数据库服务\n│   │   └── sftp.ts             # SFTP 服务\n│   ├── utils/                  # 工具函数\n│   │   ├── paneUtils.ts        # 分屏工具\n│   │   └── TerminalManager.ts  # 终端管理\n│   └── styles/                 # 全局样式\n│       └── global.css          # xterm.js 样式覆盖\n├── src-tauri/                  # Rust 后端\n│   ├── src/\n│   │   ├── main.rs             # Tauri 入口\n│   │   ├── lib.rs              # 模块声明\n│   │   ├── db/                 # 数据库\n│   │   │   ├── schema.sql      # 数据库结构\n│   │   │   └── crypto.rs       # 加密模块\n│   │   └── commands/           # Tauri 命令\n│   │       ├── ssh.rs          # SSH 操作\n│   │       ├── sftp.rs         # SFTP 文件传输\n│   │       ├── db.rs           # 数据库操作\n│   │       ├── api.rs          # HTTP API 服务器\n│   │       └── window.rs       # 窗口管理\n│   ├── Cargo.toml              # Rust 依赖\n│   ├── tauri.conf.json         # Tauri 配置\n│   └── capabilities/           # 权限配置\n├── mcp/                        # MCP 服务器\n│   └── src/index.ts            # MCP 工具定义\n├── package.json                # npm 依赖\n├── vite.config.ts              # Vite 配置\n└── tsconfig.json               # TypeScript 配置\n```\n\n---\n\n## 安全注意事项\n\n| 风险项 | 当前状态 | 建议 |\n|--------|----------|------|\n| 密码存储 | AES-256-GCM 加密存储 | 安全 |\n| 主机密钥验证 | 已跳过 | 后续版本将支持 known_hosts |\n| 密钥认证 | 已实现 | 推荐使用密钥认证 |\n| 会话超时 | 无自动锁定 | 手动断开不使用的连接 |\n\n---\n\n## 常见问题\n\n### Q: 无法连接服务器？\n\n1. 检查网络连通性\n2. 确认 SSH 服务已启动\n3. 验证用户名和密码/密钥\n4. 检查防火墙设置\n\n### Q: Windows 打包失败？\n\n1. 确保已安装 Visual Studio Build Tools\n2. 选择 \"Desktop development with C++\" 工作负载\n3. 安装 WebView2 Runtime\n\n### Q: macOS 提示无法打开？\n\n1. 系统偏好设置 → 安全性与隐私\n2. 点击「仍要打开」\n3. 或使用命令：`xattr -cr iTerminal.app`\n\n### Q: 终端显示乱码？\n\n1. 检查服务器 locale 设置\n2. 确保终端字体支持 UTF-8\n3. 尝试调整终端字体\n\n---\n\n## 开发计划\n\n### 已完成功能\n\n- [x] SSH 连接管理\n- [x] 多会话终端\n- [x] 终端搜索功能\n- [x] SFTP 文件管理\n- [x] 文件上传/下载\n- [x] 拖拽上传\n- [x] sudo 提权上传（权限不足时自动重试）\n- [x] 系统监控面板\n- [x] 远程文件压缩/解压\n- [x] 密钥认证\n- [x] 密码加密存储\n- [x] 连接导入/导出\n- [x] 断线自动重连\n- [x] 快捷键系统\n- [x] 分屏终端\n- [x] 终端主题配置\n- [x] 文件预览/编辑（CodeMirror 6）\n- [x] 文件搜索\n- [x] 传输暂停/恢复\n- [x] MCP 服务器（Token 鉴权 + SSE 传输 + 日志体系）\n- [x] 多窗口支持\n- [x] Docker 管理（容器/镜像/日志/容器终端）\n- [x] AI 助手（AI 对话 + 智能体 Agent）\n- [x] 主题切换\n- [x] 文件夹下载\n- [x] 输入广播（多连接同时输入）\n- [x] 命令片段库（Pro）\n- [x] 端口转发（Pro）\n\n### 计划功能\n\n- [ ] 断点续传\n- [ ] 进程管理增强\n- [ ] 多语言支持\n\n---\n\n## 贡献指南\n\n欢迎提交 Issue 和 Pull Request！\n\n1. Fork 项目\n2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)\n3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)\n4. 推送到分支 (`git push origin feature/AmazingFeature`)\n5. 创建 Pull Request",
  "bytes": 8675,
  "sha": "7e39a5c4053722c6edb362c547b67ac81715c774069e74f715625766ab8f1d1e",
  "repo_slug": "itophua/iterminal",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_itophua_iterminal_ba733a86/readme"
}