dsh-bookshelf:把个人书架与阅读记录交给 DSH 本地持久化

前言

用 DSH 做开发或日常对话时,阅读进度、摘录和年度统计往往散落在笔记应用或表格里,agent 既没有统一的数据源,也很难用自然语言更新「在读第几页」「刚读完哪本」。下面介绍社区插件 dsh-bookshelf(维护者 lima1217,SkillHub 分类:记忆):在本机保存书架与阅读日志,并通过 bookshelf_* 工具供 agent 读写,同时具备面板 UI 与 CSV 导入导出。

这是什么

dsh-bookshelf 是 DeepSeek Harness(DSH)的个人书架与阅读记录插件。数据保存在本机 JSON 文件中,不会把整个书架上传到第三方;DSH agent 通过 bookshelf_list、bookshelf_add 等工具查询或更新记录。界面支持中英文,并跟随 DSH 浅色 / 深色主题。

仓库:lima1217/dsh-bookshelf
目录页:SkillHub 插件条目

当前 package 版本为 1.2.0,许可证 MIT。

核心功能

书架与阅读字段

书架面板按状态分栏:想读 / 在读 / 读完。单本书可记录开始与读完日期、页码进度、评分、标签、笔记。联网时可向 Apple Books、Google Books、Open Library 的搜索接口发送书名,用于补全封面与简介(不把完整书架上载到这些服务)。

摘录与统计

  • 摘录:为每本书保存原文段落、页码与个人评论。
  • 年度统计:某一年的读完册数、总页数、平均评分、每月数量、常用标签等(面板与 bookshelf_stats 工具均可使用)。

视图与导入导出

三种视图:按状态分栏、列表、封面墙。支持导入 Goodreads、豆瓣导出的 CSV,也可将书架导出为 CSV。

Agent 工具一览

工具 作用
bookshelf_list 按状态、关键词、标签列书,或查看单本详情
bookshelf_stats 某一年的阅读统计
bookshelf_add 上架新书(同名不重复添加)
bookshelf_update 更新状态、进度、评分、标签、笔记、日期
bookshelf_add_excerpt 为某本书添加摘录

可对 agent 说例如:「我今天读完了《置身事内》,给 4 星」或「我今年读了多少书?」——具体解析取决于当前对话与工具调用,工具能力以仓库 README 为准。

安装与启用

需要先安装 DeepSeek Harness 桌面版。官方 README 采用本地 link: 依赖,而不是 dsh plugin add 一类命令;按下面步骤操作。

1、获取插件源码

在本地合适目录克隆仓库:

git clone https://github.com/lima1217/dsh-bookshelf.git

记下克隆目录的绝对路径,后面要写进 package.json。

2、注册到 desktop profile

编辑 ~/.dsh/profiles/desktop/package.json:在 dependencies 中增加指向该目录的 link,并把包名加入 dsh.profile.bundles:

{
  "dependencies": {
    "@local/dsh-bookshelf": "link:/你的路径/dsh-bookshelf"
  },
  "dsh": {
    "profile": {
      "bundles": ["…原有条目…", "@local/dsh-bookshelf"]
    }
  }
}

将 /你的路径/dsh-bookshelf 换成上一步的真实绝对路径。

3、用 DSH 自带 pnpm 安装依赖

在 ~/.dsh/profiles/desktop 下执行安装。务必使用 DSH 应用内置的 pnpm,不要用系统全局 pnpm(版本不一致可能清空整个 node_modules)。

macOS 桌面版示例(路径以本机 DeepSeek Harness.app 为准):

cd ~/.dsh/profiles/desktop && node "/Applications/DeepSeek Harness.app/Contents/Resources/runtime/primary-runtime/dependencies/pnpm/bin/pnpm.mjs" install

Linux 或其他安装位置时,把 node 后面的 pnpm.mjs 路径改成你机器上 DSH runtime 中的对应文件。

4、重启 DSH

完全退出并重新打开 DeepSeek Harness,使 bundle 加载新插件。

link: 安装后,在克隆目录 git pull 即可更新源码;仅改前端时刷新窗口,改后端逻辑需重启 App。

数据存储与 HTTP 接口

默认数据文件:

~/.dsh/storages/bookshelf.json

可通过环境变量 DSH_BOOKSHELF_FILE 指定其它路径。

插件在本机回环地址提供 HTTP 接口,例如 api/dsh-bookshelf/state、api/dsh-bookshelf/revision,供面板与 Host 同步状态;不将书架数据上传到插件作者服务器。

典型用法

  1. 面板:在 DSH 中打开书架 UI,拖拽或编辑状态、页码、标签,查看年度统计与三种视图。
  2. 对话:让 agent 调用 bookshelf_update 更新读完状态与评分,或 bookshelf_stats 回答年度阅读量。
  3. 迁移:从 Goodreads / 豆瓣导出 CSV 后按 README 说明导入;需要备份时用导出的 CSV 或复制 bookshelf.json。

开发调试时,仓库提供 dev/harness.mjs 可在浏览器中预览面板(脱离完整 DSH);接口细节见仓库内 docs/dsh-plugin-api.md。开发环境说明为 Node 26,自检可运行 npm test。

适用场景与注意

适合:希望在同一台机器上长期维护阅读记录,并希望在 DSH 对话里用自然语言查询、更新书架的读者或开发者。

权限与安全:插件以当前 DSH 进程权限运行,可读写你配置的 JSON 与调用上述联网搜索补全封面。安装前建议浏览 GitHub 源码 与 MIT 许可证,确认符合你对本地数据与出站请求的要求。

生态说明:DSH 采用「一切皆插件」的扩展方式;SkillHub 等为社区目录,与 DeepSeek / 幻方无官方应用商店从属关系。本文事实来源于项目 README 与 package.json,星标与目录信息以你打开 SkillHub / GitHub 时的页面为准。

结尾

经过上面的步骤,dsh-bookshelf 把书架、摘录和年度统计收敛到本机一份 JSON,并用 bookshelf_* 工具桥接到 agent。若要查看分类与简介,可访问 SkillHub 目录页;安装与贡献以 GitHub 仓库 README 为准。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye