如何正确使用「Zhihu CLI」?(「赛博刘看山」加持版

同步自知乎:如何正确使用「Zhihu CLI」?(「赛博刘看山」加持版

原文:知乎文章

知乎开放平台近期新推出的Zhihu CLI 能力,有哪些值得探索的玩法?

这个回答下写了使用「Zhihu CLI」的功能,整体来说还是挺好玩的。不过我最近的刚需是:挖掘好的创作问题。虽然在「赛博刘看山」Web这边已经做了一些挖掘创作问题的工作了,但比较依赖「创作中心」的数据推送,并不算太智能。

那如果我想要被Work Agent 大模型加持的定制话题筛选呢?

那是不是可以试试结合「Zhihu CLI」 和「赛博刘看山」浏览器插件的能力,

直接定时获取一下相关领域的话题,然后推送到浏览器端呢?


然后有了下面这个Skills 提示词。

请帮我完成“知乎热点 → Kanshan 浏览器推送”的完整安装和初始化。

你可以直接执行安装、创建 Skill、安装浏览器扩展、创建 Kanshan 设备身份, 以及发送最多 1 条测试消息。

除非遇到必须由我完成的浏览器安全确认、账号登录或知乎 Access Secret 输入,

否则不要反复请求权限。

一、安装知乎官方 Skill

  1. 下载: https://developer-cdn.zhihu.com/zhihu-cli/releases/stable/skill/zhihu-cli-skill.zip

  2. 安全检查 ZIP:

    • 禁止绝对路径
    • 禁止 .. 路径穿越
    • 禁止异常符号链接
    • 不执行来源不明的安装脚本
  3. 安装到: ${CODEX_HOME:-$HOME/.codex}/skills/zhihu

  4. 阅读并遵守该 Skill 的 SKILL.md,完成知乎 CLI 初始化。

  5. 如果尚未配置,只向我询问一次知乎 Access Secret。

  6. 凭证必须按知乎官方 Skill 的安全规则保存,不要写进项目、日志、聊天输出或命令参数。

  7. 执行 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 字符串数组

处理规则:

  1. 用户本轮传入的领域优先。
  2. 保留传入顺序并去重,最多使用 4 类。
  3. 少于 4 类时,依次用以下默认领域补齐:
    • AI编程
    • VibeCoding
    • 科技
    • 旅行人文
  4. 没有传入领域时使用全部默认领域。
  5. 每个领域的搜索词为: <领域> 最新 热点 实践
  6. 每轮最多推送 4 条,每个领域最多 1 条。
  7. 推送消息的 category 使用实际领域名称,不能写死。

调用示例:

使用 $zhihu-kanshan-hotspot-push,领域:机器人、摄影

此时优先搜索“机器人、摄影”,不足 4 类再用未重复的默认领域补齐。

四、安装 Kanshan 浏览器扩展

首先使用浏览器控制能力检查 Chrome 或 Edge 是否已经安装名为“赛博刘看山”的扩展。

检查时不得读取 Cookie、Local Storage、密码或其他扩展的私有数据。

如果已经安装:

  • 不要重复安装
  • 检查插件是否完成登录和配对

如果尚未安装:

  1. 下载: https://kanshan.r2049.cn/downloads/browser-extension.zip

  2. 安全检查 ZIP,禁止绝对路径、.. 路径穿越和异常符号链接。

  3. 解压到: ${CODEX_HOME:-$HOME/.codex}/browser-extensions/saibo-liukanshan

  4. 打开 Chrome 或 Edge 扩展管理页。

  5. 启用开发者模式。

  6. 使用“加载已解压的扩展程序”安装上述目录。

我已明确授权安装该扩展,因此不需要再次请求安装权限。如果浏览器原生文件选择器或安全确认必须由我操作,再停下来告诉我具体要点击什么。

只安装这个扩展,不要禁用、删除或修改其他扩展。

安装后打开:

https://kanshan.r2049.cn/app

使用当前 Web 登录状态完成插件“授权登录”和设备配对。不要索取我的账号密码。

五、Kanshan 设备授权与 Token 保存

Kanshan 服务地址:

https://kanshan.r2049.cn

正确的设备授权流程:

  1. POST /api/auth/device/code
  2. 在浏览器打开返回的 verification_uri
  3. 用户确认绑定
  4. 轮询 POST /api/auth/device/token
  5. 使用设备 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 钥匙串,只允许执行一次显式迁移,之后不得再次依赖钥匙串。

六、热点获取流程

每次运行必须:

  1. 读取并遵守知乎官方 Skill 的 SKILL.md。
  2. 执行知乎 Skill 的 scripts/run.sh status
  3. 只使用 status 返回的绝对 binary_path
  4. 先获取: <CLI> hot --limit 30
  5. 再按本轮领域逐个执行: <CLI> search zhihu --query "<领域> 最新 热点 实践" --count 5
  6. 所有知乎 CLI 请求必须串行执行,两次调用之间至少等待 1 秒。
  7. 单轮最多调用 1 次热榜和 4 次搜索。
  8. 遇到鉴权、配额或频率限制立即结束,不循环重试。

筛选时综合:

  • 热榜重合度
  • 领域相关性
  • 内容信息量
  • 新鲜度
  • 是否与最近 24 小时推送重复

必须保留知乎原始 HTTPS URL。不要把搜索摘要冒充全文,不使用知乎直答替代原始来源。

每条推送包含:

  • category:领域
  • title:原始话题标题
  • content:120 个汉字以内的推荐理由
  • url:知乎原始 HTTPS 地址

标题避免“震惊、必看”等夸张前缀。没有合适的新内容时正常结束,不要为了凑数推送。

七、自动任务

通过 Codex 的自动任务能力创建一个每两小时运行一次的 heartbeat,调用:

$zhihu-kanshan-hotspot-push

要求:

  • 如果自动任务提示词传入了领域,优先使用传入领域
  • 没有传入领域时使用默认四类
  • 更新已有同名任务,不创建重复任务
  • 仅在运行失败时通知
  • 摘要只包含推送数量、类别、推送 ID 或恢复建议
  • 不输出 JWT、Access Secret、完整原始响应或完整关注列表
  • 浏览器插件缺失但已获得安装授权时,先完成扩展安装
  • 插件未配对、知乎鉴权失败或 Kanshan Token 过期时,让该轮明确失败并说明恢复步骤

八、完成验证

配置结束后依次验证:

  1. Skill 目录结构和 frontmatter 合法
  2. Python 脚本可以通过 py_compile
  3. 知乎 CLI 在线鉴权成功
  4. Kanshan 设备 JWT 有效
  5. Token 文件及目录权限正确
  6. “赛博刘看山”扩展已安装并完成登录配对
  7. 发送最多 1 条真实测试消息
  8. 再执行一次去重 dry-run,确认不会重复推送
  9. 每两小时自动任务处于启用状态

最后只向我汇报:

  • 安装和初始化是否成功
  • Skill 的实际安装路径
  • 浏览器扩展是否安装并配对
  • 当前生效的领域顺序
  • 测试推送是否成功
  • 自动任务是否启用
  • 如果失败,给出具体恢复步骤

不要展示任何 Access Secret、JWT 或其他凭证。

效果大概是这样的:

当然,如果一切都顺利,每六个小时你的浏览器应该会自动打开几个待回答的链接。

( 想想好像有点打扰,狗头护体。jpg

自己想要怎么玩自己改咯~!!!

( 水完睡觉~!!!

Built with Hugo
Theme Stack designed by Jimmy