dsh-zotero-sync:把 DSH 对话文档同步到本机 Zotero

前言

用 DeepSeek Harness(DSH)或同类 Agent 做文献精读、写笔记时,产出往往散落在多轮会话里:这一轮是一份 Markdown,下一轮是一份 PDF 或 Office 文档。若要纳入 Zotero 管理,通常要手动拖文件、建条目、挂附件,和对话上下文脱节。

dsh-zotero-sync 是社区维护的 DSH 插件,通过 Zotero 桌面端自带的本地 Connector(http://127.0.0.1:23119)把对话里产出的文档写入文库,也可只读检索文库、读元数据、提取 PDF 全文、导出 BibTeX。不需要 Zotero 账号、API Key,也不用在 Zotero 里安装扩展。

这是什么

  • 名称:dsh-zotero-sync(npm 包名同 GitHub 仓库)
  • 维护者:520limited(作者 Ycx66)
  • 版本(package.json):1.1.1
  • 许可证:MIT
  • 定位:DeepSeek Harness 插件;上传走 Connector 协议,读取走 Zotero Local API(只读)

每个上传文件在 Zotero 中创建 document 条目,标题为文件名或你指定的标题,libraryCatalog 显示 DeepSeek Harness;原文件作为附件流式写入 storage。插件不访问 zotero.sqlite,不依赖 Zotero 重启。唯一前提:Zotero 桌面端处于运行状态(README 写明 Connector 在 6.x–10.x 协议一致,并在 Zotero 10.0.6 实测)。

连接时机:仅在你点击上传或执行 sync 时访问本机 Connector;挂载时零请求、无后台轮询、无自动上传。

核心功能

写入文库

支持 Markdown、PDF、Office 等(具体由 scope 配置决定)。四个入口共用同一套 Host 实现:

入口 位置 范围
单文件按钮 回合尾部 Zotero 卡片,每行右侧 单个文件
批量按钮 同一卡片右上角 本回合全部文档
「Zotero 同步」胶囊 输入框下方 整段会话(按 source/scope 筛选)
/zotero 与 zotero_sync 工具 输入框 / Agent 全部能力

也可用自然语言,例如:「把刚才那份笔记传到 Zotero」。

读取文库(v1.1.0 起)

搜索条目、读详情与引文(BibTeX / RIS / CSL JSON)、提取 PDF 全文(依赖 Zotero 全文索引)、返回附件本机路径、列出分类与标签。Agent 工具为 zotero_library(actions:search · item · fulltext · file · collections · tags)。

读取为只读:不发写请求、不申请写授权 key。一次性前提:在 Zotero → 设置 → 高级 → 杂项 勾选「允许此计算机上的其他应用程序与 Zotero 通讯」,并重启 Zotero。上传不受此开关影响。

配置维度

来源 source:session(默认,仅本会话写出/交付的文件)或 workspace(扫描工作目录,限深 3、最多 20 个,跳过 node_modules、dist、.git 等)。

范围 scope:md · docs(默认,含 Markdown、txt、PDF、Office、网页/电子书)· all(仅对 session 来源生效)。

去重:按文件内容 sha1 记录历史;内容未变再次 sync 会提示已在 Zotero;--force 可强制重传。历史在 plugin-data/dsh-zotero-sync/history.json。

安装与启用

环境要求:DSH engines.dsh: >=0.2.0-0,Node ≥ 18(DSH 自带),Zotero 桌面端运行中。

方式一:命令行(推荐)

下面命令来自仓库 README,profile 为 web 时安装到对应配置:

dsh plugin --profile web add github:520limited/dsh-zotero-sync

安装后重启一次 DSH,以便 Client 半边随页面重新加载。

方式二:Discover 市场

在 DSH 设置 → 插件 → 索引源添加:

https://raw.githubusercontent.com/520limited/dsh-zotero-sync/main/market/index.json

之后在 Discover 搜索 zotero 安装。

方式三:本地目录

在插件管理器中安装克隆后的目录(开发调试用)。

可选配置可在 profile 补丁层覆盖 bundle 内 cordis.patch.yml,例如:

- id: zotero-sync
  name: dsh-zotero-sync
  config:
    baseUrl: http://127.0.0.1:23119
    scope: docs
    source: session
    target: ''
    tags: ['DSH对话笔记']
    workspaceLimit: 20
    workspaceDepth: 3
    maxFileBytes: 83886080

优先级:调用参数 > 运行时 settings.json > patch config > 内置默认。

典型用法

斜杠指令

先查看连通性与目标:

/zotero status
/zotero targets

指定集合与范围后同步:

/zotero use C23
/zotero scope md
/zotero source workspace
/zotero sync

显式路径或强制重传:

/zotero sync "D:\笔记\a.md"
/zotero sync --force

读文库示例:

/zotero find 超声
/zotero read ABCD1234
/zotero collections

read 支持 --bibtex、--file 等选项(见 README)。

Agent 工具

zotero_sync 的 action:status · targets · candidates · sync · configure。

典型读文库流程(README 示例):在 Zotero 里搜索主题 → 读某篇方法部分 → 用指定引用格式回答;Agent 走 search → fulltext,全程只读。

适用场景与注意

适合:在 DSH 里写笔记、导出 PDF/Office,希望一键进 Zotero;希望 Agent 基于你已有文库检索、读 PDF 全文写综述或引用,而不复制粘贴元数据。

权限与风险(插件 README 表格摘要):

  • 网络仅访问本机 127.0.0.1:23119(可改 baseUrl),不向外部服务器发数据。
  • 上传只读你选中的文件;source: session 下不会静默上传会话未触及的文件。
  • 已上传条目无法通过插件删除(Connector 无删除端点),需在 Zotero 内手动删。
  • Connector 会话约 10 分钟过期;文库内不做去重,仅本地 sha1 去重。

插件以当前 DSH 进程权限运行,安装前请自行查看 GitHub 源码 与 MIT 许可证。DSH 社区插件目录(如 skillhub.cn)为独立生态站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-zotero-sync 把「对话交付物 → Zotero 条目」和「Zotero → Agent 只读检索」接到同一条本机链路上,避免 API Key 与 Zotero 内插件依赖。上传与读取分开关、分协议,行为在 README 中写得很透明。

  • 目录页:https://www.skillhub.cn/plugins/520limited/dsh-zotero-sync
  • 仓库:https://github.com/520limited/dsh-zotero-sync
羽毛球分组比赛记分
小程序二维码

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

小夜