前言¶
微信读书里的书架、划线和想法长期留在官方客户端里,想本地检索、按年回顾,或导出成带 front-matter 的 Markdown 给别的工具用,往往要另写脚本或手工复制。DeepSeek Harness(DSH)支持通过插件扩展 Web 侧栏与宿主能力;dsh-weread-gather 在宿主侧用只读 Agent 网关拉取你自己的账号数据,落到本机目录,并在侧栏提供「数字书房」界面,不写回微读、不做上报。
下面介绍插件定位、安装配置、主要功能与数据落点,便于在 DSH >= 0.2.2-rc.1 上自行启用与核对隐私边界。
这是什么¶
- 名称:
dsh-weread-gather(侧栏显示「数字书房」) - 维护者:fountainhead-gq
- 当前版本(package.json):1.1.4,许可证 MIT
- 定位:把微信读书账号数据同步到本地
$DSH_HOME/weread-gather/,在 DSH 侧栏里浏览、搜索、按年总览,并支持 Markdown 导出与一键备份/恢复 - 目录页:https://www.skillhub.cn/plugins/fountainhead-gq/dsh-weread-gather
- 源码:https://github.com/fountainhead-gq/dsh-weread-gather
插件为纯 JS、无构建步骤;API Key 与全部 JSON 数据由宿主持有,页面通过同源接口只读访问。
核心功能¶
侧栏与界面¶
- 侧栏入口「数字书房」(
sidebar.panellist,order 26),主面板同 key 打开 - 书架:10 个大类(文学/其他/艺术/科技/成长心理/历史/生活/社科/经管理财/哲学宗教),每行 10 本(窄屏降为 8/6/4);支持书名/作者/分类搜索、按最后阅读年份筛选、多种排序
- 总览:右上角切换年份后,KPI、月度分布、表盘与置顶年度阅读热力图联动;累计阅读时段分布不随年份变化(接口仅提供 all-time)
- 笔记 / 想法:分页列表与瀑布流,可筛选、搜索、单条复制,点卡片可进书籍详情
- 书籍详情:展示元信息与该书全部划线、想法,支持一键在微读打开、「导出这本书」生成整本 Markdown
- 全局搜索:顶栏同时搜书名、作者、分类、划线与想法正文,结果按书籍/划线/想法分类展示
- 配色通过重映射
--dsw-alias-*跟随宿主亮/暗主题
同步与数据¶
数据来自微信读书 Agent 网关 https://i.weread.qq.com/api/agent/gateway,全部只读(书架、书籍元信息、划线、想法、阅读统计等)。热力图与年度视图按需拉取月度/年度阅读秒数,结果缓存在 heat.json(已过年份永久缓存,当年约 30 分钟过期)。
同步为增量:依据 sync-state.json 比对每本书的 lastNoteTime / noteCount / reviewCount,未变化的书不重拉划线;默认单次最多细读 60 本(maxBooks),可在设置中「强制全量重建」或调大上限。资料中实测:约 779 本书库首次全量约 8.4 秒,无变化时同步约 2~3 秒。
导出与备份¶
- 划线/想法可勾选后「导出所选」,或按书/按搜索结果导出;导出面板可控制是否包含原文、想法、书籍信息、章节、星级、微读链接,支持预览前 30 行、复制、下载或保存到导出目录(默认
$DSH_HOME/weread-gather/exports/) - Markdown 含 YAML front-matter(
title、bookId、exportId、contentHash等),块引用仅用于原文,想法单独标记 - 设置中支持下载备份包、两步确认导入(导入前自动另存当前数据)、清空数据
HTTP 接口(同源)¶
前缀 /dsh-weread/api,例如 GET /state(配置掩码与同步进度)、GET /data、GET /heat?year=、POST /sync({ "full": true } 可强制全量)、POST /export、GET|POST /backup 与 /restore 等。空 selector 调用导出会报错,不会默认导出全部。
安装与启用¶
要求 DSH >= 0.2.2-rc.1(Web 端)。安装后需重启 DSH,侧栏出现「数字书房」。
# 从 npm 安装
dsh plugin --profile <你的 profile> add dsh-weread-gather
# 或从 GitHub 安装
dsh plugin --profile <你的 profile> add github:fountainhead-gq/dsh-weread-gather
也可将 Release 的 .tgz 拖入设置页,或链接本地源码目录:
dsh plugin --profile <profile> add link:D:/path/to/dsh-weread-gather
首次打开需配置 微信读书 Agent 网关 API Key(wrk- 开头):
- 优先在 DSH 应用进程环境变量中设置
WEREAD_API_KEY,则无需手填 - 否则在「书房 → 设置」粘贴,写入本机
config.json - Key 仅在宿主侧使用;
GET /state返回掩码后的 Key,不进入页面逻辑
典型用法¶
- 安装并重启后打开「数字书房」,完成 API Key 配置。
- 触发同步(界面或
POST /dsh-weread/api/sync);进度可在页顶进度条或/state查看。 - 在总览切换年份查看热力图与 KPI;在书架按分类或年份筛选。
- 在笔记/想法中搜索后勾选条目,使用「导出所选」生成 Markdown;或在书籍详情使用「导出这本书」。
- 迁机或换环境前在设置中「下载备份」,新环境导入前确认两步提示(会自动备份当前数据)。
书架大类由微读叶子分类按「-」前前缀折叠,映射表在仓库 index.js 的 CATEGORY_GROUPS,加载时派生,改分组无需重新同步。
适用场景与注意¶
适合:已在用 DSH Web 端、希望把微信读书阅读数据留在本机、需要检索/年度回顾/Markdown 进自有笔记链路的用户。
权限与信任:插件以当前 DSH 进程权限运行,会读本机 config.json 中的 API Key 并向微读网关发起请求;安装前请查看 仓库源码 与 MIT 许可证,自行判断是否符合使用条款。该项目非微信读书官方出品。
已知限制(摘自 README):
- 「其他」类多为微读无法提供分类的导入文档/PDF,难以自动归类
- 默认仅对最近有笔记的若干本书(默认 60)做细读同步,其余记在
pending,需强制全量或增大maxBooks - 删除
sync-state.json不丢data.json,但下次同步会按全量流程走一遍 - 阅读时段图仅展示累计 all-time,不随年份切换
数据目录结构如下,卸载插件后删除该目录即可清空本地书房数据:
$DSH_HOME/weread-gather/
config.json # apiKey、maxBooks、notesPerBook、metaLimit、exportDir
data.json # 书架、划线、想法、阅读统计
meta.json # 书籍元信息缓存
heat.json # 逐年热力图与年度聚合
sync-state.json
exports/
backups/
结尾¶
dsh-weread-gather 把微信读书账号的只读同步、侧栏浏览与 Markdown/备份能力收进 DSH 一个插件里,数据默认只落在 $DSH_HOME/weread-gather/。社区目录可查 SkillHub 条目,问题与更新以 GitHub 仓库 为准。