Skip to content

cool-icu0/ssh-manger

Repository files navigation

CC_tools — 智能云服务器运维管理桌面工具

一站式服务器运维管理 | SSH 终端 | SFTP 文件管理 | MCP 协议 | 智能运维技能 | 自动部署

Tauri 2 React 18 TypeScript Rust License Version

Platform MCP xterm.js


基于 Tauri 2.x + React 18 + TypeScript + Rust 构建的全能型服务器管理桌面应用,替代传统 SSH 客户端,内置 MCP 协议与智能运维技能系统,是你的云服务器上的 AI 运维机器人


目录


💡 为什么选择 CC_tools?

传统 SSH 客户端 vs CC_tools

维度 传统 SSH 客户端 CC_tools
SSH 终端 ✅ 多标签、自动重连、三种认证方式
SFTP 文件管理 ❌ 需要额外工具 ✅ 内置,拖拽上传/下载
系统巡检 ✅ 一键 CPU/内存/磁盘/进程全面体检
日志分析 ✅ 自动统计 ERROR/WARN/FATAL,智能归类
内存泄漏排查 ✅ 多采样点趋势分析、自动判定风险
链路耗时分析 ✅ 响应时间统计、慢请求/OOM 检测
压测优化建议 ✅ 系统限制检查、8 条通用优化方案
自动部署 ✅ 排除模式、部署前后命令、自动备份
MCP 协议 ✅ 完整 JSON-RPC 2.0、9 个运维工具
AI 集成 ✅ 可作为 MCP Server 被 AI 客户端调用

核心理念

  • 零运行时依赖:编译产物为独立可执行文件,双击即用,无需安装任何运行时
  • 性能优先:SSH/文件操作等性能敏感操作由 Rust 处理,确保低延迟高吞吐
  • 数据安全:所有配置与密钥仅存储在本地,不上传任何数据到云端
  • AI 就绪:通过 MCP 协议暴露 9 个运维工具,可被 Claude、GPT 等 AI 客户端直接调用

✨ 核心功能

模块 能力 亮点
SSH 终端 多会话管理 密码/密钥/SSH Agent 三种认证,xterm.js 终端仿真,会话持久化
SFTP 文件管理 文件浏览、上传、下载 支持删除、重命名、新建目录、文件大小/权限/时间展示
仪表盘 控制台总览 连接统计、MCP 工具数、最近部署日志、快捷操作入口
MCP 协议 JSON-RPC 2.0 完整实现 9 个运维工具对外暴露,AI 客户端可直接调用
日志分析 智能日志扫描 自动统计 ERROR/WARN/FATAL,正则过滤,严重程度分级建议
健康巡检 系统全面体检 CPU/内存/磁盘/网络/进程,full/basic/custom 三种模式
内存泄漏排查 多采样点趋势分析 自动计算 RSS 增长趋势,判断泄漏风险等级
链路耗时分析 服务性能诊断 响应时间 avg/min/max 统计,OOM/连接池耗尽检测
压测优化建议 系统瓶颈定位 ulimit/sysctl/数据库连接数检查,针对性优化方案
自动部署 配置化管理 目录/工件两种模式,排除模式,部署前后命令,自动备份
路径记忆 本地路径智能推荐 最近使用路径自动记录(最多 20 条),下拉快速选择

🏗️ 技术架构

整体架构

