175 lines
6.7 KiB
Markdown
175 lines
6.7 KiB
Markdown
# 智能 SSH 终端 - SSH AI Agent
|
||
|
||
集成 AI 助手的远程运维桌面客户端,支持 SSH 连接、终端管理和自然语言辅助。
|
||
|
||
## 功能特性
|
||
|
||
### 核心功能
|
||
|
||
- **SSH 连接管理**:创建、编辑和管理 SSH 连接配置
|
||
- **分组管理**:将连接按分组组织,便于管理
|
||
- **终端会话**:全功能终端模拟器,支持多标签页
|
||
- **AI 助手集成**:内置 AI 聊天,支持自然语言描述运维任务
|
||
|
||
### v0.2.0 更新
|
||
|
||
- ✅ 优化布局结构:确保 AI 输出内容不影响侧边栏可见性
|
||
- ✅ AI 助手面板独立化:支持自由开关控制
|
||
- ✅ 新增面板切换按钮:在侧边栏底部提供快速开关入口
|
||
- ✅ 所有区域滚动支持:确保内容过多时可正常滚动查看
|
||
- ✅ 侧边栏永不消失:设置 flex-shrink-0 确保导航区域稳定
|
||
|
||
## 技术栈
|
||
|
||
- **Electron**:跨平台桌面应用框架
|
||
- **React**:UI 组件库
|
||
- **TypeScript**:类型安全的 JavaScript 超集
|
||
- **Tailwind CSS**:实用优先的 CSS 框架
|
||
- **XTerm.js**:Web 终端模拟器
|
||
- **Zustand**:轻量级状态管理
|
||
|
||
## 安装与使用
|
||
|
||
### 开发模式
|
||
|
||
```bash
|
||
# 安装依赖
|
||
npm install
|
||
|
||
# 启动开发服务器(包含热重载)
|
||
npm run dev:watch
|
||
|
||
# 或直接编译并运行
|
||
npm run dev
|
||
```
|
||
|
||
### 构建打包
|
||
|
||
```bash
|
||
# 编译前端和后端
|
||
npm run build
|
||
|
||
# 生成绿色免安装版本(目录版)
|
||
npm run pack
|
||
|
||
# 生成完整安装包(NSIS)
|
||
npm run dist
|
||
```
|
||
|
||
打包后的文件将存放在 `release/` 目录下:
|
||
- 绿色版:`release/win-unpacked/智能SSH终端.exe`
|
||
- 安装包:`release/智能SSH终端-x.x.x-x64.exe`
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
.
|
||
├── src/
|
||
│ ├── main/ # Electron 主进程
|
||
│ │ ├── index.ts # 主入口
|
||
│ │ ├── preload.ts # 预加载脚本
|
||
│ │ ├── handlers/ # IPC 处理程序
|
||
│ │ └── services/ # 业务服务
|
||
│ ├── renderer/ # 渲染进程
|
||
│ │ ├── src/ # React 源代码
|
||
│ │ ├── index.html # 入口 HTML
|
||
│ │ └── ...
|
||
│ └── shared/ # 共享类型定义
|
||
├── resources/ # 资源文件
|
||
├── dist/ # 编译输出
|
||
├── release/ # 打包输出
|
||
└── ...
|
||
```
|
||
|
||
## v0.2.0 布局说明
|
||
|
||
新的 3 列布局确保了最佳的用户体验:
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ 标题栏 │
|
||
├─────────────────────────────────────────────────────────────┤
|
||
│ │ │ │ │
|
||
│ │ │ ┌──────────────────────┐ │ │
|
||
│ │ │ │ 会话/分组/模型面板 │ │ │
|
||
│ │ │ └──────────────────────┘ │ │
|
||
│ │ │ │ │
|
||
│ │ │ ┌──────────────────────┐ │ │
|
||
│ │ │ │ 终端区域 │ │ │
|
||
│ │ │ └──────────────────────┘ │ │
|
||
│ │ │ │ │
|
||
│ │ └──────────────────────────────────────────────────┘ │
|
||
│ │ │
|
||
│ │ 主工作区(管理面板 + 终端) │
|
||
│ │ │
|
||
│ │ ┌───────────────────────────────────────────────────┐ │
|
||
│ │ │ AI 助手面板(可展开/收起) │ │
|
||
│ │ │ - 模型选择 │ │
|
||
│ │ │ - 聊天界面 │ │
|
||
│ │ │ - 工具调用卡片 │ │
|
||
│ │ └───────────────────────────────────────────────────┘ │
|
||
│ └──────────────────────────────────────────────────────────┘
|
||
│ │
|
||
└────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 关键改进
|
||
|
||
1. **左侧导航**:固定宽度,`flex-shrink-0` 确保永不被压缩
|
||
2. **AI 面板开关**:在侧边栏底部增加独立的 AI 助手切换按钮
|
||
3. **面板可收起**:AI 助手面板支持完全收起,为主工作区提供更大空间
|
||
|
||
## 依赖列表
|
||
|
||
### 核心依赖
|
||
- `@xterm/xterm` 和 `@xterm/addon-fit`:终端模拟器
|
||
- `react` 和 `react-dom`:UI 框架
|
||
- `electron-store`:本地数据存储
|
||
- `openai`:AI 模型集成
|
||
- `lucide-react`:图标库
|
||
- `zustand`:状态管理
|
||
|
||
### 开发工具
|
||
- `typescript`:类型检查
|
||
- `vite`:前端构建工具
|
||
- `electron-builder`:打包工具
|
||
- `tailwindcss`:CSS 框架
|
||
|
||
## 开发者指南
|
||
|
||
### 修改配置
|
||
- TypeScript 配置:`tsconfig.main.json`(主进程),`tsconfig.renderer.json`(渲染进程)
|
||
- Vite 配置:`vite.config.ts`
|
||
- Tailwind 配置:`src/renderer/tailwind.config.js`
|
||
- Electron Builder 配置:`package.json` 的 `build` 字段
|
||
|
||
### 常见问题
|
||
|
||
#### 无法启动开发模式
|
||
确保已完整安装依赖,并且 Node.js 版本大于等于 16。
|
||
|
||
#### 打包时下载 Electron 失败
|
||
可以配置国内镜像源或使用代理:
|
||
```bash
|
||
# 使用镜像源
|
||
set ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/
|
||
npm install
|
||
```
|
||
|
||
## 许可证
|
||
|
||
Copyright © 2026 SSH AI Agent Team
|
||
|
||
## 更新日志
|
||
|
||
### v0.2.0 (2026-06-16)
|
||
- 优化布局结构,AI 面板独立化
|
||
- 侧边栏永不消失,稳定固定宽度
|
||
- AI 助手支持快速开关控制
|
||
- 所有区域完善滚动条配置
|
||
- 版本号更新至 0.2.0
|
||
|
||
### v0.1.0
|
||
- 初始版本发布
|
||
- 基本 SSH 连接功能
|
||
- 基础 AI 助手集成 |