上次写 Hermes Windows 原生版还是上次的事。但那时候是预览版,用起来也确实能跑,但各种小毛病你懂的。
现在不一样了,官方终于发布了 Windows 原生正式版,这说明以后再也不用依赖 WSL 了,直接在 Windows 原生系统上快乐的养马了。
先说说正式版跟 Beta 比,变了什么
Desktop installer。 Beta 阶段唯一的安装方式是打开 PowerShell 贴命令,直接劝退非开发者。现在多了一个 .exe 安装程序,双击、下一步、完成,GUI 帮你搞定一切。装完之后 GUI 跟命令行共享同一套数据和配置,随时切换。
Gateway 不会再自杀了。 Beta 版有个离谱 bug:你跑 hermes gateway status 检查 gateway 在不在,它顺手把 gateway 杀了。原因是 Python 的 os.kill(pid, 0) 在 Windows 上会变成“给整个进程组发 Ctrl+C”。现在全换了,这个坑填上了。
/edit 终于能用了。 按 Ctrl-X Ctrl-E 想打开编辑器写长 prompt,Beta 版直接沉默。现在默认走 notepad,想换 VS Code 设个环境变量就行。
安装不再因为一次网络波动就失败。 以前 pip install .[all] 一个依赖拉不下来全崩,现在改成分层安装,自动降级。
新增 hermes doctor 和 hermes uninstall。 前者帮你排查问题(Chromium 没装上、依赖丢了),后者一行命令干净卸载。
好了,变化说完。下面是正片——怎么装、怎么配、怎么用。
安装教程
方式一:PowerShell 一行命令(推荐)
打开 PowerShell(或者 Windows Terminal),粘贴这一行:
iex (irm https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1)
然后等。整个过程大概几分钟,不需要管理员权限。
安装程序会依次帮你搞定这些事:
- 装
uv(Python 包管理器) - 用
uv装 Python 3.11——不需要你机器上已经有 Python - 装 Node.js 22(浏览器工具和 WhatsApp 桥接需要)
- 装 PortableGit(约 45MB,放在
%LOCALAPPDATA%\hermes\git下,不污染系统) - 克隆 Hermes 代码到
%LOCALAPPDATA%\hermes\hermes-agent - 创建虚拟环境并装依赖
- 把
hermes命令加到你的用户 PATH 里
跑完之后,关掉当前终端,重新打开一个。不然 PATH 不会刷新,hermes 命令会提示找不到。
验证一下装好了没:
Get-Command hermes
应该输出类似 C:\Users\<你的用户名>\AppData\Local\hermes\bin\hermes.cmd 的路径。
再试一下版本:
hermes --version
正常输出版本号就说明装好了。
如果装完立刻报
hermes: command not found,就是没开新终端。关掉重新开就行。急着用的话也可以临时跑& "$env:LOCALAPPDATA\hermes\bin\hermes.cmd"。
方式二:Desktop installer(适合不想碰命令行的)
去 Hermes 官网下载 Hermes Desktop,双击 .exe 安装。
首次启动时 GUI 会自动在后台跑 install.ps1,跟方式一做的事情完全一样。装完之后,桌面应用和命令行的 hermes 共享同一套安装和数据——你在 GUI 里配好模型,打开 PowerShell 敲 hermes chat 也能直接用。
这个方式适合谁?如果你不是开发者,不想学 PowerShell 是什么,或者帮朋友家人装——用这个。双击比贴命令友好太多了。
但是截止到发布这篇文章,无论是 Nous 官网还是 docs 文档中,我都没有找到桌面版的下载地址。。。。。。
安装参数(进阶)
如果你想自定义安装行为,用 scriptblock 形式传参数:
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1))) -Branch main -SkipSetup
常用的几个参数:
| 参数 | 作用 |
|---|---|
-Branch main |
指定克隆的分支 |
-Tag v0.14.0 |
固定到某个 git tag |
-NoVenv |
跳过虚拟环境创建(你自己管 Python) |
-SkipSetup |
跳过安装后的 hermes setup 向导 |
配置教程
安装完第一件事,跑初始设置向导:
hermes setup
这是一个交互式向导,会引导你做三件事:
1. 选模型和 Provider。 它列出一堆可用的模型提供商——OpenAI、Anthropic、OpenRouter、DeepSeek、本地 Ollama 等等。选你想要的,然后输入对应的 API Key。
API Key 会被存到 %USERPROFILE%\.hermes\.env 里:
OPENROUTER_API_KEY=sk-or-...
ANTHROPIC_API_KEY=sk-ant-...
以后想加别的 key,直接编辑这个文件就行,格式跟 Linux/macOS 上一模一样。
不要把 API Key 放在 Windows 系统环境变量里。除非你想让电脑上每个进程都能看到你的 key——你不想。
2. 选工具集。 它会问你要不要开浏览器工具、MCP 等。先按默认选,以后随时可以改。
3. 配消息网关(可选)。 如果你想在 微信、飞书、Discord 上跟 Hermes 聊天,这一步配 bot token。
如果你已经买了 Nous Portal 订阅,可以跳过手动配 API Key 的步骤:
hermes setup --portal
一个 OAuth 登录搞定模型和所有工具的 key。对 Windows 用户尤其省心——Windows 上配 API key 的摩擦一直比 macOS/Linux 大。
开始使用
配好了,开聊:
hermes chat
这就是最基础的用法——终端里的 AI 助手,能读你本地文件、跑命令、搜东西。
如果你想用 TUI(终端图形界面),加个 --tui:
hermes --tui
TUI 里有会话列表、多会话切换、斜杠命令面板,比纯 CLI 直观一些。
让 Hermes 开机自启
如果你接了 微信 或飞书,肯定想让 gateway 一直跑着——不然手机发消息没人回。
hermes gateway install
这会在 Windows 计划任务里注册一条登录自启任务,不需要管理员权限。你登录 Windows → gateway 自动启动,注销 → gateway 自动关闭。
管理 gateway 的几个常用命令:
hermes gateway status # 看看 gateway 在不在跑
hermes gateway start # 手动启动
hermes gateway stop # 手动停止
hermes gateway restart # 重启
hermes gateway uninstall # 移除自启
Ctrl+Enter 换行
在 hermes chat 里想敲多行 prompt,按 Ctrl+Enter 就能插换行。不用 Esc-Enter 了。
只支持 Windows Terminal 和 VS Code 内置终端。如果你用的是古早 cmd.exe,用 Esc Enter 代替,或者升级到 Windows Terminal(Windows 11 自带)。
打开编辑器写长 prompt
按 Ctrl-X Ctrl-E 或敲 /edit 可以打开外部编辑器写长 prompt。Windows 上默认走记事本——虽然简陋,但写完了关掉窗口,内容就回到 Hermes 里了。
想换成 VS Code:
$env:EDITOR = "code --wait"
那个 --wait 必须加——不加的话 VS Code 秒关,Hermes 拿到的是空内容。
要永久生效,把上面那行加到你的 PowerShell profile 里(notepad $PROFILE),或者在“系统属性 → 环境变量”里添加用户变量 EDITOR,值写 code --wait。
常见坑和解决办法
这些是我自己踩过的,再加上官方文档里列的几个高频问题。
中文乱码? 正常情况下 Hermes 会自动把控制台切成 UTF-8。如果你看到中文显示成 ?,检查一下有没有设过 HERMES_DISABLE_WINDOWS_UTF8=1——敲 Get-ChildItem env:HERMES_DISABLE_WINDOWS_UTF8 看看。如果没设但还是乱码,你用的可能是很老的 cmd.exe,换 Windows Terminal 解决。
Gateway 重启后不跑了? 跑 hermes gateway status 看看。如果 schtasks 注册了但没运行,可能是公司组策略拦了 ONLOGON 触发器。敲 schtasks /Query /TN HermesGateway /V /FO LIST 查失败原因。或者卸载后用 HERMES_GATEWAY_FORCE_STARTUP=1 环境变量重新装,会走 Startup 文件夹的回退方案。
浏览器工具超时? Chromium 是首次使用时自动装的,如果当时网络不好装失败了,跑 hermes doctor——它会告诉你问题在哪,并给出修复命令。大概率是跑一遍 npx playwright install chromium 就好。
运行工具时报 WinError 193: %1 is not a valid Win32 application? 你踩到了 shebang 脚本的坑。Hermes 内部命令解析依赖 .cmd 垫片,如果你手动指定了路径,确保用 .cmd 变体。比如用 npx.cmd 而不是 npx。
装完提示找不到 hermes 命令? 前面说过了——开新终端。安装程序改了用户 PATH,已打开的窗口不会刷新。
/edit 设了编辑器还是没反应? 你可能只在当前进程里设了 $env:EDITOR。要么关掉重开(如果你写进 profile 了),要么去系统属性里设用户环境变量。新开一个 PowerShell 窗口敲 echo $env:EDITOR 验证。
中文输入法的文件有编码问题? 如果你用某些中文输入法或老版本记事本编辑了 Hermes 的配置文件,文件可能被加了 BOM 头。大部分情况下 Hermes 能兼容,但 YAML 的折叠标量(description: >)里带 BOM 会静默炸掉 YAML 解析。用 VS Code 或新版本记事本重新保存为纯 UTF-8(不带 BOM)。
数据存在哪
知道这个有用——哪天想备份或迁移,知道去哪找。
| 路径 | 存的东西 |
|---|---|
%LOCALAPPDATA%\hermes\hermes-agent\ |
Git 代码 + 虚拟环境。删了重装就行,不心疼。 |
%LOCALAPPDATA%\hermes\bin\ |
hermes.cmd 命令入口 |
%USERPROFILE%\.hermes\ |
你的配置、API key、skill、会话记录、日志。重装不丢。 |
两个目录分离得很清楚:装环境的归装环境,存数据的归存数据。%LOCALAPPDATA%\hermes 可以随时删掉重装,%USERPROFILE%\.hermes 是你自己的东西。
想卸载的话:
hermes uninstall
这会删 schtasks 自启任务、快捷方式、hermes.cmd 入口、代码目录,但保留 %USERPROFILE%\.hermes——方便你重装不用重新配。
如果彻底不想要了,再手动删:
Remove-Item -Recurse -Force "$env:USERPROFILE\.hermes"
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\hermes"
Hermes Windows 原生版从 Beta 到正式,没有那种“大版本推翻重来”的戏剧性。它的进步是修修补补、填坑打磨——gateway 不再自杀、编辑器不再沉默、安装不因为一次网络波动就崩、卸载不用手动删文件夹。
这些东西不性感,但决定了你能不能把它当日常工具用,还是装完两天就删了。
上次写文章我说的是“先试试原生”。现在正式版了,还是这句话——但底气比以前足。