DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-zotero-skill

E

dsh-zotero-skill

Discovered★ 4

为 DeepSeek Harness 打造的 Zotero 技能:检索本机文献库、导出 BibTeX、给 LaTeX / Markdown 草稿插入引用、按需读取附件全文。纯 Python 标准库,无需 MCP 或 API Key;本地 API 只读,修改文件前自动备份。改编自 OpenAI Zotero 插件(MIT)。

Machine translated

Zotero Skill for DeepSeek Harness

Python License Platform

让 DeepSeek Harness 直接操作你本机的 Zotero 文献库:检索论文、导出 BibTeX、给 LaTeX / Markdown 草稿插入引用,按需读取附件全文。

纯 Python 标准库实现,不需要 pip、MCP 服务或 Zotero 云端 API Key;默认只与本机 127.0.0.1:23119 通信。

特性

  • 检索:按关键词搜索顶层条目,返回题名、作者、年份、item key 与 BibTeX key。
  • 浏览:列出集合、标签、分组,或导出整个文献库清单。
  • 引用:读取你指定的 .tex / .md 草稿,在唯一标记处插入 \cite{key} 或 Pandoc [@key],并同步 references.bib。
  • 安全写入:修改草稿或 .bib 前自动备份;.bib 按 key 去重,不重复追加。
  • 按需读取:只有你明确要求时才读取附件路径或 PDF 全文,避免把本地路径和正文无谓地送进上下文。
  • 导入:通过 Zotero Connector 导入 BibTeX / RIS,属于写库操作,脚本会用 --yes 显式确认。
  • 每日收录:按你设定的主题,每天从 OpenAlex 抓取新论文,按期刊影响力、引用速度、相关度和新鲜度排序,自动导入指定分类;数量、开关、时间都由你决定。
  • 不碰数据库:只走 Zotero 官方本地 API,不直接读写 zotero.sqlite。

安装

1. 准备

  • Python 3.10+(Windows 上用 py -3 或 python,macOS / Linux 用 python3)
  • 桌面版 Zotero(开发时验证于 Zotero 10.0.6)
  • DeepSeek Harness

2. 装进 Harness

两种方式,任选其一。

方式 A:作为 DSH 插件安装(推荐)

仓库自带 dsh.bundle 清单,装成插件后 skill 自动出现在技能目录,不需要复制文件:

dsh plugin --profile <你的 profile> add github:Eason-0712/dsh-zotero-skill

也可以从本地检出安装(开发调试用):

dsh plugin --profile <你的 profile> add "link:/path/to/dsh-zotero-skill"

卸载:dsh plugin --profile <你的 profile> remove dsh-zotero-skill。

方式 B:作为独立 skill 目录安装

# 仓库根目录下执行
python install.py

安装器默认复制到 $DSH_HOME/skills/zotero(未设置时 ~/.dsh/skills/zotero),目标已存在时不会覆盖。也可以手动把整个 zotero/ 目录复制过去,最终结构必须是 skills/zotero/SKILL.md。

项目级(只在某个仓库生效):

python install.py --skills-dir .dsh/skills

想装到别的盘或自定义目录,用 --skills-dir 指定,再让 Harness 扫描该目录即可。

3. 打开 Zotero 本地 API

Zotero → 设置 → 高级 → 其他 → 勾选「允许此计算机上的其他应用程序与 Zotero 通信」。

也可以让脚本改配置(先完全退出 Zotero):

python zotero/scripts/zotero.py enable --restart

它会备份 prefs.js 后写入 extensions.zotero.httpServer.localAPI.enabled,再启动 Zotero;不会强杀进程。

4. 验证

python zotero/scripts/zotero.py status --json

api_running: true、api_status: 200 即连通。

使用示例

在 Harness 里直接说:

检索我文献库中 transformer 相关的论文,给出作者、年份和 BibTeX 键。

读一下 /path/to/draft.md,把相关论断后面补上引用,并更新同目录的 references.bib。

把这篇论文的附件全文读出来,总结方法部分。

Skill 会自己决定调用哪些子命令,并在写文件前确认标记和备份。

每日自动收录

每天早上自动把新论文收进 Zotero,数量、主题、开关都由你决定。

开启

# 设定主题与数量(最多 30 篇),并在 Zotero 里先选中一个目标分类
python zotero/scripts/zotero.py daily-config --enable \
  --topics "transformer;large language model" --max 10 --mailto "you@example.com"

# 先看候选,不写库
python zotero/scripts/zotero.py daily --dry-run

# 真正导入
python zotero/scripts/zotero.py daily

