🤖HermesBlog
Hermes 消息平台接入 · 第22篇2026/8/9· Easy Understand Hermes Agent

用手机遥控你的 Hermes——ntfy 接入指南

Hermes 消息平台接入第22篇:ntfy。极简推送服务接入。

ntfy 接入:公共信箱传呼机

用手机遥控你的 Hermes——ntfy 接入指南

你有没有想过,出门在外也能随时给家里的 Hermes 派活?比如让它查个邮件、跑个定时任务,然后结果直接推到你手机上?ntfy 就是干这个的——一个超轻量的 HTTP 推送服务,不需要装 SDK、不需要跑守护进程,手机装个 App 就能收消息。

为啥选 ntfy?

ntfy 的公共服务器 ntfy.sh 免费就能用,当然你也可以自己搭一个。它的原理很简单:订阅一个主题(topic),往这个主题发消息,所有订阅者都能收到推送。Hermes 接入后,你从手机发条消息给 agent,回复会直接变成手机通知弹出来。

准备工作

只需要三样东西:

  • 一个主题名,随便起个不太容易撞车的字符串,比如 hermes-myname-2026
  • 手机装好 ntfy App,并订阅上面那个主题
  • (可选)自建 ntfy 服务器,或者注册个 ntfy.sh 账号拿 token

配置 Hermes

最简单的办法是跑向导:

hermes gateway setup

ntfy,跟着提示走就行。

也可以手动改环境变量,编辑 ~/.hermes/.env

NTFY_TOPIC=hermes-myname-2026
NTFY_ALLOWED_USERS=hermes-myname-2026
NTFY_HOME_CHANNEL=hermes-myname-2026

核心变量就这几个:

变量 必填 说明
NTFY_TOPIC 订阅的主题(接收消息)
NTFY_SERVER_URL 服务器地址,默认 https://ntfy.sh
NTFY_TOKEN 访问令牌,私有主题需要
NTFY_ALLOWED_USERS 推荐 允许的用户列表,见下文
NTFY_HOME_CHANNEL 定时任务默认推送目标

重要:先搞懂身份模型

ntfy 没有真正的用户认证,消息里的 title 字段谁都能伪造。所以 Hermes 的适配器不用 title 做鉴权,而是把主题名本身当作身份——所有发到该主题的消息,都视为来自同一个用户。

这意味着:任何知道主题名的人都能跟你的 agent 对话。要建立真正的信任边界,有三个办法:

  1. 自建 ntfy,用访问控制锁住主题
  2. 用 ntfy.sh 的保留主题(需要账号),配合 NTFY_TOKEN 保护
  3. 起一个超长且难猜的主题名(比如 hermes-7d4f9c8b-2026),把它当共享密钥

不管哪种方式,敏感数据别走 ntfy,除非主题有访问控制。

快速上手:手机遥控 agent

  1. 定个主题名:hermes-myname-2026
  2. 手机装 ntfy App,点 +,输入主题名
  3. 在服务器上执行:
echo 'NTFY_TOPIC=hermes-myname-2026' >> ~/.hermes/.env
echo 'NTFY_ALLOWED_USERS=hermes-myname-2026' >> ~/.hermes/.env
hermes gateway restart
  1. 从 ntfy App 发条消息给主题,agent 的回复会以推送通知的形式弹回来。

搭配定时任务

设置了 NTFY_HOME_CHANNEL 后,cron 任务可以直接推送到 ntfy:

cronjob(
    action="create",
    schedule="every 1h",
    deliver="ntfy",
    prompt="Check for alerts and summarise."
)

也可以从 shell 脚本里用 hermes send 指定主题:

hermes send ntfy:alerts-channel "Done!"

自建 ntfy 服务器

想要完全掌控?Docker 一行搞定:

docker run -p 80:80 -it binwiederhier/ntfy serve

然后让 Hermes 指向它:

NTFY_SERVER_URL=https://ntfy.mydomain.com
NTFY_TOPIC=hermes
NTFY_TOKEN=tk_abc123

自建的好处是:有访问控制、消息持久化、支持附件和 emoji 标签。

纯推送模式(单向通知)

如果你只想让 Hermes 往外推通知(比如定时摘要、告警),不想接收手机发来的消息,那就设置 NTFY_TOPICNTFY_PUBLISH_TOPIC 为同一个值,别设置 NTFY_ALLOWED_USERS。没有白名单,agent 就不会响应任何入站消息——手机只收推送,对话是单向的。

小贴士:Markdown 格式

想让回复在手机上显示得更漂亮?设置 NTFY_MARKDOWN=true,agent 的回复就会带上 X-Markdown 头,ntfy App 会渲染粗体、列表、代码块等格式。


ntfy 接入就这么简单——没有繁琐的依赖,不用写一行代码,手机一装 App,你的 Hermes 就随身携带了。快去试试吧!

📖 官方文档

本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/messaging/ntfy