DeepSeek Harness 插件

shushuiu/dsh-bookshelf

Star 数 ★ 0 分类 UI 增强 收录于 2026-11-10

按豆瓣「想读」书单排出的书架:封面与评分、与本地电子书自动配对,可在面板内阅读 EPUB/PDF/TXT,并支持公版书下载。

安装

# Release 预构建包

dsh plugin --profile web add "https://github.com/shushuiu/dsh-bookshelf/releases/download/v1.0.0/dsh-bookshelf-1.0.0.tgz"

# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)

dsh plugin --profile web add github:shushuiu/dsh-bookshelf

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。

README

A DeepSeek Harness plugin: your Douban 想读 list as a shelf, paired with your own ebook folder, readable inside the panel.

把豆瓣某个用户的「想读」书单变成书架,自动和你自己目录里的电子书配对,直接在面板里读。没有的书可以去公版书库下载,或跳到正版渠道。

功能

  • 豆瓣想读书单:书名、封面、作者、出版社、年份、评分、ISBN、简介,按想读时间排序,可搜索。
  • 和本地书库自动配对:扫描你指定的目录(epub / pdf / txt / mobi / azw3…),按 ISBN 优先、书名其次和豆瓣书目对上。
  • 面板内直接读:EPUB 解析成章节排版(跟随明暗主题),TXT 自动识别 UTF-8 / GB18030,PDF 用浏览器内置阅读器。
  • 封面即续读:点封面进阅读页并跳回上次读到的位置,卡片上会标「续读 第 N 节」。
  • 双语对照:阅读器右上角 译 开关,只翻译当前这一章,译文以小一号灰字排在每段下面,逐段对照。
  • 论文 PDF 也能读:把文字层抽出来,按页切成章节,一样可以双栏阅读、双语对照;右侧并排显示这一页的原样扫描图,图表不丢。
  • 资料区:没和豆瓣书目对上的文件(论文、说明书、随手丢进来的 TXT)单独一栏,PDF 用第一页当封面,可显示 / 重命名 / 删除。
  • 公版下载与正版渠道:从 Project Gutenberg 直接下载 EPUB;Open Library、微信读书、豆瓣阅读、京东、当当的入口。
  • 对话里也能用:内置 bookshelf 工具,可以直接问「我书架上哪本书讲过 X」「读一下《人月神话》第 3 章」。

安装

需要 Harness ≥ 0.2.0、Node ≥ 22。

从插件市场装:

  1. 插件 → 发现 → 管理索引源…

  2. 填入这条索引地址,点「添加」:

    https://cdn.jsdelivr.net/gh/shushuiu/dsh-bookshelf@main/publish/index.json
    
  3. 回到「发现」刷新,搜「书架」→ 安装

从本地目录装:把整个目录放到任意位置,让 agent 用 plugin_manager 的 install_bundle 指向这个目录的绝对路径,然后重启 Harness。侧边栏出现「书架」即装好。

可选依赖:论文 PDF 的封面缩略图和文字提取需要 poppler,装一下:

brew install poppler

没有它也能用——PDF 仍可原样阅读,只是资料区显示纯文字封面、阅读页没有「提取文字」。

第一次打开

  1. 侧边栏「书架」→ 右上「设置」→ 填自己的豆瓣 ID(个人主页地址 book.douban.com/people/<ID>/wish 里那串数字)。插件不预置任何人的 ID。
  2. 书库目录默认是 ~/Documents/书架(自动创建),也可以换成任意目录。
  3. 第一次刷新只拉书单,封面和简介在后台一本一本补(约 1.5 秒一本,29 本一分钟左右),面板会自己更新,不用点。

书架页

  • 卡片按想读时间排序,顶部可以搜索书名/作者。
  • 点封面进阅读页并从上次的位置继续;点书名或作者区域打开详情页。
  • 详情页里有简介、评分和四个正版渠道链接;没配对到本地文件的书可以「导入本地书」,文件会存进书库目录并自动配对(同名不覆盖,存成 书名 (2).epub)。
  • 工具栏的「导入本地书」不用先选中某本书。

阅读器

  • 整本书铺成一条连续的双栏流,翻到一章末尾会顺势进下一章,页码是全书页码。
  • 翻页:← →、PageUp PageDown、滚轮都可以。一次滚动手势只翻一页,触控板滑一下不会连翻十几页。
  • 右上角可以切衬线 / 黑体、调字号(13–26px),选择会记住。
  • 章节下拉是目录跳转;关掉再打开会回到上次读到的章节和页码。

双语对照:点右上角 译。只翻译当前章,进入新章节才会请求下一章,关掉就停。原文是英文译成中文,原文是中文译成英文。译文有本地缓存,同一段第二次阅读不再走网络。

论文 PDF:右上角多一个「提取文字」,把文字层抽出来变成可排版的章节,可以双栏阅读和双语对照(只翻当前页);「原文 PDF」随时切回原版。右侧的原页图默认整页居中显示,头部可以在「放大 / 整页」之间切换,也可以直接点图放大;窗口窄的时候会改成上下堆叠。

资料区

没和豆瓣书目配对上的文件会出现在书架下方,按修改时间倒序:

  • PDF 封面取第一页(标题优先取 PDF 自己的 /Title,没有就从正文里挑标题行,认不出来就退回文件名),标题下面显示页数和大小。
  • 操作在卡片标题下方:显示 / 重命名 / 删除。
  • 重命名只改名字、保留扩展名,重命名后阅读进度跟着走。
  • 删除不是真删,文件被移到书库目录下的 .trash/,需要时可以从 Finder 拖回来。

设置

项 含义 默认
豆瓣用户 ID 个人主页 /people/ 后面那段 空,首次使用时填
书库目录 你的电子书目录 空 → ~/Documents/书架

界面里保存的偏好会覆盖 cordis.patch.yml 里的配置;想回到文件里的值,删掉 $DSH_HOME/storages/bookshelf/prefs.json 即可。

数据在哪

全部在 $DSH_HOME/storages/bookshelf/,插件目录本身不含任何个人数据:

  • shelf.json:豆瓣书目和打开过的书的详情缓存
  • prefs.json:界面里保存的偏好
  • covers/:封面、论文封面与 PDF 原页缓存
  • translations.json:译文缓存

书库目录本身只被索引和读取,不会被复制或移动。

常见问题

豆瓣要求人机验证 / 403:豆瓣对匿名请求有频控。命中后面板顶部会提示,已有书架不会被清空;插件在 20 分钟内不再重试,避免把封禁拖长,过一会儿点「刷新」即可。

论文没封面、不能提取文字:缺 poppler,brew install poppler 后重新打开。

译文失败:底部会显示原因,点一下重试。翻译走匿名 Google 端点,需要能访问 translate.googleapis.com。

书名识别成乱码或编号:资料区卡片可以直接重命名,改名后进度跟着迁移。

「在 Finder 中显示」没反应:这个功能用的是 macOS 的 open,其他系统会提示不支持,不影响阅读。

边界

不接 Z-Library 之类的影子书库:那些站点分发的多数是未经授权的版权内容,自动化下载属于侵权。插件只读你自己的文件,以及公版书库(Project Gutenberg / Open Library)的合法内容,其余书目给出正版渠道入口。

开发与发布

目录结构、本地调试、打包与发布流程见 DEVELOPING.md。

许可

MIT

内容来自项目 README(GitHub)↗

链接

同类插件

查看整个分类 →

社区评论

评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。