DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

chanhaoxian5-ship-it /

chanhaoxian5-ship-it/dsh-zotero

Verified

Zotero Desktop integration for DeepSeek Harness: search, read indexed full text, import and export references.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@011c82ff

DSH Zotero

CI

在 DeepSeek Harness 中使用本机 Zotero:搜索文库、读取附件索引全文、导入 RIS/BibTeX、导出参考文献和插入引用。基于 OpenAI Zotero plugin 0.1.2 适配,完整保留原插件及原始 Python 脚本。

环境要求

  • DSH >=0.2.1-rc.5 <0.3.0,profile 中提供 skills 服务。
  • Node.js >=22、Python >=3.10。
  • Zotero Desktop 正在运行,本地 API 已启用;默认地址 http://127.0.0.1:23119。

实际验证环境为 Windows、DSH 0.2.1-rc.5、Zotero 10.0.6。适配层通过 Windows/Linux CI;macOS 与实际模型对话调用尚未验收。

安装发布版本

在终端执行(只在你准备好安装时运行):

dsh plugin --profile desktop add 'github:chanhaoxian5-ship-it/dsh-zotero#v0.2.0'

DSH 根据本包的 dsh.bundle 声明自动维护 profile 的依赖和 bundles 列表。无需手工编辑 profile,也无需把 skill 复制到全局目录。插件直接分发可运行的 .mjs 和 .py 文件,没有安装构建脚本。

先查看组合配置:

dsh --profile desktop --dump-config

确认其中出现 dsh-zotero 后,重新启动 DSH,并在新对话中输入:

用 zotero 技能搜索我的文库中关于 retron 的论文。

若 dsh 不在 PATH,可使用桌面安装目录的 resources/runtime/cli/bin/dsh.cmd。如果当前 profile 有其他插件的版本兼容性错误,须先处理对应插件;这类错误与 Zotero 本地 API 是否可连接是两项检查。

也可以从 Releases 下载 .tgz,然后执行 dsh plugin --profile desktop add 'D:/下载目录/dsh-zotero-0.2.0.tgz'。如需不可变来源,用发布提交的完整 SHA 替代 #v0.2.0。本项目目前未发布到 npm。

卸载:

dsh plugin --profile desktop remove dsh-zotero

使用示例

  • “用 zotero 搜索 cross-species retron,列出标题、年份和条目 key。”
  • “读取这篇论文的 PDF 正文,先检查附件和索引覆盖情况。”
  • “把这条已核对的 RIS 文献加入 Zotero 当前分类,先检查是否重复。”
  • “把选中的文献导出成 references.bib。”

0.2.0 的适配层修复了原脚本的 DOI 搜索漏命中,搜索会完整分页读取文库并返回 DOI 和分类 key。全文接口提供 Zotero 的文本索引,图表、扫描件和页面布局仍需 PDF 阅读工具。插件不内置外部 DOI 元数据解析、全文或补充材料下载器。

导入可靠性

node skills/zotero/scripts/run-zotero.mjs plan-import --format ris --file 'D:/论文/paper.ris'
node skills/zotero/scripts/run-zotero.mjs import-ris --file 'D:/论文/paper.ris' --yes
node skills/zotero/scripts/run-zotero.mjs import-status
node skills/zotero/scripts/run-zotero.mjs duplicates
  • 在整个个人文库中按规范化 DOI 去重,已有条目即使在其他分类里也会跳过;批次内的同 DOI 重复也会跳过。
  • 仅同标题或 DOI 冲突的条目暂停核查,避免误把预印本和正式版合并。
  • 读失败、分页不完整、文库版本变化或目标分类切换时停止;不会把读取失败当作“文库里没有”。
  • 导入前记录 pending,并发进程加锁;响应成功后仍回读新 key 才报告成功。
  • 超时、客户端中断或部分导入后阻止盲目重发,import-status 只核对结果,不再次发送。

安全导入目前只支持个人文库;群组的搜索、inventory 和 duplicates 可显式指定 --library groups/数字ID。已有条目的分类不会自动改变,已有副本也不会自动合并或删除。BibTeX 宏、字符串拼接、指令和标题内 TeX 命令会要求改用字面值 BibTeX 或 RIS。

导入记录保存在 ~/.dsh/state/dsh-zotero(可用 ZOTERO_DSH_STATE_DIR 修改);升级时保留该目录。待核查结果不能靠改 session 或清除记录来自动重试。锁只协调使用同一服务地址和状态目录的本插件进程,无法阻止其他软件或原生 UI 同时导入。详情见 导入与恢复说明 和 问题与验证记录。

组成

文件 作用
index.mjs DSH 原生技能提供器,注册 zotero 并填入实际绝对路径
cordis.patch.yml DSH bundle 配置层
skills/zotero/SKILL.md DSH 使用流程
skills/zotero/scripts/run-zotero.mjs 选择 Python、设置 UTF-8、透传参数
skills/zotero/scripts/zotero_dsh.py 完整扫描、身份核对、导入记录、并发锁和回读验证
skills/zotero/scripts/zotero.py 原始 Zotero API / Connector 脚本
upstream/codex-zotero-0.1.2/ 原 Codex 插件完整副本,排除生成缓存

没有额外 MCP 服务或云端 Zotero Key。启动器优先使用 ZOTERO_PYTHON 指定的解释器,否则选择 DSH 自带 Python,再尝试 PATH 上的 Python;指定路径不要附加参数。ZOTERO_LOCAL_BASE_URL 可修改本地 API 地址。

读取和导入通过本机 HTTP 完成;送入 DSH 模型的文本仍由所选模型服务处理。安全导入写入个人文库当前选中的分类,操作前应检查目标,过程中避免切换分类。

开发与验证

npm test
node skills/zotero/scripts/run-zotero.mjs --help
npm pack --dry-run

这些检查不需要运行 Zotero,也不会安装插件或调用模型。连接检查需要启动 Zotero:

node skills/zotero/scripts/run-zotero.mjs status --json
node skills/zotero/scripts/run-zotero.mjs search 'cross-species retron' --json

可选的真实 DSH 技能注册检查:在已安装 DSH 的 Electron Node 环境下运行 tests/runtime-check.cjs,用 DSH_RUNTIME_ROOT 指向含 DSH node_modules 的目录,例如 resources/app.asar/dsh。它只加载隔离的技能注册表,不修改 profile,也不调用模型。

开源与发布

本仓库按 DSH 官方 bundle 格式分发,可从 GitHub、发布 tarball 或 npm 安装;上架“发现”是另外一项可选操作,使用独立 JSON 索引源。详细依据和发布步骤见 发布流程。

许可证及上游出处见 LICENSE 和 NOTICE.md。这是社区适配版本。

—/ 5

No ratings yet

Verified DSH bundle

Commit 011c82ffdcf6

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout