Show HN:我将一个 Python AI 代理和 Vue 仪表盘打包成了一个 Electron 应用
Hermes Desktop 是一个跨平台的桌面应用,它将 Python 运行时、hermes-agent(自改进 AI 代理)和 hermes-web-ui(Vue 3 + Koa 聊天仪表盘)打包到一个 Electron 应用中,用户无需单独安装 Python 或 Node。应用集成了 DingTalk 并通过 DeepSeek 驱动。
文章情报
要点
- 打包了 Python 运行时和 hermes-agent,实现无需依赖即可运行
- 使用 Electron 作为外壳,集成 hermes-web-ui 前端
- 支持 macOS、Windows 和 Linux 平台
- 不代码签名,首次运行需绕过安全提示
为什么重要
这条新闻值得关注,因为打包了 Python 运行时和 hermes-agent,实现无需依赖即可运行。
技术影响
可能影响模型选型、推理成本、产品能力和评测基准。
Hermes Desktop 是一个由 GitHub 用户 sir1st 开发的开源项目,旨在将复杂的 AI 代理环境简化为一个单一的、跨平台的桌面应用。该应用打包了 Python 运行时、Nous Research 的 Hermes Agent(一个自改进的 AI 代理)以及 EKKO Learn AI 的 hermes-web-ui(一个基于 Vue 3 和 Koa 的多平台聊天仪表盘),用户无需手动安装 Python 或 Node.js 即可使用。
应用架构方面,Electron 主进程会启动一个本地的 hermes-web-ui Koa 服务器(运行在 127.0.0.1:8648),该服务器通过 HERMES_BIN 环境变量调用打包的 Python hermes CLI。浏览器窗口加载该服务器页面,并通过预加载脚本注入认证令牌。Python 运行时使用 python-build-standalone 构建,hermes-agent 在构建时通过 pip 安装到该 Python 环境中。
Hermes Desktop 的安装方式非常简便,用户可以从 GitHub Releases 页面下载对应平台的安装包。目前支持 macOS(Apple Silicon 和 Intel)、Windows x64 以及 Linux(x64 和 arm64)。由于应用在 v0.x 阶段未进行代码签名,macOS 用户需要运行 xattr 命令移除 quarantine 属性,Windows 用户则需点击“更多信息”并选择“仍要运行”以绕过 SmartScreen 保护。
对于开发者,项目提供了完整的开发指南。克隆仓库时需要初始化子模块,然后运行 npm install 安装依赖。首次构建需要分别构建前端和 Python 环境,其中 npm run prepare:python 会下载 Python 并安装 hermes-agent,推荐使用 uv 工具以加速依赖解析。开发模式使用 npm run dev 启动 Electron。
打包发布由 GitHub Actions 自动化完成,在标签 vX.Y.Z 时触发。每个平台的任务构建对应的安装包并上传为工作流产物,最终由一个发布任务统一创建 Release,避免了 electron-builder 的并行草稿竞争。electron-updater 会在下次启动时自动检测更新。
项目目录结构清晰,主要包括 src/main(Electron 主进程)、src/preload(预加载脚本)、vendor/hermes-web-ui(前端子模块)、resources/python(Python 运行时,gitignored)以及多个构建脚本。版本方面,python-build-standalone 使用 20260510,Python 3.12.13,hermes-agent 0.14.0,hermes-web-ui 锁定子模块的 HEAD。
Hermes Desktop 本身采用 MIT 许可证,但打包的组件保留其上游许可证:hermes-agent 为 MIT,hermes-web-ui 为 BSL-1.1,python-build-standalone 为 Python 软件基金会许可证等。项目特别鸣谢了这些上游项目,并鼓励用户为它们加星。