Skip to content

axdlee/hermespanel

Repository files navigation

HermesPanel

HermesPanel

面向 hermes-agent 的桌面管理客户端
小白友好 · 现代设计 · 一站管理

Release CI Release Build

项目定位

HermesPanel 不是 Hermes 的替代品,也不是另起一套后端服务。

它的定位很明确:

  • 不修改 hermes-agent 源码
  • 不替代 hermes CLI 的协议和运行机制
  • 不接管 Hermes 的常驻运行模型
  • 只围绕本机 ~/.hermesconfig.yaml.envgateway_state.jsonstate.db、日志与 CLI 能力做桌面治理

更直接一点说,它想解决的是这类问题:

  • 新用户不想在终端、配置文件、日志目录之间来回跳
  • 熟练用户不想每次改模型、通道、Gateway、技能、插件都手敲命令
  • 诊断问题时,希望配置态、运行态、日志态能放在一个桌面应用里对照

核心功能

📊 仪表盘 (Dashboard)

一目了然的状态总览:

  • 系统运行状态(Gateway、AI 模型、技能数量)
  • 快捷操作入口(新对话、装技能、去配置、查诊断)
  • 推荐技能一键安装

💬 AI 对话 (Chat)

小白友好的流式对话体验:

  • 实时流式响应,边生成边显示
  • 支持 Claude、OpenAI、Google Gemini、OpenRouter、SiliconFlow 等多种 AI 模型
  • 自定义 API Base URL 和 API Key
  • 对话历史记录

📱 消息通道 (Channels)

配置多平台消息渠道:

  • Telegram - Bot Token + 频道配置
  • Discord - Bot Token + 频道 ID
  • Slack - Bot Token 配置
  • WhatsApp - 开关启用
  • 飞书、企微、钉钉通过 Gateway 配置

⚙️ 配置中心 (Config)

一站式配置管理:

  • AI 模型提供商分组配置(Claude、OpenAI、Google、OpenRouter、SiliconFlow、自定义)
  • 工具集、终端、记忆功能开关
  • API Key 安全输入(支持显示/隐藏切换)
  • 结构化保存,自动写回配置文件

🔌 Gateway 管理

网关服务可视化:

  • 服务启动/停止/重启
  • Gateway Token 配置
  • 运行状态实时监控

⚡ 技能管理 (Skills)

技能的完整生命周期:

  • 本地技能创建、编辑、删除
  • 技能导入(从 URL 或文件)
  • Markdown 格式编辑器
  • 技能详情查看

📋 会话历史 (Sessions)

对话记录追溯:

  • 会话列表浏览
  • 会话详情查看
  • 消息时间线展示

📝 记忆管理 (Memory)

AI 记忆文件管理:

  • 记忆文件列表(soul、user、session、knowledge 等)
  • Markdown 编辑器实时预览
  • 分屏编辑模式(编辑 + 预览)
  • 工具栏快捷按钮

⏰ 定时任务 (Cron)

可视化定时任务配置:

  • 预设时间选择(每天、每周、每小时)
  • 自定义 Cron 表达式生成器
  • 任务执行历史查看

📄 日志查看 (Logs)

实时日志监控:

  • 按日志类型筛选(gateway、hermes、cron 等)
  • 按级别筛选(INFO、WARN、ERROR)
  • 关键词搜索
  • 自动刷新

🔍 系统诊断 (Diagnostics)

一键问题排查:

  • 环境检测
  • 配置校验
  • 连通性测试
  • 诊断建议

📁 实例管理 (Profiles)

多实例配置:

  • 实例创建、切换、删除
  • 实例别名管理
  • 实例导入/导出

🔧 扩展管理 (Extensions)

插件与工具管理:

  • Tools 列表启用/禁用
  • Plugins 安装/卸载/更新
  • 扩展详情查看

为什么用 Tauri

  • 需要直接管理本机 ~/.hermes
  • 需要打开目录、定位文件、查看日志、触发本地命令
  • 需要打包成真正可安装、可分发的桌面应用
  • 需要保持对 Hermes 的低侵入,不重写 Hermes 本身

下载与安装

Release 已经准备好多平台自动构建:

  • macOS Apple Silicon
  • macOS Intel
  • Linux
  • Windows 标准安装包
  • Windows 完整包(内置离线 WebView2 安装器)

下载地址:

安装建议:

  • macOS 按芯片架构选择 Apple Silicon / Intel 对应版本
  • Windows 已安装 WebView2 时优先使用标准包
  • Windows 内网、离线或 WebView2 环境不稳定时使用 full

快速开始

我只是想先跑起来

npm ci
npm run tauri:dev

我想在提交前先对齐 GitHub CI

npm run check:ci

我想本地先做一遍桌面端打包

npm run tauri:build

本地开发

前置条件

  • Node.js 22+
  • Rust stable
  • 本机可执行 hermes
  • macOS 需要 Xcode Command Line Tools
  • Linux 打包需要 Tauri 依赖库
  • Windows 打包依赖 WebView2,离线场景可使用完整包工作流

安装依赖

npm ci

启动桌面端

npm run tauri:dev

常用命令

# 前端构建
npm run build

# 本地调试打包
npm run tauri:build:debug

# 前端 + Rust tests
npm run check

# 与 GitHub Actions 对齐的完整检查
npm run check:ci

GitHub Actions 与发布链路

仓库自带两条工作流:

  • .github/workflows/ci.yml

    • macOS / Linux / Windows 三平台检查
    • cargo fmt --check
    • cargo clippy -D warnings
    • cargo test
    • npm run build
  • .github/workflows/release.yml

    • 推送 v* 标签自动发布
    • 也支持手动触发 workflow_dispatch
    • 多平台 Tauri 打包
    • Windows 标准包与完整包双产物
    • 自动更新 Release Notes

发布触发方式:

git tag v0.1.0
git push origin v0.1.0

构建与发布排查

现象 常见原因 建议处理
cargo fmt --check 失败 Rust 文件格式未同步 先运行 cargo fmt --manifest-path src-tauri/Cargo.toml --all
cargo clippy -D warnings 失败 本地没提前跑严格 lint 先运行 npm run check:ci
Linux runner 构建失败 缺少 WebKit / GTK 依赖 参考 workflow 中的 apt 依赖列表
Windows 安装包启动异常 目标机缺少 WebView2 改用 Release 中的 Windows full
Release 上传失败 认证变量异常 确认 workflow 中 GH_TOKEN 已注入

项目结构

src/
  pages/                 页面组件(Dashboard、Chat、Config 等 15 个页面)
  components/
    ui/                  UI 组件库(Button、Card、Input、Badge 等)
    shared/              共享组件(Sidebar、MainLayout 等)
  lib/                   前端状态、API 封装、辅助逻辑
  stores/                Zustand 状态管理
  styles/                Tailwind CSS 样式

src-tauri/
  src/commands/          Tauri 命令入口
  src/application/       用例编排层
  src/infrastructure/    Hermes CLI / 文件 / SQLite / 日志封装
  tauri.conf.json        Tauri 打包配置

.github/workflows/
  ci.yml                 三平台检查
  release.yml            多平台发布

依赖方向:pages -> api -> commands -> application -> infrastructure

技术栈

类别 技术
前端框架 React 18 + TypeScript
UI 样式 Tailwind CSS + shadcn/ui 风格
状态管理 Zustand
图标 Lucide React
桌面框架 Tauri 2.x
后端语言 Rust

常见问题

1. 为什么 GitHub Actions 会失败

最常见的失败点:

  • Rust 文件未格式化,cargo fmt --check 失败
  • Clippy 在 GitHub 上按 -D warnings 执行
  • Linux runner 缺少 Tauri 依赖库

建议推送前先跑 npm run check:ci

2. 为什么有些动作仍然会调用 Hermes CLI

HermesPanel 的原则不是绕开 Hermes,而是把 CLI 能力桌面化、结构化、可视化。

  • 能结构化直写的,尽量直接在客户端内完成
  • 真正触及 Hermes 原生行为边界的,继续通过后端封装调用 CLI

3. macOS 截图脚本抓不到窗口

通常是权限问题,请确认终端已获得"屏幕与系统音频录制"权限。

License

MIT License - 详见 LICENSE 文件

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages