@wangdefou: https://x.com/wangdefou/status/2077736785611026799
摘要
这是一篇详细介绍如何利用 Grok CLI 和 Hermes Agent 搭建 X/Twitter 热帖监控工具的教程,从安装依赖到编写脚本、配置定时任务,最终通过 Telegram 推送提醒。
查看缓存全文
缓存时间: 2026/07/17 02:26
不用 X API,我用 Grok + Hermes 做了一个热帖盯梢器
先说一句大白话:这套东西不是什么高科技监控系统,就是一个不会累的助理,替你 24 小时盯着一份 X 账号名单,看到“有点东西“的帖子就发条 Telegram 提醒你,没动静就闭嘴,不打扰你。
它干的活,说穿了就这一条流水线:
text你给一份 X/Twitter 账号名单 -> 本机的 Grok 定时去扫最近的热帖 -> 只留浏览量过线的新帖 -> 提醒过的不再重复 -> 有货,发 Telegram -> 没货,一声不吭
这套方案就三块积木,缺一不可:
-
Grok 会员 / 权限 —— 让你电脑上的 grok 命令能联网、能看得到 X/Twitter 的内容。
-
Grok CLI —— 把 Grok 搬进终端,脚本才能调用它。
-
Hermes Agent Cron —— 定时工,负责按点跑脚本、把结果送到 Telegram。
下面从零开始,一步一步来。不用懂原理,跟着敲就行;每一步我都会告诉你“敲完应该看到什么“,对上了就往下走。
一、开工前,先备齐四样东西
1. 一台不关机的电脑
这不是矫情,是硬道理:定时任务是在你自己机器上跑的,机器一关、网一断,它就停摆。 所以你需要一台平时开着的:
-
macOS 台式机 / Mac mini;
-
Linux VPS;
-
或者任何一台你习惯不关机的电脑。
笔记本合盖睡觉、晚上关机的,就别指望它半夜替你盯帖了。
2. 装好 Hermes Agent
先检查一下你装没装、跑没跑:
bashhermes –version hermes gateway status hermes cron status
看到这样的,就是好状态:
textGateway is running cron jobs will fire automatically
还没装?官方仓库在 https://github.com/NousResearch/hermes-agent,文档在 https://hermes-agent.nousresearch.com/docs。一行命令搞定:
bashcurl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
这脚本会自动把依赖、仓库、hermes 命令都装好。或者直接用 PyPI:
bashpip install hermes-agent && hermes
装完至少要把 Telegram Gateway 配好——这是提醒的出口,不配好,后面盯到再多热帖也发不出来。
3. 一个能用的 Grok 账号
说清楚一件事:你需要的是能真正调用高级 Grok 的账号,不是随便注册个号就行。两条路,挑一条:
路线 A:直接买 xAI / Grok 官方会员
适合“我就是想用 Grok“的人。
-
打开 https://grok.com/ 或 https://x.ai/;
-
注册 / 登录 xAI 账号;
-
开通能用高级模型的会员(比如 SuperGrok 之类的方案);
-
在网页上跟 Grok 聊两句、让它联网搜一下,确认真的能用。
路线 B:靠 X/Twitter 的 Premium+ 蹭 Grok
适合本来就天天泡在 X 上的人。
-
打开 https://x.com/;
-
登录你的 X 号;
-
进 Premium / Premium+ 订阅页;
-
开通带高级 Grok 权限的档位,一般是 Premium+;
-
在 X 里点开 Grok,确认能正常对话。
一句实在话:X / Grok 的会员权益经常变,别信我这里写的档位名,以你打开页面时看到的为准。而且配置之前,务必先确认——网页端的 Grok 你自己能用。网页都用不了,命令行更别提。
4. 装好 Git / Python,macOS 再加个 Homebrew
检查:
bashgit –version python3 –version
macOS 的话,Homebrew 建议装上,后面装 Grok CLI 要用:
bash/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
二、把 Grok 搬进终端(装 Grok CLI)
xAI 官方 CLI 叫 Grok Build,官方页面 https://x.ai/cli,文档 https://docs.x.ai/build。
首选:官方一行装完(macOS / Linux 通用)
bashcurl -fsSL https://x.ai/cli/install.sh | bash
Windows(PowerShell)用这个:
powershellirm https://x.ai/cli/install.ps1 | iex
macOS 备选:Homebrew
bashbrew install –cask grok-build
装完验一下货:
bashcommand -v grok grok –version grok –help
看到类似这样,就成了:
text/opt/homebrew/bin/grok grok 0.x.x Grok Build TUI
提醒:社区里有几个同名的非官方 grok-cli(npm、第三方仓库那种),不是 xAI 官方的东西。你要是以前装过,先 which grok 看一眼跑的是不是官方 Grok Build,别装错了还以为是自己配置的问题。
三、让 CLI 认得你(登录 Grok)
装好只是第一步,还得让它知道“你是谁、有没有权限“。
方式 1:有屏幕的电脑,浏览器登录
bashgrok login –oauth
它一般会自动弹出浏览器,你照着提示登录 Grok / xAI / X 账号、点授权就行。
登录完检查一下:
bashgrok models
看到类似这样,说明它认你了:
textYou are logged in with grok.com. Default model: grok-4.5 Available models:
- grok-4.5
- grok-composer-2.5-fast
方式 2:服务器没屏幕,用验证码登录
机器上没浏览器(比如纯 VPS),试这个:
bashgrok login –device-auth
或者:
bashgrok login –device-code
它会给你一个网址加一串验证码,你复制到自己手机/电脑的浏览器里完成授权就行。
最后,跑个最小测试确认它真活着
bashgrok –single ‘只回复 OK’ –max-turns 1
能吐出一个 OK,说明 CLI 通了。
再测一下 JSON 输出(脚本靠这个吃饭):
bashgrok –single ‘输出 JSON:{“ok”: true}’ –output-format json –max-turns 1
四、写一份“盯谁“的名单
新建一个名单文件:
bashmkdir -p “HOME/Desktop" nano "HOME/Desktop/x_watchlist.md”
填成这样:
markdown# X 监测名单
| 序号 | 名称 | Handle | 链接 |
|---|---|---|---|
| 1 | 宝玉 | @dotey | https://x.com/dotey |
| 2 | 示例账号 | @example | https://x.com/example |
脚本只认 @handle,所以格式随你排,只要每行有个 @xxx 就能被抓到。
别贪多:第一次先放 5-10 个号试水;跑顺了再慢慢加到 50-100 个。名单一口气塞太满,Grok 容易扫超时,反而什么都盯不到。稳,比多重要。
五、装上这个 Skill
把 Skill 装进 Hermes 的 skills 目录。推荐直接从 GitHub 拉,以后更新也方便。
首选:git clone
bashmkdir -p ~/.hermes/skills/social-media
git clone https://github.com/wangdefou-dev/df-grok-x-watch-cron.git
~/.hermes/skills/social-media/grok-x-watch-cron
以后想更新,进目录 git pull 就行:
bashcd ~/.hermes/skills/social-media/grok-x-watch-cron && git pull
备选:解压分享包
要是别人直接甩给你一个 grok-x-watch-cron.tar.gz:
bashmkdir -p ~/.hermes/skills/social-media tar -xzf grok-x-watch-cron.tar.gz -C ~/.hermes/skills/social-media
检查解出来了没
bashls ~/.hermes/skills/social-media/grok-x-watch-cron
看到这几样,就对了:
textSKILL.md scripts/ templates/ references/
六、把通用脚本放到位
Skill 里带了一个通用脚本,把它复制到 Hermes 的 scripts 目录:
bashmkdir -p ~/.hermes/scripts cp ~/.hermes/skills/social-media/grok-x-watch-cron/scripts/grok_x_watch.py ~/.hermes/scripts/grok_x_watch.py chmod +x ~/.hermes/scripts/grok_x_watch.py
顺手做个语法检查,确认文件没在传输中损坏:
bashpython3 -m py_compile ~/.hermes/scripts/grok_x_watch.py
没有任何输出,就是一切正常(这类检查是“报错才说话“)。
七、写一个只属于你的配置文件
记住一条规矩:别去动上一步那个通用脚本。 那是大家共用的引擎,你只需要写一个自己的小包装(wrapper),把你的路径、阈值、标题填进去。以后换机器、发给朋友,这个引擎原封不动,各人改各人的包装就好。
新建:
bashnano ~/.hermes/scripts/my_x_watch.sh
写入(每一行都有注释,看着填):
bash#!/usr/bin/env bash set -euo pipefail
你的 X 账号名单文件
export GROK_X_WATCH_SOURCE_FILE=“$HOME/Desktop/x_watchlist.md”
每次运行的完整报告存哪里
export GROK_X_WATCH_RESULTS_DIR=“$HOME/Desktop/X监测结果”
去重记录:记下已经提醒过的 tweet URL,避免重复轰炸你
export GROK_X_WATCH_STATE_FILE=“$HOME/.hermes/state/x_watch_seen.json”
运行日志
export GROK_X_WATCH_LOG_FILE=“$HOME/.hermes/logs/x_watch.log”
Telegram 提醒的标题
export GROK_X_WATCH_TITLE=“X 热帖提醒”
Grok 命令名。如果你的命令不叫 grok,在这里改
export GROK_CLI=“grok”
浏览量阈值:只提醒超过这个数的帖子(先设保守点)
export VIEW_THRESHOLD=“2000”
时间窗口:会写进给 Grok 的提示词
export RECENT_WINDOW=“最近 2 小时”
单次运行超时。Hermes cron 有硬上限,建议压到 180 秒以下
export GROK_WATCH_TIMEOUT=“170”
exec python3 “$HOME/.hermes/scripts/grok_x_watch.py”
存好加个执行权限:
bashchmod +x ~/.hermes/scripts/my_x_watch.sh
八、先手动跑一遍,别急着上定时
在交给定时工之前,自己先踩一脚,看它到底能不能动。
1. 只测前 5 个号
bashWATCH_LIMIT=5 ~/.hermes/scripts/my_x_watch.sh
跑完会是三种结果之一,对号入座:
情况 A:什么都没输出
这不是出错,这是正常的,意思是“最近没有够格的新帖“。想确认它确实跑过了,看看报告文件:
bashls -lt “$HOME/Desktop/X监测结果” | head
情况 B:吐出一段提醒
恭喜,它盯到货了。大概长这样:
textX 热帖提醒(>2000 浏览) 检测时间:2026-xx-xx xx:xx
- 作者 @handle|12,345 浏览|2026-xx-xxTxx:xx:xxZ 帖子正文… 看点:为什么值得关注 https://x.com/handle/status/1234567890
情况 C:报错了
别慌,先看日志:
bashtail -80 ~/.hermes/logs/x_watch.log
十有八九是这几个原因,一个个排:
-
Grok CLI 没登录;
-
GROK_X_WATCH_SOURCE_FILE 路径填错了;
-
名单文件里根本没有 @handle;
-
Grok 网络慢、超时了;
-
当前账号的 Grok 权限不够。
2. 小名单没问题了,再跑全量
bash~/.hermes/scripts/my_x_watch.sh
名单要是很长,等个 1-3 分钟很正常,别以为它卡死了。
九、交给定时工(创建 Hermes 定时任务)
手动能跑通,现在让它自己按点跑。
推荐:每小时一次
bashhermes cron create ‘every 60m’
–name ‘X 热帖监测(Grok CLI)’
–script my_x_watch.sh
–no-agent
–deliver telegram
如果你的 Hermes 版本不认这些参数,就走交互式,它会一步步问你:
bashhermes cron create ‘every 60m’
照着填:
-
name:X 热帖监测(Grok CLI)
-
script:my_x_watch.sh
-
no_agent:true
-
deliver:telegram
也可以直接让 Hermes Agent 帮你建,效果等价:
pythoncronjob( action=“create”, name=“X 热帖监测(Grok CLI)”, schedule=“every 60m”, prompt=“Run local Grok X watch script. Empty stdout means no alert.”, script=“my_x_watch.sh”, no_agent=True, deliver=“telegram”, enabled_toolsets=[“terminal”, “file”], )
十、确认它真的会按点跑
建完别急着走,确认定时工上岗了。
看任务列表:
bashhermes cron list –all
看运行状态:
bashhermes cron status
看到这样就踏实了:
textGateway is running — cron jobs will fire automatically Next run: …
等不及下一个整点?手动催它跑一次:
bashhermes cron run <job_id>
<job_id> 从上面 hermes cron list –all 里复制过来。
十一、它有时候不发消息,是坏了吗?——不是,是故意的
这点特别容易让人误会,单独说清楚:“没消息“多半是好事,说明这段时间没有值得打扰你的新热帖。
脚本的规矩就四条:
-
有新的、没提醒过的、浏览量过线的帖子 → 打印提醒,Hermes 发 Telegram;
-
没有新货 → 一个字不打印,Hermes 也就不发;
-
Grok 暂时超时 → 默认只记日志,不拿这种小毛病烦你;
-
真出错了 → 才打印错误提醒。
设计成这样,就是为了让它只在真有价值的时候出声。天天给你发“本次无更新“,那才叫骚扰。
想自己确认它一直在干活,可以翻本地报告:
bashls -lt “$HOME/Desktop/X监测结果” | head
或者看 cron 的输出记录:
bashls -lt ~/.hermes/cron/output
十二、想调策略?改这几个地方就行
嫌提醒太多 —— 抬高浏览量门槛
bashnano ~/.hermes/scripts/my_x_watch.sh
把这行的数字改大:
bashexport VIEW_THRESHOLD=“5000”
想看更久的帖 —— 拉长时间窗口
bashexport RECENT_WINDOW=“最近 6 小时”
嫌跑太勤 —— 改运行频率
比如改成每 2 小时一次:
bashhermes cron edit <job_id>
把 schedule 改成:
textevery 2h
想换人盯 —— 改名单
bashnano “$HOME/Desktop/x_watchlist.md”
改完不用重启任何东西,下一次跑就生效。
十三、出岔子了,照这里查
1. grok: command not found
Grok CLI 没装,或者装了但不在 PATH 里。
先确认:
bashcommand -v grok
macOS 重装一下:
bashbrew install –cask grok-build
要是 grok 装在别的地方,就把 wrapper 里的 GROK_CLI 改成完整路径:
bashexport GROK_CLI=“/opt/homebrew/bin/grok”
2. You are not logged in / 权限报错
重新登录:
bashgrok login –oauth
没屏幕就用验证码登录:
bashgrok login –device-auth
再验:
bashgrok models
3. 网页 Grok 能用,命令行却不行
这种最气人,但原因通常就那几个:
-
CLI 登的是另一个账号;
-
会员权益还没同步过来;
-
地区 / 网络 / 账号权限卡着;
-
Grok CLI 版本太老。
挨个试一遍:
bashgrok logout grok login –oauth grok update
然后:
bashgrok models
4. 定时任务压根没动
三条命令查到底:
bashhermes gateway status hermes cron status hermes cron list –all
要是 Gateway 没跑,把它拉起来:
bashhermes gateway start
还不行就重启:
bashhermes gateway restart
5. 手动能跑,一到定时就哑火
这是最经典的坑:定时任务的运行环境跟你手动敲命令时不一样,PATH 找不到命令。解决办法——wrapper 里全部写成绝对路径:
bashexport GROK_CLI=“/opt/homebrew/bin/grok” exec /usr/bin/python3 “$HOME/.hermes/scripts/grok_x_watch.py”
或者在 wrapper 开头补一行,把常用路径都塞进去:
bashexport PATH=“/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:$PATH”
6. 老是超时
超时基本就一个病因:一次让 Grok 干太多活。对症下药:
-
名单砍短点;
-
VIEW_THRESHOLD 调高(要处理的帖子少了);
-
RECENT_WINDOW 缩短;
-
把一份 100 人的名单,拆成几份 30 人的;
-
或者把频率从每小时改成 2-3 小时一次。
7. 它报了几个不太准的帖子
这里得跟你交个底:这套方案靠的是 Grok 去搜索、去读页面,不是 X 官方的数据接口。 所以它已经加了好几道过滤网:
-
必须是具体的 https://x.com/handle/status/数字;
-
必须有整数浏览量;
-
必须过阈值;
-
必须没提醒过。
但 Grok 偶尔还是会看走眼。所以:重要的事,点开链接自己再核一遍,别把它的提醒当成板上钉钉的官方数据。 它是帮你省事的助理,不是替你拍板的老板。
十四、发给朋友的“最短安装清单“
朋友要是已经有 Hermes + Grok CLI,把下面这整段甩给他,从头跑到尾就行:
bash# 1. 安装 Skill(从 GitHub 克隆)
mkdir -p ~/.hermes/skills/social-media
git clone https://github.com/wangdefou-dev/df-grok-x-watch-cron.git
~/.hermes/skills/social-media/grok-x-watch-cron
2. 复制脚本
mkdir -p ~/.hermes/scripts cp ~/.hermes/skills/social-media/grok-x-watch-cron/scripts/grok_x_watch.py ~/.hermes/scripts/grok_x_watch.py chmod +x ~/.hermes/scripts/grok_x_watch.py
3. 准备名单
cp ~/.hermes/skills/social-media/grok-x-watch-cron/templates/watchlist.md “$HOME/Desktop/x_watchlist.md”
4. 写 wrapper
cat > ~/.hermes/scripts/my_x_watch.sh <<‘EOF’ #!/usr/bin/env bash set -euo pipefail export PATH=“/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:PATH" export GROK_X_WATCH_SOURCE_FILE="HOME/Desktop/x_watchlist.md” export GROK_X_WATCH_RESULTS_DIR=“HOME/Desktop/X监测结果" export GROK_X_WATCH_STATE_FILE="HOME/.hermes/state/x_watch_seen.json” export GROK_X_WATCH_LOG_FILE=“HOME/.hermes/logs/x_watch.log" export GROK_X_WATCH_TITLE="X 热帖提醒" export GROK_CLI="grok" export VIEW_THRESHOLD="2000" export RECENT_WINDOW="最近 2 小时" export GROK_WATCH_TIMEOUT="170" exec python3 "HOME/.hermes/scripts/grok_x_watch.py” EOF chmod +x ~/.hermes/scripts/my_x_watch.sh
5. 登录 Grok 并测试
grok login –oauth grok models WATCH_LIMIT=5 ~/.hermes/scripts/my_x_watch.sh
6. 创建定时任务
hermes cron create ‘every 60m’ –name ‘X 热帖监测(Grok CLI)’ –script my_x_watch.sh –no-agent –deliver telegram
7. 检查
hermes cron status hermes cron list –all
十五、这套模板,能改去盯别的东西吗?
能。它的骨架其实很朴素,换个“数据源“就能复用:
text本地 CLI / API / 文件 -> Python 脚本把结果整理干净 -> stdout 有内容才提醒 -> Hermes cron 定时跑
不过说句实在话,这个 Grok 版本,最擅长的还是盯 X/Twitter 的动态,比如:
-
某个博主有没有发新帖;
-
某些账号有没有冒出高浏览量的爆帖;
-
某个关键词有没有新的热门讨论;
-
竞品、KOL、项目方有没有什么重要动作;
-
哪条高价值帖子值得你收藏、转发、评论或者二次创作。
道理很简单:Grok 和 X 是“一家人“,它天生更懂 X 上的上下文、账号关系、讨论热度和实时动态。别的软件当然也能定时盯,但建议另写对应的脚本,别硬把这个 X 监测 Skill 掰得太万能——工具一贪多,就哪样都做不精。
真要改去盯别的,把这四条原则守住就不会跑偏:
-
有明确的数据源;
-
有清晰的提醒阈值;
-
有去重机制,不重复烦人;
-
有价值才出声,没价值就闭嘴。
我是得否,一个文科生 目前担任多家企业Al转型顾问 日常分享 OPC 实践和 AI 搞钱心得 https://www.wangdefou.com/
相似文章
@IBuzovskyi: https://x.com/IBuzovskyi/status/2075226801920499826
关于使用Grok 4.5和Hermes Agent构建X自动化内容管道的指南。它详细介绍了如何监控X、草拟帖子以及在Telegram批准后发布。
@wsl8297: https://x.com/wsl8297/status/2054798253955375388
介绍如何利用 XCrawl 和 Hermes Agent 搭建无需编码的自动化情报收集工作流,涵盖竞品监控、Twitter 互动雷达、亚马逊商品监控等场景。
@bi_9527zx: https://x.com/bi_9527zx/status/2072183224781140038
详细教程,介绍如何备份 Hermes Agent(开源 AI Agent)的数据,包括使用官方命令、手动上传到 GitHub、自动备份方案以及恢复流程,强调数据安全的重要性。
@wei_wang: https://x.com/wei_wang/status/2072878140490231882
本文介绍如何使用 Hermes Desktop 桌面应用,将 ChatGPT、X Premium/Grok、DeepSeek、MiniMax 等多个 AI 模型集成到一个应用中,并通过配置消息通道和自动化工作流,实现不同任务分配给不同模型,提高效率。
@gkxspace: 你的 AI Agent 现在能搜推特了。 Grok CLI 终于把 Twitter 的搜索能力给内置了。 X 官方搜索 API 很贵,Grok 这次加了 4 个搜索工具: 1、x_keyword_search:最强的一个,完整支持所有高级…
Grok CLI 最新版本内置了四个 Twitter 搜索工具(关键词搜索、语义搜索、用户搜索、线程抓取),允许本地 AI Agent 直接调用 Twitter 实时数据,大幅降低了 X 官方 API 的高昂成本。