关闭:daily-config --disable。关闭状态下 daily 只返回提示,加 --force 可临时跑一次。

定时

# 每天 08:00 自动运行(Windows 任务计划程序)
python zotero/scripts/zotero.py daily-schedule --time 08:00

# 删除定时任务
python zotero/scripts/zotero.py daily-schedule --remove

任务只在该 Windows 用户登录时触发;Zotero 没开着时脚本会尝试启动它并等待接口就绪。

排序依据

候选论文先按主题从 OpenAlex(免费、无需 API Key)检索最近 N 天,再按加权分数排序:

维度默认权重含义
期刊影响力0.45期刊近两年平均被引(OpenAlex 2yr_mean_citedness)
引用速度0.30年化被引次数,避免老论文靠累计引用刷分
主题相关度0.15OpenAlex 搜索相关度
新鲜度0.10越新越高,7 天窗口内自然衰减

同一期刊默认最多 3 篇(--max-per-venue),避免一天全是同一个刊物。已导入过的 DOI 会记录在 ~/.zotero-skill/state.json,不会重复推送。

配置项

键默认说明
enabledfalse总开关
max_items10每次导入上限,最大 30
days_back7回溯天数,1–30
topics[]研究主题,分号分隔
max_per_venue3同一期刊上限
include_preprintsfalse是否纳入预印本
min_venue_score0期刊 2 年被引下限,过滤水刊
weights见上表各维度权重
mailto""OpenAlex 礼貌池联系邮箱
schedule_time08:00定时任务时间

配置和状态都在 ~/.zotero-skill/,可用 ZOTERO_SKILL_CONFIG_DIR 改位置。注意:这里用的是 OpenAlex 的期刊被引指标,不是 JCR 影响因子;两者不等价,别把分数当 IF 用。

命令

命令作用
status检查本地 API、Connector、版本
inventory列出条目
collections / tags / groups列出集合、标签、分组
search <query>关键词检索,--with-bibtex-keys 附带引用键
export-bibtex导出 BibTeX(--item-key 单篇,--out 写文件)
sync-bib导出整库到 references.bib
citations按样式渲染引用文本(如 --style apa)
cite在草稿标记处插入引用并同步 .bib
children / fulltext / file-url附件、全文、文件路径
selected-target查看 Connector 当前选中的库/集合
import-bibtex / import-ris经 Connector 导入(需 --yes)
daily按主题抓取并按分数导入新论文(--dry-run 预览)
daily-config查看/修改每日收录配置
daily-schedule创建/删除 Windows 每日定时任务
probe探测各 API 路由可用性
enable / disable / restart管理本地 API 开关与启动

所有命令加 --json 输出机器可读结果。

目录结构

.
├── package.json                     # dsh.bundle 清单,dsh plugin add 靠它识别
├── cordis.patch.yml                 # 插件挂载行
├── lib/index.js                     # 向 ctx.skills 注册内置 skill 的 provider
├── zotero/
│   ├── SKILL.md                     # skill 入口,Harness 读取它来发现技能
│   ├── references/
│   │   ├── deepseek-harness.md      # 安装、连接排查、环境变量
│   │   └── local-api-routes.md      # 本地 API 与 Connector 路由
│   └── scripts/zotero.py            # 全部功能,仅标准库
├── test/provider.test.mjs           # provider 的 Node 测试
├── tests/test_zotero.py             # 模拟 API 的 Python 单元测试
├── install.py                       # 复制式安装器(方式 B)
├── LICENSE
└── NOTICE.md

装成插件后,lib/index.js 在 apply() 里注册一个 rank 600 的 provider,直接读包内的 zotero/SKILL.md。相比复制到 ~/.dsh/skills,升级只需 dsh plugin 更新,也不会有两份副本不同步的问题。

设计取舍

  • 只读本地 API:检索、导出、全文都走 /api/;该接口本身只读,写操作交给 Connector。
  • 写文件前备份:cite 会先校验草稿和标记,再备份草稿与 .bib;sync-bib / export-bibtex --out 会覆盖目标文件,所以 Skill 要求先确认路径。
  • 本机请求绕过代理:localhost、127.0.0.1、::1 直连,避免系统代理吞掉本机请求;非回环地址才走代理配置。
  • UTF-8:Windows 控制台下的中文 JSON 与路径不会乱码。
  • 不强制结束 Zotero:需要改配置时要求先正常退出,避免 prefs.js 被覆盖。

测试

