Windows 原生支持来了:Hermes Agent 不再只属于 Linux/macOS

Hermes Agent 正式支持 Windows 原生运行,一行 PowerShell 命令即可安装,无需 WSL 或虚拟机。PR #21561 新增 7675 行代码,系统性修复 1100+ Windows 相关 issue,CLI、Gateway、定时任务、浏览器自动化等功能全部跑通。

Windows 原生支持,来了

2026年5月8日,一个 255 个文件、新增 7675 行代码的 PR 被合并进 Hermes Agent 主分支。

PR #21561,标题很简单:「feat(windows): native Windows support (early beta)」

从这一天起,Hermes 不再只属于 Linux/macOS 用户。你可以直接在 PowerShell 里一行命令装好,不需要 WSL,不需要虚拟机,不需要任何 Linux 基础。

先说结论:能用了,但还早

目前的状态是** Early Beta**——官方自己标的。什么意思?

**能用的:**CLI 终端、Gateway 消息网关、定时任务、浏览器自动化、MCP 工具链、Ollama 本地模型对接、Web 管理面板,这些全部在原生 Windows 上跑通了。

**还不行的:**Web 面板里的嵌入式终端(需要 POSIX PTY,Windows 暂不支持);另外还有一些路径编码、进程管理的小 bug 在持续修复中。

安装:一行命令

1
irm https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1 | iex

打开 PowerShell,粘贴回车。安装脚本会自动处理 Python 环境(通过 uv)、Node.js 和 Git Bash 的依赖。

Linux/macOS 用户原有的 curl 安装方式不变:

1
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

为什么这件事值得说

在 PR #21561 合并之前,Windows 用户想用 Hermes,只有两条路:

  1. WSL2——能用,但你得懂 Linux,得装 WSL,得处理网络桥接,折腾门槛不低。
  2. 自己硬上——有人在 Windows 直接跑,但到处报错:fcntl 导入失败、GBK 编码崩溃、进程探测 OSError……体验一言难尽。

GitHub 上与 Windows 相关的 issue 超过 1100 个。排在前面的全是:os.kill(pid, 0) 在 Windows 上抛 SystemError、终端工具输出为空、.env 文件编码损坏、cp1252 导致 UnicodeEncodeError……

说白了,Hermes 之前是按 POSIX 标准写的,Windows 是个「二等公民」。

这次合并把这些问题做了系统性的修复:

  • 进程管理:重写了 Windows 进程检测逻辑,用 kernel32.OpenProcess 替代了 POSIX 信号量探测
  • 路径处理:新增路径归一化函数,统一处理反斜杠、驱动器号、WSL 路径互转
  • 编码问题:全局强制 UTF-8 输出,解决 cp1252/GBK 崩溃
  • 安装体验:PowerShell 一键安装器,自动绑定 Python + Node.js + Git Bash
  • CI 门禁:新增 check-windows-footguns.py,每个 PR 都自动检测 Windows 兼容性问题

功能对比:原生 Windows vs WSL2

功能原生 WindowsWSL2
CLI / TUI
Gateway 消息网关
定时任务
浏览器自动化
MCP 工具链
Ollama 本地模型
Web 管理面板
面板内嵌终端
开机自启✅ (schtasks)✅ (systemd)

除了面板内嵌终端这一个点,其他功能已经和 WSL2 平齐。

背后做了什么

这次合并不是简单加几个 if-else。CONTRIBUTING.md 里新增了 16 条跨平台兼容性规范,覆盖了你在 Windows 上能想到的每一个坑:

  • 禁止使用 os.kill(pid, 0)(Windows 会抛 SystemError)
  • 禁止直接调用 wmicpsgrep 等 Unix 命令
  • fcntl/termios 必须 ImportError 保护
  • 文件读取必须显式指定 UTF-8 编码
  • 进程管理要用 CREATE_NEW_PROCESS_GROUP 替代 os.setsid
  • 路径必须用 pathlib.Path,不能硬编码斜杠
  • 符号链接在 Windows 需要管理员权限
  • OneDrive 重定向路径的兼容处理
  • CRLF/LF 行尾符一致性

配套的 CI 检查脚本会在每个 PR 提交时自动扫描这些「Windows 地雷」,防止新代码引入兼容性问题。

如果你想试试

  1. 环境要求:Windows 10/11,PowerShell 5.1+
  2. 安装:一行命令搞定,安装脚本自带 Python 环境
  3. 配置模型:安装完成后运行 hermes setup,配置你的 API Key(支持智谱GLM、DeepSeek、通义千问等国内模型)
  4. 启动hermes 回车,进入交互式终端

遇到问题可以直接去 GitHub 搜 issue,1100 多个 Windows 相关 issue 说明社区很活跃,维护者在密集修复。

值得关注的信号

几个细节说明这次不是玩票:

  • 创始人亲自提交:PR #21561 的合并者是 @teknium1(Nous Research 创始人),不是随便一个社区贡献者
  • 文档同步上线:README 首页直接加了 Windows 安装入口,文档站新增了完整的 Windows 专属页面
  • 安装脚本锁定:CONTRIBUTING.md 要求 install.sh 和 install.ps1 必须同步更新,不是加完就不管
  • 社区参与度高:合并当天就有多个新 issue 和 PR 提交,说明已经有用户在原生 Windows 上实际使用了

一句话总结

Windows 原生支持从「完全不能用」变成了「能用但还粗糙」。对 Windows 用户来说,门槛从「先学 Linux」降到了「一行命令安装」。对项目来说,用户池一下子从 Linux/macOS 开发者扩展到了全球最大的桌面操作系统用户群。

Beta 就是 Beta,但方向是对的。