一个你真的会
回来翻的论文库。
文献管理器很擅长归档论文,极不擅长让你回来再读。 MyLibrary-Plus 是架在 Zotero 之上、自己托管的一层:图优先的时间线, PDF 与自己的笔记共用一套批注,外加一个把整条批注线程交给 AI agent 的 JSON 接口。
data/ 目录
MIT
Python 3.10+
自带示例库
它能做什么
下面这些全部跑在你自己机器上:一个 SQLite 文件、内容寻址的 PDF,Web 界面只绑
127.0.0.1。
图优先的时间线
论文按时间倒序排成一片带图的卡片流,点开是全屏灯箱;可打标签、写一句话短评、标记阅读状态,也能按标签或「有讲义」筛选、搜索。
批注只有一个地方
在 PDF 里选文字、在讲义里选文字,或者框选一整张图,都进同一个侧栏:标签、时间戳、回复、收藏、未读状态。
讲义模式
左边 PDF、右边你的 Markdown 笔记:KaTeX 公式、嵌图、背景知识框、[[双链]] 到共享概念笔记并带反向链接。一篇论文可以挂多份讲义。
讲义里的活组件
```widget 围栏块可以嵌你自己写的 HTML/JS——滑块、演示、示意图——从该论文的资产目录供给,并跟随全站主题。
夜览模式
全站 系统 / 浅色 / 深色 三态切换,首帧之前就应用、不闪白;时间线、阅读器、讲义、面板和交互组件都有配套深色配色。
Zotero 离线导入
zotero_import.py -c "分组名" 直接读 Zotero 的 SQLite,复用本地已有的 PDF——付费墙论文也能抽出图,全程不联网。
给 AI 用的批注接口
GET /api/papers/{id}/annotations/context 返回论文 + 批注 + 使用说明的 JSON;agent 用 role: "assistant" 把回复写回线程。
自带示例库
examples/data/ 是一套公共论文组成的小库,配 verify.py:刚 clone 下来就能把每个界面、每条路由跑通,再放自己的论文。
界面
截图全部来自仓库自带的示例库,不是任何人的真实库。
```widget 块嵌进来的活组件。
2 分钟跑起来
git clone https://github.com/george-wyy/MyLibrary-Plus.git && cd MyLibrary-Pluspython3 -m venv .venv && .venv/bin/pip install -e .cp -R examples/data ./data——或者从空库开始,加自己的论文./mylibrary serve,打开http://127.0.0.1:8765
# 不用导入任何东西,先看每个界面
cp -R examples/data ./data
./mylibrary serve
# 或者让自带的检查脚本证明安装没问题
python3 examples/verify.py --serve
# 换成自己的论文
./mylibrary add "Attention Is All You Need"
python zotero_import.py -c "阅读清单"
127.0.0.1。想在手机上看,走私有 overlay 网络(如 Tailscale)
或带鉴权的反代——仓库里两种都有文档。
它站在哪一层
Zotero 继续当存储和 BibTeX 后端;MyLibrary-Plus 是你重新遇到论文、看图、批注、 再把线程交给 agent 的那一层。讲义就是你自己写的 Markdown——没有锁定,也没有账号。
为「被 agent 驱动」而设计
批注不是死胡同——它是本地 API 上一份结构化的上下文。
# 某篇论文的全部批注 + 使用说明
curl localhost:8765/api/papers/$PAPER_ID/annotations/context
# 把回复写回线程(侧栏里会显示为助手回复)
curl -X POST localhost:8765/api/papers/$PAPER_ID/annotations/$ID/replies \
-H 'content-type: application/json' \
-d '{"content": "关键在于残差通路…", "role": "assistant"}'
Agent 能读的文档
docs/ai-integration.md 逐条列出路由和载荷;docs/architecture.md 讲清数据模型和文件布局。
可信的检查脚本
examples/verify.py 会真的把应用拉起来,逐条验证 README 里宣传的路由——每次发布前用的就是这道闸。
一切都是文件
讲义是 data/lectures/*.md,概念笔记是 data/notes/*.md,论文在一个 SQLite 文件里。Agent 不用打开浏览器就能写这三样。