python -m unittest discover -s tests -v   # Python 侧
node --test test/*.test.mjs               # 插件 provider

测试用临时文件和模拟 API,不读写真实文献库。GitHub Actions 会在 Ubuntu / Windows 与 Python 3.10 / 3.13 上跑 Python 测试,并在 Node 20 / 22 上跑 provider 测试。

已知限制

  • Word 里的 Zotero 动态引用域不在能力范围内;脚本不会用替换文本的方式伪装成已插入引用。
  • 远端 / WSL / 容器里 127.0.0.1 指向的是运行环境本身,不在同一台机器上时无法直接连到桌面 Zotero。
  • enable / disable 只改本机 prefs.js,对远端 Zotero 无效。
  • 本地 API 的能力随 Zotero 版本变化,遇到 403 / 404 先检查开关和版本。
  • 每日收录依赖 OpenAlex 的网络访问;离线或被限流时会跳过本次抓取,不会写坏文献库。
  • 收录只导入题录与摘要,不下载 PDF;需要全文时再按需获取。
  • 期刊指标来自 OpenAlex,与 JCR 影响因子不是同一套数据,仅用于相对排序。
  • 定时任务只在该 Windows 用户登录时运行;机器关机或睡眠时当次会跳过。

来源与许可

本项目改编自 OpenAI 的 Zotero 插件 0.1.2(MIT):保留了其 zotero.py 与本地 API 路由说明,并针对独立运行、DeepSeek Harness、Windows 和本机代理环境做了修改。

  • 原始版权与许可全文见 LICENSE
  • 来源与改动范围见 NOTICE.md
  • 本项目不是 OpenAI、DeepSeek 或 Zotero 官方发布的适配版本

English

A DeepSeek Harness skill for the local Zotero library: search items, export BibTeX, add citations to LaTeX/Markdown drafts, read attachment full text on demand, and fetch a ranked daily digest of new papers in your topics from OpenAlex.

Install by copying zotero/ to ~/.dsh/skills/zotero (or run python install.py), enable Zotero's local API, then ask your agent to search your library. For the daily digest, run zotero.py daily-config --enable --topics "..." and optionally daily-schedule --time 08:00. Adapted from OpenAI's Zotero plugin 0.1.2 under the MIT license.

Comments

Loading…

Similar plugins

dsh-zotero

by Hongcheng-LI

Zotero tools for DeepSeek Harness: search library, read metadata/fulltext, list attachments, download PDFs, manage notes via the Zotero local API

Tools & CapabilitiesManifest valid

★ 21

↓ 1.9k/wk

MIT

TypeScript

Oct 28, 2026

dsh plugin --profile web add dsh-zotero

by copylee711

Academic tools in TypeScript, no Python or MCP server: the Zotero library through its local API or zotero.org (search, annotations, full text, citation export; add by DOI / arXiv id, notes and tags wh

Tools & CapabilitiesManifest valid

★ 4

MIT

TypeScript

Oct 22, 2026

dsh plugin --profile web add @copylee/dsh-academic

by Vncntvx

Zotero toolkit for DeepSeek harness; Turn your Zotero library into an evidence store for agents.

Tools & CapabilitiesManifest valid

★ 53

↓ 1.9k/wk

MIT

TypeScript

Oct 29, 2026

dsh plugin --profile web add dsh-zotero

dsh-sciwork 把「科研模式」装进 DeepSeek Harness:一个落在自己硬盘上的科研库、一套技能与一块面板。课题、图、草稿、文献、数据表、期刊档案、投稿台账各有其位,写入都经库脚本落盘并登记,面板只读为主、自己不出图。技能把「怎么画、怎么写、怎么引」固化成纪律:出图交给 Origin 链路,写作、引用、投稿格式各有专门技能,外加 12 份期刊档案兜底。零 npm 依赖,路径运行时解析,换台机器照样跑。

Tools & CapabilitiesTerminal & ClientsManifest valid

★ 0

MIT

JavaScript

dsh plugin --profile web add dsh-sciwork

by fangqiing

本地知识库插件 for DeepSeek Harness:每篇一个 Markdown,支持全文搜索、标签、层级目录、附件与 Office 零依赖抽取

Tools & CapabilitiesMemory & ContextManifest valid

★ 1

MIT

JavaScript

Oct 22, 2026

dsh plugin --profile web add dsh-knowledge-lite

by Fisfzy

Zotero 文献采集入库插件(DSH external plugin):多源检索(OpenAlex/arXiv/Crossref/Europe PMC/Semantic Scholar)+ OA 下载链接解析(Unpaywall)+ 充分性审计 + 入库本地 Zotero + 触发 zotero-wave-rag 重建

Manifest valid

★ 6

MIT

JavaScript

Aug 8, 2026

dsh plugin --profile web add @dsh-external/zotero-harvest