原文:知乎文章
在 知乎开放平台近期新推出的Zhihu CLI 能力,有哪些值得探索的玩法?
这个回答下写了使用「Zhihu CLI」的功能,整体来说还是挺好玩的。不过我最近的刚需是:挖掘好的创作问题。虽然在「赛博刘看山」Web这边已经做了一些挖掘创作问题的工作了,但比较依赖「创作中心」的数据推送,并不算太智能。
那如果我想要被Work Agent 大模型加持的定制话题筛选呢?
那是不是可以试试结合「Zhihu CLI」 和「赛博刘看山」浏览器插件的能力,
直接定时获取一下相关领域的话题,然后推送到浏览器端呢?
然后有了下面这个Skills 提示词。
请帮我完成“知乎热点 → Kanshan 浏览器推送”的完整安装和初始化。
你可以直接执行安装、创建 Skill、安装浏览器扩展、创建 Kanshan 设备身份,
以及发送最多 1 条测试消息。
除非遇到必须由我完成的浏览器安全确认、账号登录或知乎 Access Secret 输入,
否则不要反复请求权限。
一、安装知乎官方 Skill
-
下载:
https://developer-cdn.zhihu.com/zhihu-cli/releases/stable/skill/zhihu-cli-skill.zip
-
安全检查 ZIP:
- 禁止绝对路径
- 禁止
.. 路径穿越
- 禁止异常符号链接
- 不执行来源不明的安装脚本
-
安装到:
${CODEX_HOME:-$HOME/.codex}/skills/zhihu
-
阅读并遵守该 Skill 的 SKILL.md,完成知乎 CLI 初始化。
-
如果尚未配置,只向我询问一次知乎 Access Secret。
-
凭证必须按知乎官方 Skill 的安全规则保存,不要写进项目、日志、聊天输出或命令参数。
-
执行 scripts/run.sh status,确认 CLI 可用并已授权。
二、创建新的个人 Skill
使用 skill-creator 在以下位置直接创建或更新 Skill,
不要从网络下载现成的 zhihu-kanshan-hotspot-push:
${CODEX_HOME:-$HOME/.codex}/skills/zhihu-kanshan-hotspot-push
Skill 名称:
zhihu-kanshan-hotspot-push
它负责:
- 通过知乎官方 CLI 获取热榜和相关内容
- 按指定领域筛选热点
- 通过 kanshan-server 推送到浏览器插件
- 24 小时 URL 去重
- 每两小时自动运行
- 检查并安装“赛博刘看山”浏览器扩展
三、领域参数规则
Skill 必须支持从调用提示词传入新领域,识别:
领域
topics
关注
- 自然语言列表
- JSON 字符串数组
处理规则:
- 用户本轮传入的领域优先。
- 保留传入顺序并去重,最多使用 4 类。
- 少于 4 类时,依次用以下默认领域补齐:
- AI编程
- VibeCoding
- 科技
- 旅行人文
- 没有传入领域时使用全部默认领域。
- 每个领域的搜索词为:
<领域> 最新 热点 实践
- 每轮最多推送 4 条,每个领域最多 1 条。
- 推送消息的
category 使用实际领域名称,不能写死。
调用示例:
使用 $zhihu-kanshan-hotspot-push,领域:机器人、摄影
此时优先搜索“机器人、摄影”,不足 4 类再用未重复的默认领域补齐。
四、安装 Kanshan 浏览器扩展
首先使用浏览器控制能力检查 Chrome 或 Edge 是否已经安装名为“赛博刘看山”的扩展。
检查时不得读取 Cookie、Local Storage、密码或其他扩展的私有数据。
如果已经安装:
- 不要重复安装
- 检查插件是否完成登录和配对
如果尚未安装:
-
下载:
https://kanshan.r2049.cn/downloads/browser-extension.zip
-
安全检查 ZIP,禁止绝对路径、.. 路径穿越和异常符号链接。
-
解压到:
${CODEX_HOME:-$HOME/.codex}/browser-extensions/saibo-liukanshan
-
打开 Chrome 或 Edge 扩展管理页。
-
启用开发者模式。
-
使用“加载已解压的扩展程序”安装上述目录。
我已明确授权安装该扩展,因此不需要再次请求安装权限。如果浏览器原生文件选择器或安全确认必须由我操作,再停下来告诉我具体要点击什么。
只安装这个扩展,不要禁用、删除或修改其他扩展。
安装后打开:
使用当前 Web 登录状态完成插件“授权登录”和设备配对。不要索取我的账号密码。
五、Kanshan 设备授权与 Token 保存
Kanshan 服务地址:
正确的设备授权流程:
- POST
/api/auth/device/code
- 在浏览器打开返回的
verification_uri
- 用户确认绑定
- 轮询 POST
/api/auth/device/token
- 使用设备 JWT 调用 POST
/api/browser/push
注意:
/api/creation-data/{token} 是创作数据接口,不是浏览器消息推送接口,不能把该 URL 中的 Token 当作 /api/browser/push 的设备 JWT。
设备 JWT 只能保存到:
${CODEX_HOME:-$HOME/.codex}/secrets/zhihu-kanshan-hotspot-push/device-token
安全要求:
secrets 目录权限为 0700
- Token 文件权限为
0600
- 使用临时文件加原子替换保存续期后的 Token
- 不写入项目目录或 Skill 目录
- 不写入日志
- 不通过命令行参数传递
- 不输出到聊天
- 日常运行不访问 macOS 钥匙串
- CI 环境允许使用
KANSHAN_DEVICE_TOKEN
- 服务地址允许用
KANSHAN_SERVER_URL 覆盖
如果发现旧版本 Token 位于 macOS 钥匙串,只允许执行一次显式迁移,之后不得再次依赖钥匙串。
六、热点获取流程
每次运行必须:
- 读取并遵守知乎官方 Skill 的 SKILL.md。
- 执行知乎 Skill 的
scripts/run.sh status。
- 只使用 status 返回的绝对
binary_path。
- 先获取:
<CLI> hot --limit 30
- 再按本轮领域逐个执行:
<CLI> search zhihu --query "<领域> 最新 热点 实践" --count 5
- 所有知乎 CLI 请求必须串行执行,两次调用之间至少等待 1 秒。
- 单轮最多调用 1 次热榜和 4 次搜索。
- 遇到鉴权、配额或频率限制立即结束,不循环重试。
筛选时综合:
- 热榜重合度
- 领域相关性
- 内容信息量
- 新鲜度
- 是否与最近 24 小时推送重复
必须保留知乎原始 HTTPS URL。不要把搜索摘要冒充全文,不使用知乎直答替代原始来源。
每条推送包含:
category:领域
title:原始话题标题
content:120 个汉字以内的推荐理由
url:知乎原始 HTTPS 地址
标题避免“震惊、必看”等夸张前缀。没有合适的新内容时正常结束,不要为了凑数推送。
七、自动任务
通过 Codex 的自动任务能力创建一个每两小时运行一次的 heartbeat,调用:
$zhihu-kanshan-hotspot-push
要求:
- 如果自动任务提示词传入了领域,优先使用传入领域
- 没有传入领域时使用默认四类
- 更新已有同名任务,不创建重复任务
- 仅在运行失败时通知
- 摘要只包含推送数量、类别、推送 ID 或恢复建议
- 不输出 JWT、Access Secret、完整原始响应或完整关注列表
- 浏览器插件缺失但已获得安装授权时,先完成扩展安装
- 插件未配对、知乎鉴权失败或 Kanshan Token 过期时,让该轮明确失败并说明恢复步骤
八、完成验证
配置结束后依次验证:
- Skill 目录结构和 frontmatter 合法
- Python 脚本可以通过
py_compile
- 知乎 CLI 在线鉴权成功
- Kanshan 设备 JWT 有效
- Token 文件及目录权限正确
- “赛博刘看山”扩展已安装并完成登录配对
- 发送最多 1 条真实测试消息
- 再执行一次去重 dry-run,确认不会重复推送
- 每两小时自动任务处于启用状态
最后只向我汇报:
- 安装和初始化是否成功
- Skill 的实际安装路径
- 浏览器扩展是否安装并配对
- 当前生效的领域顺序
- 测试推送是否成功
- 自动任务是否启用
- 如果失败,给出具体恢复步骤
不要展示任何 Access Secret、JWT 或其他凭证。
效果大概是这样的:


当然,如果一切都顺利,每六个小时你的浏览器应该会自动打开几个待回答的链接。
( 想想好像有点打扰,狗头护体。jpg
自己想要怎么玩自己改咯~!!!
( 水完睡觉~!!!