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 在持续修复中。
安装:一行命令
| |
打开 PowerShell,粘贴回车。安装脚本会自动处理 Python 环境(通过 uv)、Node.js 和 Git Bash 的依赖。
Linux/macOS 用户原有的 curl 安装方式不变:
| |
为什么这件事值得说
在 PR #21561 合并之前,Windows 用户想用 Hermes,只有两条路:
- WSL2——能用,但你得懂 Linux,得装 WSL,得处理网络桥接,折腾门槛不低。
- 自己硬上——有人在 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
| 功能 | 原生 Windows | WSL2 |
|---|---|---|
| CLI / TUI | ✅ | ✅ |
| Gateway 消息网关 | ✅ | ✅ |
| 定时任务 | ✅ | ✅ |
| 浏览器自动化 | ✅ | ✅ |
| MCP 工具链 | ✅ | ✅ |
| Ollama 本地模型 | ✅ | ✅ |
| Web 管理面板 | ✅ | ✅ |
| 面板内嵌终端 | ❌ | ✅ |
| 开机自启 | ✅ (schtasks) | ✅ (systemd) |
除了面板内嵌终端这一个点,其他功能已经和 WSL2 平齐。
背后做了什么
这次合并不是简单加几个 if-else。CONTRIBUTING.md 里新增了 16 条跨平台兼容性规范,覆盖了你在 Windows 上能想到的每一个坑:
- 禁止使用
os.kill(pid, 0)(Windows 会抛 SystemError) - 禁止直接调用
wmic、ps、grep等 Unix 命令 fcntl/termios必须 ImportError 保护- 文件读取必须显式指定 UTF-8 编码
- 进程管理要用
CREATE_NEW_PROCESS_GROUP替代os.setsid - 路径必须用
pathlib.Path,不能硬编码斜杠 - 符号链接在 Windows 需要管理员权限
- OneDrive 重定向路径的兼容处理
- CRLF/LF 行尾符一致性
配套的 CI 检查脚本会在每个 PR 提交时自动扫描这些「Windows 地雷」,防止新代码引入兼容性问题。
如果你想试试
- 环境要求:Windows 10/11,PowerShell 5.1+
- 安装:一行命令搞定,安装脚本自带 Python 环境
- 配置模型:安装完成后运行
hermes setup,配置你的 API Key(支持智谱GLM、DeepSeek、通义千问等国内模型) - 启动:
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,但方向是对的。