Hermes+微信,实现远程操控:小白保姆级教程
如果你第一次听说 Hermes,可以先把它理解成一个长期住在你自己电脑或服务器里的 AI 执行助手。
普通聊天机器人主要负责回答问题;Hermes 除了调用 AI 模型理解你的要求,还能在你授权的范围内使用这台机器上的文件、终端和其他工具。你可以让它整理文档、运行脚本、检查服务,也可以设置定时任务,让它到点自动执行,再把结果主动发给你。
Hermes 不会让 Codex 模型变得更聪明,也不是另一个 Codex。Codex 负责思考和生成结果,Hermes 负责接收消息、操作机器、后台运行和把结果送回来。 它解决的是“AI 必须等我打开电脑才能干活”的问题。
如果你只是偶尔在电脑前问问题、临时改一段代码,直接使用 ChatGPT 或 Codex 就够了。但如果你有一台长期在线的 Linux、Mac 或家用服务器,并且希望:
- 出门后也能从手机给它派任务;
- 不打开终端,也能检查文件、脚本和服务;
- 让日报、监控、整理等重复工作定时执行;
- 任务完成后,结果主动回到平时最常用的聊天软件;
那 Hermes 就有价值。
这也是我安装它的原因。机器在家里,人不总在电脑前;以前为了让它做一件小事,我得掏出 MacBook、打开终端、连接 SSH。现在我把 Hermes 装在远端 Linux 上,接入 openai-codex 和个人微信,只要在手机微信里发一句话,家里的机器就能开始干活。
这篇文章只讲一条能跑通的路径:安装 Hermes → 登录 Codex 订阅 → 连接微信 → 审批配对 → 发消息验收。 照着顺序做完,你就能直接在微信里给家里的 Linux 派任务。
本文核验日期:2026-09-07。实测版本为 Hermes Agent v0.21.0。模型名称和菜单文字可能随版本、账号变化。
先看懂整条链路
路径就是:微信把消息交给 Linux 上的 Hermes,Hermes 调用 Codex 和本机工具干活,再把结果发回微信。
开始前先准备好这些东西
这篇教程走的是“Mac 远程登录 Linux,再把 Linux 上的 Hermes 接入个人微信”这条路径。开始前确认你有:
- 一台能够长期联网的 Linux、macOS 或家用服务器;
- 这台机器的登录账号;如果是远端 Linux,还需要服务器地址和 SSH 登录权限;
- 一个可以正常使用 Codex 的 ChatGPT 账号;
- 一个个人微信账号;
- Linux 或 macOS 上已经安装 Git,可以用 git –version 检查。
SSH 可以理解成“通过终端远程操作另一台电脑”。如果你的 Hermes 就安装在当前 Mac 上,不需要执行本文的 SSH 登录命令。
本文不覆盖 Windows、Docker、NAS 套件、企业微信和微信群机器人。微信连接使用的是 iLink bot 身份,普通微信群通常无法可靠使用,最适合的入口是私聊。
安全提醒: 接入微信后,Hermes 可以在授权范围内读取文件和执行终端命令。建议使用普通 Linux 用户运行,不要直接使用 root;不要把 SSH 私钥、钱包助记词和生产环境密钥交给它;收到 /approve 请求时,先看清完整命令再决定是否批准。
先判断:我该用 Codex Remote,还是安装 Hermes?
如果你只是临时让家里的 Codex 改一段代码,直接使用 Codex Remote 更合适。官方入口更短,代码改动、测试结果和 diff 也更容易查看。
Hermes 更适合把家里的 Linux 变成一个常驻助手:它可以从微信接收任务,到点自动工作,并在任务结束后把结果主动送回来。这里的 openai-codex 是 Hermes 调用模型的 Provider(模型提供方),不是在微信里远程控制 Codex CLI。
- Codex Remote:适合临时远程写代码、查看 diff 和检查测试结果。
- Hermes + openai-codex:适合让机器长期在线,处理定时、后台和固定工作流。
- 两者可以同时使用:临时改代码用 Codex Remote,长期自动执行和微信通知用 Hermes。
一、在运行任务的机器上安装 Hermes
Hermes 官网首页就有终端安装命令。家里的 Linux 要负责执行任务,就把 Hermes 安装在这台 Linux 上。
先从 Mac 登录 Linux:
1 | ssh <用户名>@<服务器地址> |
例如用户名是 punk、服务器地址是 192.168.1.20,命令就是 ssh punk@192.168.1.20。第一次连接如果询问是否继续,确认地址无误后输入 yes;随后输入 Linux 用户密码。
进入 Linux 后,先确认 Git 可用:
1 | git --version |
能看到 Git 版本号,再执行官方安装命令。安装器会自动处理 Python、uv、Node.js 等主要依赖:
1 | curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash |
如果你直接安装在 macOS 上,把第二行换成:
1 | source ~/.zshrc |
最后检查路径和版本:
1 | command -v hermes |
能看到 Hermes 路径、版本号,并且 hermes doctor 没有阻止运行的错误,这一步就完成了。警告不一定代表安装失败,按终端给出的提示处理即可。
二、登录 Codex 订阅并选择模型
Provider 就是 Hermes 调用 AI 模型的渠道。这里选择 openai-codex,可以使用你的 ChatGPT/Codex 账号授权,不需要另外填写 OpenAI API Key。
在刚才那台 Linux 上运行:
1 | hermes model |
接下来按这个顺序选择:
- 选择 OpenAI,按 Enter。
- 选择 ChatGPT or Codex Subscription,按 Enter。
- 按终端提示打开登录链接,在浏览器中完成账号授权;浏览器可以开在你正在使用的 Mac 或手机上。
- 回到终端,选择一个可用模型。
完成后检查配置:
1 | hermes config get model |
重点看两项:Provider 是 openai-codex,并且模型名称不为空。模型名和我的截图不同也没关系,以你的账号列表为准。如果授权后仍看不到模型,先重新运行 hermes model,确认登录的是能够使用 Codex 的 ChatGPT 账号。
三、扫码连接个人微信
Gateway 是 Hermes 与微信之间常驻运行的消息服务:它负责收消息、把任务交给 Agent,再把结果发回微信。
继续在同一台 Linux 上运行:
1 | hermes gateway setup |
在列表里选择 Weixin。如果向导询问私聊访问策略,选择 pairing,不要选择 open。这样陌生用户第一次私聊只能拿到一次性配对码,经过你在终端批准后才能使用机器人。
终端出现二维码后,用微信扫码并在手机上确认。看到“微信连接成功”,说明账号凭据已经保存。这个连接的是独立的 iLink bot 身份,不是把你的普通微信账号完全交给 Hermes 控制。
然后把 Gateway 启动为后台服务:
1 | hermes gateway install |
hermes gateway status 显示正在运行,这一步就完成了。
如果 Hermes 装在远端 Linux 上,还要允许用户服务在退出 SSH 后继续运行:
1 | sudo loginctl enable-linger "$USER" |
如果当前账号没有 sudo 权限,需要让服务器管理员执行第一条命令。VPS 或无人值守主机也可以按官方文档安装系统级 Gateway,但不要同时安装用户级和系统级两个 Gateway。
以后配置发生变化,可以执行:
1 | hermes gateway restart |
四、批准第一次微信配对
先在微信里给 bot 发一句:
1 | hello |
第一次私聊时,bot 会说暂时不认识你,并返回一个 pairing code。
如果它直接回答了问题,没有返回 pairing code,说明当前私聊策略可能不是 pairing。不要继续开放使用,重新运行 hermes gateway setup,把 Weixin 的私聊访问策略改成 pairing。
回到运行 Hermes 的 Linux,执行:
1 | hermes pairing list |
把 <配对码> 换成微信里收到的真实字符。配对码是一次性的,不要发给别人。审批完成后,再发一次 hello;微信收到正常回复,这条链路就通了。
五、在微信里查看和切换模型
在微信里单独发送:
1 | /model |
图里只看三处:① 当前模型和 Provider;② 当前账号可选的模型;③ 切换模型和保存默认值的命令格式。
模型名以你自己的 /model 列表为准。
六、微信连上以后能做什么
1. 我现在就在用:读取邮件,生成日报
我现在跑的就是这条任务:每天 14:00,Hermes 只读取我指定的 AI Valley、TLDR 和 Every,提炼中文要点,再生成一条可以直接发 X/Twitter 的短推,最后把日报发回这个微信聊天。
这类任务不需要我每天打开邮箱,也不需要临时打开 Codex。定时任务到点运行,日报会自己出现在微信里。
这是连接微信之后的进阶案例,还需要另外配置邮箱读取工具和定时任务。本文只负责把 Hermes、Codex 与微信链路跑通,不展开邮箱接入。
2. 直接问问题和处理文字
你可以让它写作、翻译、摘要、整理资料、解释代码。比如:
1 | 把下面这段素材整理成 5 条 X 草稿。每条包含标题和正文,不要补充素材里没有的事实。 |
3. 操作远端 Linux 上的文件
Hermes 运行在哪台机器,就能使用那台机器上已经开放给它的文件和工具。比如:
1 | 读取 /home/punk/notes/ 里的 Markdown 文件,生成一份 summary.md,并告诉我新建了哪个文件。 |
4. 执行终端任务
你可以让它查看服务状态、运行脚本、整理日志或检查项目。碰到需要确认的命令,Hermes 会在微信里等你回复 /approve。
1 | 检查 /home/punk/project/ 的 Git 状态和最近一次测试结果,只汇报,不修改文件。 |
5. 处理图片、文件和网页任务
微信可以把图片、文件和语音交给 Hermes。网页搜索、浏览器、图片生成、TTS 和 Skills 能否使用,取决于这台机器已经安装并配置了哪些工具。
七、微信里最常用的命令
下面这张图覆盖了我在 v0.21.0 中最常用的操作。Hermes 的命令会随版本变化,看不确定时优先发送 /help 获取当前版本的命令列表;如果你的版本支持 /commands,也可以使用。
/bg 适合耗时任务。例如:
1 | /bg 检查 /home/punk/project/ 的测试结果和最近 20 条 Git 提交,完成后给我一份中文摘要。 |
任务启动后,你可以继续在微信里聊天。后台任务完成或失败时,结果会自动发回当前聊天。如果 /help 返回的列表中包含 /agents,可以用它查看任务;没有这个命令时直接等待结果即可。
/approve 只在 Hermes 明确提示“有命令等待批准”时使用。第一次绑定微信的 pairing code,仍然要在 Linux 终端执行 hermes pairing approve weixin <配对码>,两者不要混淆。
八、做一次完整验收
不要收到一句 hello 回复就结束。按下面顺序测试,确认模型、工具权限和后台常驻都正常。
先在微信里发送:
1 | /status |
确认返回了当前会话、模型和 Provider 信息。然后发送一个只读任务:
1 | 只查看当前机器的系统类型和当前目录,不要修改任何文件。 |
确认它能返回机器信息,而且没有修改文件。最后退出 SSH,等待一分钟,再从微信发送一次 hello。仍能收到回复,才说明 Gateway 在无人值守状态下可以继续运行。
九、几个常见问题
终端提示 hermes: command not found
重新加载当前 shell:
1 | source ~/.bashrc # Linux |
gateway setup 里找不到 Weixin
先补齐消息适配器,再重新运行配置向导:
1 | cd ~/.hermes/hermes-agent |
Gateway 正在运行,但微信没有回复
按顺序执行:
1 | hermes gateway status |
然后重新运行 hermes gateway setup,确认 Weixin 账号仍然有效,私聊访问策略是 pairing。如果日志提示缺少 WEIXIN_ACCOUNT_ID 或 WEIXIN_TOKEN,重新扫码登录,让向导再次保存账号凭据。
二维码过期或扫码后没有连接成功
二维码会过期。退出当前向导,重新运行:
1 | hermes gateway setup |
如果终端无法显示二维码,先安装 messaging 扩展,或者打开终端给出的二维码 URL。
退出 SSH 后,微信就不回复了
重新连接 Linux,执行:
1 | sudo loginctl enable-linger "$USER" |
这会允许用户级 Gateway 在 SSH 退出后继续运行。
提示另一个 Gateway 正在使用当前微信 token
同一个微信 token 同时只能由一个 Gateway 使用。检查是否在其他终端、服务或机器上启动了相同账号,停止重复实例后再启动当前 Gateway。
Codex 登录失效或模型不可用
重新完成账号授权,并重启 Gateway:
1 | hermes model |
模型名称可能随账号和版本变化,以 hermes model 和微信 /model 返回的列表为准。
微信一直说不认识你
重新发一句 hello 获取新的 pairing code,然后再次执行:
1 | hermes pairing list |
报错信息看不懂,不知道从哪里查
先运行统一诊断:
1 | hermes doctor |
它会检查安装方式、环境和缺失依赖。仍然无法解决时,把 hermes doctor 的结果和 Gateway 日志一起提供给排查人员,但先删除其中可能出现的 token、账号和服务器地址。