┌─────────────────────────────────────────────────────────┐
│                    CC_tools 桌面应用                       │
├──────────────────────┬──────────────────────────────────┤
│   React 前端 (TypeScript)   │     Rust 后端 (Tauri 2)           │
│                          │                                    │
│  ┌─────────────────┐    │  ┌─────────────────────────────┐   │
│  │ Zustand 状态管理  │    │  │      Tauri Commands         │   │
│  │ (3 个 Store)     │    │  │   (30+ #[tauri::command])   │   │
│  └────────┬────────┘    │  └────────────┬────────────────┘   │
│           │              │               │                     │
│  ┌────────▼────────┐    │  ┌────────────▼────────────────┐   │
│  │ 6 个页面组件      │    │  │       AppState              │   │
│  │ Layout/Dashboard  │    │  │  SessionManager            │   │
│  │ SSH/SFTP/Skills   │invoke│  McpServer                  │   │
│  │ MCP/Deploy        │◄───►│  AppConfig                  │   │
│  └────────┬────────┘    │  └────────────┬────────────────┘   │
│           │              │               │                     │
│  ┌────────▼────────┐    │  ┌────────────▼────────────────┐   │
│  │ xterm.js 终端     │    │  │  功能模块                    │   │
│  │ Recharts 图表    │    │  │  ssh/ mcp/ skills/          │   │
│  │ Monaco 编辑器    │    │  │  deploy/ storage/           │   │
│  └─────────────────┘    │  └─────────────────────────────┘   │
│                          │                                    │
│  Tokyo Night 暗色主题    │  ssh2 crate / tokio 异步运行时        │
└──────────────────────────┴────────────────────────────────────┘

数据流

[用户操作] ──> [React 组件] ──> [Zustand Store]
                                    │
                           invoke("command", args)
                                    │
                                    ▼
                          [Tauri Command] ──> [Rust 函数]
                                    │
                          ┌─────────┼─────────┐
                          ▼         ▼         ▼
                      [SSH 操作]  [技能分析]  [MCP 处理]
                          │         │         │
                          ▼         ▼         ▼
                    [远程服务器] [结构分析结果] [JSON-RPC 响应]
                          │         │         │
                          └─────────┼─────────┘
                                    ▼
                          [返回 JSON 给前端]
                                    │
                                    ▼
                          [React 组件更新 UI]

特殊通道:
[部署执行] ──> [mpsc::channel] ──> [Tauri Event "deploy-log"] ──> [前端实时日志渲染]

后端模块架构

src-tauri/
├── ssh/
│   ├── connection.rs   # SSH 连接配置 (3 种认证: Password/KeyFile/Agent)
│   ├── session.rs      # 会话管理 (连接/断开/命令执行/Shell 通道)
│   └── sftp.rs         # SFTP 客户端 (8 种文件操作)
│
├── mcp/
│   ├── protocol.rs     # JSON-RPC 2.0 协议类型定义
│   ├── server.rs       # MCP 服务器 (5 个协议方法)
│   └── tools.rs        # 9 个运维工具注册
│
├── skills/
│   ├── registry.rs     # 技能注册/信息定义/结果类型
│   ├── log_analyzer.rs    # 日志分析技能
│   ├── health_checker.rs  # 健康巡检技能
│   ├── memory_profiler.rs # 内存泄漏排查技能
│   ├── trace_analyzer.rs  # 链路耗时分析技能
│   └── stress_test_advisor.rs # 压测优化建议技能
│
├── deploy/
│   └── auto_deploy.rs  # 部署核心逻辑 (打包/备份/上传/命令执行)
│
└── storage/
    └── config.rs       # 配置持久化 (JSON 文件 + 系统目录)

🚀 快速开始

环境要求

工具 版本要求 用途 必要
Rust 工具链 >= 1.80 编译 Rust 后端
Node.js >= 18.0 开发前端 仅开发
WebView2 最新 Windows 运行时

第一步:安装 Rust(必需)

# 使用 winget 安装
winget install Rustlang.Rustup

# 或访问 https://rustup.rs 下载安装器
# 安装后重启终端,验证:
rustc --version   # 应显示 >= 1.80
cargo --version

第二步:安装 Node.js(仅开发前端时需要)

winget install OpenJS.NodeJS.LTS
node --version    # 应显示 >= 18.0
npm --version

第三步:克隆项目并安装依赖

cd AI_ssh-manger
npm install

第四步:启动开发模式(推荐)

npm run tauri dev
# 自动启动 Vite 前端开发服务器
# 自动编译 Rust 后端
# 自动打开应用窗口
# 支持热更新: 改前端实时刷新, 改 Rust 自动重编译

构建生产版本

方式一:一键构建

npm run tauri build
# 产物: src-tauri/target/release/cc-tools.exe (Windows)
#       src-tauri/target/release/cc-tools (Linux/macOS)

方式二:分步构建

# 步骤1: 构建前端
npm run build
# 产物在 dist/ 目录下

# 步骤2: 编译 Rust 后端
cd src-tauri
cargo build --release
# 首次编译约 2~5 分钟,增量编译约 1 分钟

运行产物

产物为独立可执行文件,无需任何运行时依赖:

.\src-tauri\target\release\cc-tools.exe

启动故障排查

现象 原因 解决
cargo: command not found Rust 未安装或未加入 PATH 安装 Rust,重启终端
npm: command not found Node.js 未安装 winget install OpenJS.NodeJS.LTS
窗口打开后白屏 dist/ 目录不存在或为空 先执行 npm run build
panicked at PluginInitialization 权限声明缺失 确保 src-tauri/capabilities/default.json 存在
exe 闪退 缺少 WebView2 运行时 安装 Microsoft Edge WebView2
编译错误 "link.exe not found" 缺少 MSVC 构建工具 安装 Visual Studio Build Tools,勾选 "C++ 桌面开发"
Linux 编译错误 缺少系统依赖 sudo apt install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libssl-dev libgtk-3-dev

📖 使用指南

SSH 终端

  1. 点击左侧导航栏 SSH 终端
  2. 点击 + 按钮添加服务器连接
  3. 填写连接信息:
    • 主机地址(IP 或域名)
    • 端口(默认 22)
    • 用户名
    • 认证方式:密码 / 密钥文件(支持 passphrase)/ SSH Agent
  4. 点击 保存并连接,自动打开终端会话
  5. 左侧连接列表展示所有已保存连接,点击即可切换

SFTP 文件管理

  1. 进入 文件管理 页面
  2. 左侧为目录树,双击文件夹进入,上方显示当前路径
  3. 支持操作:
    • 上传/下载文件
    • 新建目录
    • 重命名/删除
    • 查看文件权限、大小、修改时间

智能运维技能

  1. 确保已通过 SSH 连接到目标服务器
  2. 进入 智能技能 页面
  3. 选择技能类型(日志分析 / 健康巡检 / 内存排查 / 链路分析 / 压测建议)
  4. 填写必要参数(如日志路径、进程 PID 等)或使用默认值
  5. 点击 运行技能,等待远程执行完成
  6. 查看结构化的分析结果,包含摘要、详情、严重程度和建议

MCP 服务

  1. 进入 MCP 服务 页面
  2. 点击 初始化 MCP 注册服务,自动完成 initialize 握手
  3. 浏览 9 个可用工具,查看每个工具的输入参数 Schema
  4. 选择工具并填写参数执行,查看 JSON 格式结果
  5. 也可以在 JSON-RPC 输入框中直接发送原始请求体

自动部署

  1. 进入 自动部署 页面
  2. 点击 新建配置,填写:
    • 部署名称
    • 选择目标服务器连接
    • 部署模式:目录部署(递归扫描上传)或 工件推送(选择文件)
    • 本地项目路径和远程目标路径
    • 排除模式(如 node_modules, .git, __pycache__ 等)
    • 部署前命令(如停止服务)
    • 部署后命令(如重启服务)
  3. 保存后点击 执行部署,实时查看部署日志
  4. 本地路径会自动记忆,下次可通过下拉快速选择(最多 20 条)
  5. 部署历史自动记录(最多 50 条),包含耗时、文件数、总字节数

CLI 打包上传

npm run deploy -- --local D:/projects/my-app --remote /opt/my-app --host 192.168.1.100 --user root --exclude node_modules .git dist

🧠 智能运维技能详解

1. 日志分析 (Log Analyzer)

属性 说明
功能 自动扫描指定日志文件,统计各类错误/警告/致命日志数量
检测项 ERROR 数量、WARN 数量、FATAL/CRITICAL 数量、最近 30 条错误详情
参数 log_path(日志路径)、pattern(正则过滤,可选)、tail_lines(扫描行数,默认 1000)
输出 总行数、各类日志计数与占比、错误严重程度分级建议

典型场景:线上服务报错后,快速定位 Top 错误类型和频率


2. 健康巡检 (Health Checker)

属性 说明
功能 对服务器进行全方位健康检查,自动分级并给出建议
模式 full(完整检查,6 项)、basic(基础检查,3 项)、custom
检测项 CPU 使用率、内存使用率、磁盘使用率、系统负载、网络连接状态、TOP 进程
阈值 CPU > 70% Warning / > 90% Critical;内存 > 75% Warning / > 90% Critical;磁盘 > 80% Warning / > 90% Critical
输出 逐项检测结果、综合严重程度(Info/Warning/Critical)、针对性优化建议

典型场景:定期巡检服务器,及时发现 CPU/内存/磁盘异常


3. 内存泄漏排查 (Memory Profiler)

属性 说明
功能 对指定进程进行多采样点 RSS 趋势分析,自动判定内存泄漏风险
参数 pid(进程ID)或 process_name(进程名)、duration_sec(采样时长,默认 60s)、sample_interval(采样间隔,默认 5s)
检测项 RSS 变化趋势、VSZ 变化、内存占比、连续增长检测
输出 各采样点 RSS/VSZ/%MEM 数据、最大连续增长次数、泄漏风险等级、优化建议

典型场景:Java/Node.js/Python 服务疑似内存泄漏时,定位增长趋势


4. 链路耗时分析 (Trace Analyzer)

属性 说明
功能 扫描服务日志,提取响应时间数据,统计性能指标,检测异常
参数 service_name(服务名称)、trace_id(可选,追踪特定链路)
检测项 服务存活状态、监听端口、日志大小、响应时间 avg/min/max、OOM 关键词、连接池耗尽关键词
输出 响应时间统计数据、性能等级判定、优化建议(慢查询/缓存/N+1 查询/外部 API 超时)

典型场景:服务响应变慢后,分析链路瓶颈和数据连接池状态


5. 压测优化建议 (Stress Test Advisor)

属性 说明
功能 检查系统级和网络级限制,结合目标并发量给出优化建议
参数 target_url(目标服务地址)、scenario(场景,可选)、concurrent(预期并发,默认 100)
检测项 ulimit 文件描述符/进程数限制、sysctl 网络参数(somaxconn/tcp_tw_reuse/端口范围)、数据库连接数
输出 系统限制检查报告、8 条通用优化方案、针对性调优建议

典型场景:压测前检查系统是否满足预期的并发要求


📡 MCP 工具列表

CC_tools 实现了完整的 JSON-RPC 2.0 协议,可作为 MCP (Model Context Protocol) Server 被 AI 客户端调用。

协议方法

方法 功能
initialize MCP 服务初始化握手
tools/list 列出所有可用工具及参数 Schema
tools/call 调用指定工具并传参执行
prompts/list 列出所有可用提示模板
resources/list 列出所有可用资源

9 个运维工具

工具名 功能 核心参数
ssh_exec 远程执行任意命令 command
log_analysis 日志模式分析 log_path, pattern, tail_lines
health_check 系统健康度巡检 check_type (full/basic)
memory_diagnosis 内存泄漏排查 pid/process_name, duration_sec
trace_analysis 链路耗时分析 service_name, trace_id
stress_test_advice 压测优化建议 target_url, concurrent
sftp_list 列出远程目录文件 path
sftp_read 读取远程文件内容 path
system_info 获取系统基本信息 -

与 AI 客户端集成示例

// 1. 初始化
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": { "client_name": "Claude Desktop", "protocol_version": "2024-11-05" }
}

