上次写 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 doctorhermes uninstall 前者帮你排查问题(Chromium 没装上、依赖丢了),后者一行命令干净卸载。

好了,变化说完。下面是正片——怎么装、怎么配、怎么用。


安装教程

方式一:PowerShell 一行命令(推荐)

打开 PowerShell(或者 Windows Terminal),粘贴这一行:

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

然后等。整个过程大概几分钟,不需要管理员权限。

安装程序会依次帮你搞定这些事:

  1. uv(Python 包管理器)
  2. uv 装 Python 3.11——不需要你机器上已经有 Python
  3. 装 Node.js 22(浏览器工具和 WhatsApp 桥接需要)
  4. 装 PortableGit(约 45MB,放在 %LOCALAPPDATA%\hermes\git 下,不污染系统)
  5. 克隆 Hermes 代码到 %LOCALAPPDATA%\hermes\hermes-agent
  6. 创建虚拟环境并装依赖
  7. 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 不再自杀、编辑器不再沉默、安装不因为一次网络波动就崩、卸载不用手动删文件夹。

这些东西不性感,但决定了你能不能把它当日常工具用,还是装完两天就删了。

上次写文章我说的是“先试试原生”。现在正式版了,还是这句话——但底气比以前足。