在对话里搜热榜查收藏并发布知乎文章
31.5/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add leolee9086/dsh-zhihu-tools该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · platform
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 38 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-zhihu-tools(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 06:58:39
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 13 处,展示前 12 条)
- 发起网络请求lib/index.js:130
const res = await fetch(url, init); - 读取本地文件lib/index.js:326
const buf = readFileSync(filePath); - 读取密钥环境变量lib/index.js:455
let key = String(process.env.ZHIHU_OPENAPI_APP_KEY || "").trim(); - 读取密钥环境变量lib/index.js:456
let secret = String(process.env.ZHIHU_OPENAPI_APP_SECRET || "").trim(); - 读取本地文件lib/index.js:460
const raw = readFileSync(join(homedir(), ".zhihu", "openapi-credentials.json"), "utf8"); - 发起网络请求lib/client.js:149
fetch(API + "/state", { headers: { accept: "application/json" } }).then((r) => r.ok ? r.json() : null).then((s) => { if (s && typeof s === "object") s - 发起网络请求lib/client.js:156
fetch(API + "/secret", { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ secret: v }) }).then((r) => r.json()) - 发起网络请求lib/client.js:162
const doProbe = () => { setBusy(true); setMsg("探测中…"); fetch(API + "/probe", { headers: { accept: "application/json" } }).then((r) => r.json()).then(( - 发起网络请求lib/client.js:163
const doClearSecret = () => fetch(API + "/secret", { method: "DELETE" }).then((r) => r.ok ? r.json() : null).then(() => { setMsg("已清除本进程内的 Access Secr - 发起网络请求lib/client.js:164
const doClearSession = () => fetch(API + "/session", { method: "DELETE" }).then((r) => r.ok ? r.json() : null).then(() => { setMsg("已清除网页会话"); setQr(n - 发起网络请求lib/client.js:165
const doQrStart = () => { setBusy(true); setMsg("正在创建二维码…"); fetch(API + "/qr/start", { method: "POST" }).then((r) => r.json()).then((s) => { if (s && - 发起网络请求umi.js:25
(`+h+": "+x+")",d.name="ChunkLoadError",d.type=h,d.request=x,a[1](d)}};V.l(l,f,"chunk-"+o,o)}};var p=function(o,i){var a=i[0],u=i[1],l=i[2],d,f,v=0;if
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 搜索知乎热榜
- 查询收藏内容
- 发布知乎文章
知乎数据开放平台 DSH 静态双面插件:17工具+精美卡片+串行化限流。QQ群1017854502 https://qm.qq.com/q/RAHJuyhQQ
README
由 DeepSeek 最新模型翻译生成dsh-zhihu-tools
知乎插件:宿主半部 18 个工具(读取 + 发布)+ 本地设置页,浏览器半部知乎设定页 + 工具卡片。
联系作者:逐暝(leolee9086)· 点击链接加入群聊【工具软件爱好者折腾群-综合讨论】:https://qm.qq.com/q/RAHJuyhQQ (群号 1017854502,群主 逐暝)
安装
⚠️ 安全提示:任何第三方插件——包括本插件——都应被视为天然不安全、不可信的代码。相比原样安装本插件,更建议让你的 AI 参考本仓库源码自行重新实现所需功能;若仍要安装,请先通读全部源码确认无恶意行为。
dsh plugin --profile web add dsh-zhihu-tools
或本地链入开发版
dsh plugin --profile web add link:D:/dev/zhihu-plugin
重启 dsh web 并刷新 http://127.0.0.1:3080 后,设置 → 知乎 可配置凭证,工具 zhihu_hot 等可在对话中调用。
展开完整文档(README 剩余 1 节)
dsh-zhihu-tools
知乎插件:宿主半部 18 个工具(读取 + 发布)+ 本地设置页,浏览器半部知乎设定页 + 工具卡片。
联系作者:逐暝(leolee9086)· 点击链接加入群聊【工具软件爱好者折腾群-综合讨论】:https://qm.qq.com/q/RAHJuyhQQ (群号 1017854502,群主 逐暝)
安装
⚠️ 安全提示:任何第三方插件——包括本插件——都应被视为天然不安全、不可信的代码。相比原样安装本插件,更建议让你的 AI 参考本仓库源码自行重新实现所需功能;若仍要安装,请先通读全部源码确认无恶意行为。
dsh plugin --profile web add dsh-zhihu-tools
或本地链入开发版
dsh plugin --profile web add link:D:/dev/zhihu-plugin
重启 dsh web 并刷新 http://127.0.0.1:3080 后,设置 → 知乎 可配置凭证,工具 zhihu_hot 等可在对话中调用。
界面截图
知乎热榜工具卡(真实运行结果):
知乎热榜工具卡
架构
lib/index.js 宿主:18 工具,本地设置后端,白名单仅限知乎域名,内置限流与退避 lib/client.js 浏览器:ModuleLoader factory,手写卡片样式,工具视图严格隔离 cordis.patch.yml 包自带 bundle 补丁层
工具(18)
zhihu_hot、zhihu_search、zhihu_global_search、zhihu_ask、zhihu_kb_list、zhihu_kb_items、zhihu_kb_upload、zhihu_kb_search、zhihu_pdf_parse、zhihu_ppt_generate、zhihu_task_query、zhihu_my_contents、zhihu_my_followees、zhihu_my_collections、zhihu_my_favlists、zhihu_favlist_contents、zhihu_auth_status、zhihu_publish_article
前 17 个为读取类,均配备定制卡片;zhihu_publish_article 为发布类,走通用卡片。
发布文章(zhihu_publish_article)
支持两种授权,用 auth_mode 选择:
| auth_mode | 走哪条路 | 前提 |
| auto(默认) | 有 OpenAPI 凭证就用它,否则回落到网页会话 | — |
| openapi | 官方 Publish OpenAPI:POST https://openapi.zhihu.com/openapi/publish,X-Sign = Base64(HMAC-SHA256("app_key:…\|ts:…\|logid:…\|extra_info:…", APP_SECRET)) | ZHIHU_OPENAPI_APP_KEY(= 知乎主页 URL 里的用户名,免申请)+ ZHIHU_OPENAPI_APP_SECRET(开放平台申请,目前内测);也可写入 ~/.zhihu/openapi-credentials.json |
| session | 网页会话三步:建草稿 → 写草稿 → 发布(zhuanlan.zhihu.com/api/articles) | 已扫码登录,cookie 里有 z_c0 与 _xsrf |
发布不可撤销,所以有两道关:
1. 工具层默认不发:不传 confirm 时只回显将要发送的请求体与所选授权方式供复核,必须显式传 confirm=true 才会走到发布;
2. 平台层强制授权:即使传了 confirm=true,插件注册的 tools/pre-execute 守卫也会返回 ask,把这次调用交给 DSH 的审批通道由用户裁决;只有用户批准(allowed-once)才真正发出请求。没有审批通道时平台 fail closed,直接拒绝。
也就是说:Agent 无法自行授权发布 —— 它只能发起,决定权始终在用户手里。
频率限额:官方 zhihu-publisher 限每人每天最多发布 50 次。本工具在本地记一份发布流水(窗口内每次发布的时间戳,存在平台凭据存储里),达到上限直接拒绝并提示等窗口滚动,避免反复重试撞平台的 429 而被判定为违规调用。每次回显都会带上当前配额(quota.used / limit / remaining)。
更安全的第三条路(计划中):用浏览器扩展承接发布,cookie 完全不出浏览器。设计见 计划-浏览器插件授权方案.md。
正文用 markdown 传(推荐),也可以用 html 直接给 —— 两者至少给一个,给了 html 就以 html 为准。
- markdown 交给 lute(思源笔记的 Markdown 引擎,vendored 在 lib/vendor/lute.cjs)渲染成 HTML。注意它必须是 .cjs:lute 是 GopherJS 产物、内部用 require 探测 Node 环境,而本包是 "type": "module"。
- 两条路都会再过一遍知乎结构适配:表格的表头行并进 tbody;知乎拆得坏的列表(项里含图片/代码块/表格/引用,或者嵌套列表夹着别的内容)拍平成“段落 + 文字标记”。适配是幂等的,所以已经处理过的 HTML 再走一遍也不会变样。
- 规则照搬思源的“复制到知乎”(s-forge/app/src/protyle/preview/)。引用块那条不用做 —— lute 本来就把连续段落合进同一个 blockquote。
可选评论权限、文章目录开关、创作声明(内容有 AI 参与时建议 ai_creation)与最多 3 个知乎话题。
实现参考:官方 zhihu/ZhihuPublisher 的 Publish OpenAPI 规范,以及 niudai/VSCode-Zhihu 的网页会话发布路径。
设置后端
GET /api/zhihu/state · POST /api/zhihu/secret · DELETE /api/zhihu/secret|session · GET /api/zhihu/probe · POST /api/zhihu/qr/start 等,仅 127.0.0.1 可访。
安全
- Access Secret 经平台凭据服务 ctx.credentials 持久化(CredentialRef ZHIHU_ACCESS_SECRET → $DSH_HOME/.credentials.yaml,0600/0700),重启自动恢复;设置页保存即落盘、清除即 unset。
- 网页会话 Cookie 以 GrantRecord 记录(zhihu-tools-static/session)经 modifyRecord 持久化,QR 登录成功自动写入,「清除会话」同步删除记录。
- 发布用的 ZHIHU_OPENAPI_APP_SECRET 以及由它算出的 X-Sign 永不回显、永不写进任何产物;回显只给公开的 APP_KEY。
- 掩码 6…4 回显;长度 16-512 校验;严格域名白名单(developer.zhihu.com / www.zhihu.com / openapi.zhihu.com / zhuanlan.zhihu.com);全部 try/catch + disposed 守卫。
反馈
作者:逐暝 · QQ 群:1017854502 — https://qm.qq.com/q/RAHJuyhQQ
赞赏
如果这个项目帮到了你,可以请我喝杯咖啡:
赞赏码
也欢迎通过 爱发电 支持。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
leolee9086/dsh-zhihu-tools
在对话里搜热榜查收藏并发布知乎文章
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,778已汉化Cordis
71.4
失败经验库Ikalus1988/MisakaNet
📚 零依赖、由 git 支撑的微课程库,让 AI 智能体异步分享并检索经过验证的调试经验。| https://misakanet.org
★ 550已汉化DSH
71.2
桌面智能体工作区freestylefly/wesight
WeSight 是开源桌面控制台,面向本地 AI 智能体。它帮你安装或复用 Claude…
★ 933已汉化MCP
71
IM 机器人接入xmanrui/dsh-im
让 DeepSeek Harness 触手可及 Connecting DeepSeek Harness
★ 3,110已汉化DeepSeek 客户端
70.9
中国平台研究引擎Jesseovo/last30days-skill-cn
给 AI Agent 的中文互联网研究 Skill:检索 8 大平台最近 30…
★ 2,031已汉化DSH
70.7