// 2. 获取工具列表
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/list",
  "params": {}
}

// 3. 调用健康巡检工具
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": { "name": "health_check", "arguments": { "check_type": "full" } }
}

📋 Tauri 命令 API 参考

SSH 终端

命令 参数 返回 说明
ssh_connect config: SshConnectionConfig String (connection_id) 建立 SSH 连接
ssh_disconnect connection_id: String () 断开 SSH 连接
ssh_exec connection_id: String, command: String ExecResult 远程执行命令
ssh_open_shell connection_id: String String (channel_id) 打开 Shell 通道
ssh_shell_write channel_id: String, data: String () 向 Shell 写入数据
ssh_shell_read channel_id: String String 从 Shell 读取数据
ssh_shell_resize channel_id: String, cols: u32, rows: u32 () 调整终端窗口大小

SFTP 文件管理

命令 参数 返回 说明
sftp_list connection_id: String, path: String Vec<SftpFile> 列出目录文件
sftp_read_file connection_id: String, path: String String 读取文件内容
sftp_write_file connection_id: String, path: String, content: String () 写入文件内容
sftp_upload connection_id: String, local_path: String, remote_path: String SftpTransferProgress 上传文件
sftp_download connection_id: String, remote_path: String, local_path: String SftpTransferProgress 下载文件
sftp_delete connection_id: String, path: String () 删除文件/目录
sftp_create_dir connection_id: String, path: String () 创建目录
sftp_rename connection_id: String, old_path: String, new_path: String () 重命名

MCP 协议

命令 参数 返回 说明
mcp_request request: JsonRpcRequest JsonRpcResponse 处理 JSON-RPC 请求
mcp_get_tools - Vec<McpTool> 获取工具列表
mcp_get_prompts - Vec<McpPrompt> 获取提示模板

智能技能

命令 参数 返回 说明
skills_list - Vec<SkillInfo> 获取技能列表
skills_run_log_analyzer connection_id, log_path, pattern?, tail_lines? SkillResult 执行日志分析
skills_run_health_check connection_id, check_type? SkillResult 执行健康巡检
skills_run_memory_profiler connection_id, pid?, process_name?, duration_sec?, sample_interval? SkillResult 执行内存排查
skills_run_trace_analyzer connection_id, service_name, trace_id? SkillResult 执行链路分析
skills_run_stress_test_advisor connection_id, target_url, scenario?, concurrent? SkillResult 执行压测建议

部署管理

命令 参数 返回 说明
deploy_save_config config: DeployConfig () 保存/更新部署配置
deploy_list_configs - Vec<DeployConfig> 列出部署配置
deploy_delete_config config_id: String () 删除部署配置
deploy_execute config: DeployConfig DeployResult 执行部署(实时推送日志)
get_deploy_logs - Vec<DeployLogRecord> 获取部署历史日志
clear_deploy_logs - () 清除部署历史日志

配置管理

命令 参数 返回 说明
config_get - AppConfig 获取完整配置
config_save config: AppConfig () 保存完整配置
remember_path path: String Vec<String> 记忆本地路径
get_remembered_paths - Vec<String> 获取记忆的路径列表

🔧 配置说明

所有配置自动保存在系统配置目录下的 JSON 文件中,无需手动编辑:

操作系统 配置路径
Windows %APPDATA%\cc_tools\config.json
Linux ~/.config/cc_tools/config.json
macOS ~/Library/Application Support/cc_tools/config.json

配置项参考

配置项 类型 说明 默认值
connections SshConnectionConfig[] 已保存的 SSH 连接列表 []
deploy_configs DeployConfig[] 部署配置列表 []
remembered_paths String[] 记忆的本地路径(最多 20 条) []
deploy_logs DeployLogRecord[] 部署历史日志(最多 50 条) []
settings.theme String 主题模式 "dark"
settings.language String 界面语言 "zh"
settings.terminal_font_family String 终端字体 "Cascadia Code"
settings.terminal_font_size u32 终端字号 14
settings.default_port u16 默认 SSH 端口 22
settings.default_username String 默认用户名 "root"
settings.auto_reconnect bool 断线自动重连 false

📁 项目结构

AI_ssh-manger/
├── src/                          # React 前端 (TypeScript)
│   ├── main.tsx                  # 入口文件,挂载 React 到 #root
│   ├── App.tsx                   # 路由配置 (6 个页面 + 设置)
│   ├── components/
│   │   ├── Layout/
│   │   │   ├── Layout.tsx        # 侧边栏导航 (可折叠,6 个菜单项)
│   │   │   └── SettingsPage.tsx  # 设置页面 (主题/字体/连接配置)
│   │   ├── Dashboard/
│   │   │   └── DashboardPage.tsx # 控制台仪表盘 (统计面板+快捷入口)
│   │   ├── SSH/
│   │   │   ├── SSHPage.tsx       # SSH 页面容器
│   │   │   ├── ConnectionList.tsx # 连接管理列表 (增删改查)
│   │   │   └── Terminal.tsx      # xterm.js 终端模拟器
│   │   ├── SFTP/
│   │   │   └── SftpPage.tsx      # 文件浏览器 (目录树+文件列表)
│   │   ├── Skills/
│   │   │   └── SkillsPage.tsx    # 技能执行面板
│   │   ├── MCP/
│   │   │   └── McpPage.tsx       # MCP 交互面板
│   │   └── Deploy/
│   │       └── DeployPage.tsx    # 部署配置管理+执行
│   ├── stores/                   # Zustand 状态管理
│   │   ├── sshStore.ts           # SSH 连接/会话状态
│   │   ├── mcpStore.ts           # MCP 工具/请求状态
│   │   └── deployStore.ts        # 部署配置/路径记忆状态
│   ├── types/                    # TypeScript 类型定义
│   │   ├── ssh.ts                # SSH 连接/认证类型
│   │   ├── mcp.ts                # JSON-RPC/MCP 类型
│   │   ├── skills.ts             # 技能信息/结果类型
│   │   └── deploy.ts             # 部署配置/结果/日志类型
│   └── styles/
│       └── global.css            # Tokyo Night 暗色全局样式
│
├── src-tauri/                    # Rust 后端
│   ├── Cargo.toml                # Rust 依赖声明
│   ├── tauri.conf.json           # Tauri 配置 (窗口 1400x900, 最小 1024x680)
│   ├── build.rs                  # Tauri 构建脚本
│   ├── capabilities/
│   │   └── default.json          # 权限声明 (shell/fs/store/dialog/notification)
│   └── src/
│       ├── main.rs               # Rust 程序入口
│       ├── lib.rs                # Tauri 命令注册 (30+ commands), AppState 定义
│       ├── ssh/
│       │   ├── mod.rs            # 模块声明
│       │   ├── connection.rs     # SSH 连接配置与认证类型
│       │   ├── session.rs        # SSH 会话管理与 Shell 通道
│       │   └── sftp.rs           # SFTP 文件操作实现
│       ├── mcp/
│       │   ├── mod.rs            # 模块声明
│       │   ├── protocol.rs       # JSON-RPC 2.0 协议类型定义
│       │   ├── server.rs         # MCP 服务器实现
│       │   └── tools.rs          # 9 个 MCP 工具注册与 Schema
│       ├── skills/
│       │   ├── mod.rs            # 模块声明
│       │   ├── registry.rs       # 技能注册/信息定义/结果类型
│       │   ├── log_analyzer.rs   # 日志分析技能
│       │   ├── health_checker.rs # 健康巡检技能
│       │   ├── memory_profiler.rs # 内存泄漏排查技能
│       │   ├── trace_analyzer.rs # 链路耗时分析技能
│       │   └── stress_test_advisor.rs # 压测优化建议技能
│       ├── deploy/
│       │   ├── mod.rs            # 模块声明
│       │   └── auto_deploy.rs    # 自动部署执行逻辑
│       └── storage/
│           ├── mod.rs            # 模块声明
│           └── config.rs         # 配置持久化 (JSON)
│
├── scripts/
│   └── deploy.js                 # CLI 部署打包脚本 (tar 打包上传)
├── package.json                  # npm 依赖与脚本
├── vite.config.ts                # Vite 配置 (端口 1420)
├── tsconfig.json                 # TypeScript 配置
└── index.html                    # HTML 入口

🛠️ 技术栈

前端

技术 版本 用途
React 18.3 UI 框架
TypeScript 5.6 类型安全
Vite 6.0 构建工具
xterm.js 5.3 终端模拟器
xterm-addon-fit 0.8 终端自适应
xterm-addon-web-links 0.9 终端链接点击
Zustand 5.0 状态管理
React Router 6.28 前端路由
Lucide React 0.460 图标库
Recharts 2.15 图表库
Monaco Editor 4.6 代码编辑器
react-syntax-highlighter 15.6 代码高亮
Tauri API 2.2 桌面 API 桥接

后端

技术 版本 用途
Tauri 2.x 桌面应用框架
Rust 2021 edition 后端语言
ssh2 0.9 SSH 协议客户端
Tokio 1 (full) 异步运行时
serde / serde_json 1 序列化/反序列化
chrono 0.4 日期时间处理
uuid 1 (v4) UUID 生成
dirs 5 系统目录获取

Tauri 插件

插件 用途
tauri-plugin-shell Shell 命令执行
tauri-plugin-fs 文件系统访问
tauri-plugin-store 键值存储
tauri-plugin-dialog 原生对话框
tauri-plugin-notification 系统通知

🗺️ 路线图

  • SSH 终端多会话管理
  • SFTP 文件管理
  • MCP 协议与 9 个运维工具
  • 日志分析技能
  • 健康巡检技能
  • 内存泄漏排查技能
  • 链路耗时分析技能
  • 压测优化建议技能
  • 自动部署(目录/工件两种模式)
  • 配置持久化与路径记忆
  • 仪表盘总览
  • SSH 隧道/端口转发
  • 多标签终端切换
  • 终端会话录制与回放
  • 自定义技能脚本扩展
  • 部署回滚功能
  • macOS / Linux 安装包签名
  • 远程 Docker 容器管理
  • Prometheus / Grafana 监控集成
  • 多语言国际化(英文)

👥 贡献指南

欢迎提交 Issue 和 Pull Request!

开发流程

# 1. Fork 并克隆项目
git clone <your-fork-url>
cd AI_ssh-manger

# 2. 安装依赖
npm install

# 3. 启动开发模式
npm run tauri dev

# 4. 运行类型检查
npm run build
# build 脚本包含 tsc 类型检查 + vite 构建

# 5. 提交前运行完整构建验证
npm run tauri build

代码规范

  • 前端:遵循 TypeScript 严格模式,使用 React Hooks 编写函数组件
  • 后端:遵循 Rust 2021 edition 规范,使用 cargo fmtcargo clippy 检查
  • 提交信息:建议使用语义化提交格式

添加新技能

  1. src-tauri/src/skills/ 下创建新文件
  2. 实现分析逻辑,返回 SkillResult 结构体
  3. registry.rs 中注册技能信息
  4. lib.rs 中添加对应的 #[tauri::command] 并注册到 invoke_handler
  5. src/components/Skills/SkillsPage.tsx 中添加 UI 入口

❓ 常见问题 FAQ

Q: 支持哪些操作系统?

Windows 10/11、macOS 11+、Linux(支持 Wayland 和 X11)。Windows 需要安装 Microsoft Edge WebView2 运行时(Windows 11 已内置)。

Q: 需要安装 Python 或 Node.js 才能运行吗?

不需要。 编译后的 exe 是独立可执行文件,所有依赖(包括前端 dist/ 文件)都嵌入在二进制中。用户只需双击运行即可。

Q: SSH 密钥用什么格式?

支持 OpenSSH 格式的 RSA 和 ED25519 密钥。如果密钥有 passphrase,在添加连接时可以填写。

Q: 我的服务器密码/密钥存在哪里?安全吗?

所有配置(包括认证信息)仅存储在本地 JSON 配置文件中(%APPDATA%/cc_tools/config.json),不会上传到任何远程服务器。建议使用密钥认证代替密码以获得更高安全性。

Q: 如何让 AI 客户端(如 Claude Desktop)调用 CC_tools?

CC_tools 内置了 MCP Server,你需要在 AI 客户端的 MCP 配置中添加 CC_tools 的启动配置。具体配置方式请参考对应 AI 客户端的 MCP 集成文档。

Q: 压缩构建产物有多大?

Release 构建产物约 10-20 MB(因平台和编译选项而异),相比 Electron 应用(通常 100+ MB)轻量很多。

Q: 可以同时连接多台服务器吗?

可以。左侧连接列表支持添加多台服务器,点击即可切换会话,每个会话独立维护状态。


📄 License

MIT License.

Copyright (c) 2024 CC


CC_tools — 让服务器运维更智能、更高效 🚀

About

基于 Tauri 2.x + React 18 + TypeScript + Rust 构建的全能型服务器管理桌面应用,替代传统 SSH 客户端,内置 MCP 协议与智能运维技能系统,是你的云服务器上的 AI 运维机器人。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors