前言¶
写论文、投稿稿或技术报告时,很多人把 LaTeX 放在 Overleaf 上协作:浏览器里改 main.tex,编译结果也在云端。换成 DeepSeek Harness(dsh)这类智能体运行时之后,问题就反过来了——模型默认只能看到本机工作区,看不到 Overleaf 项目里的文件,更没法按章节改一节、再推回去。
DeepSeek Harness 的设计是「一切皆插件」:模型、工具、会话、UI 都可以挂到 Cordis 内核上组合。社区里已经有人把这件事接到 Overleaf:插件名叫 dsh-overleaf,由 fly233338 维护,分类在「开发与运行时」。它并不自己实现一套 Overleaf API,而是把现成的 OverleafMCP(npm 包 @mjyoo2/overleaf-mcp)作为依赖,用 MCP stdio 拉起来,再把工具交给 dsh 宿主提供的 MCP Client。
需要先说清楚来源。下面介绍的安装命令来自社区插件目录页,GitHub 仓库与 npm 包可以交叉核对。该目录站点是独立的社区索引,和 DeepSeek / 幻方没有官方从属关系,不要把它当成官方应用商店。
这是什么¶
dsh-overleaf 是一个 MIT 许可的社区开源插件,主要语言是 JavaScript,当前仓库版本为 0.1.0。目录页收录时 GitHub 星标为 7,最近一次推送记录在 2026-08-14。
一句话定位:用一份 Git token 和一组项目 ID,把多个 Overleaf 项目接到当前 dsh 进程里,让智能体在会话中列出项目、读文件、看章节,并在明确给出提交说明后,通过 Git 把修改推回 Overleaf。
它解决的是「稿在云端、智能体在本地」的脱节。目录页的简介偏重浏览和读取;仓库 README 和源码里还包含写入路径。两者并不矛盾:读是日常用法,写则走 Overleaf 的 Git 集成,并且强制要求 commitMessage。
核心能力¶
插件启动时会解析 dsh-overleaf.config.json,生成 OverleafMCP 使用的内部项目表,然后用 Node 进程拉起 @mjyoo2/overleaf-mcp。工具组名称是 overleaf,模型侧会看到以 mcp__overleaf__ 开头的调用。
结合仓库说明和 OverleafMCP 文档,当前能用到的能力大致如下:
1、列出已配置的多个 Overleaf 项目(list_projects)。
2、按扩展名列出项目文件,默认是 .tex(list_files)。
3、读取指定路径的文件内容(read_file)。
4、解析 LaTeX 文件中的章节结构,或按标题取出某一节(get_sections、get_section_content)。
5、查看项目状态摘要(status_summary)。
6、把整个文件或某一节写回 Overleaf;写入必须带 commitMessage,底层是 Git commit 再 push(write_file、write_section)。
插件还会往系统提示词里插入一段约定:先调用 mcp__overleaf__list_projects,后续工具把返回的项目 ID 当作 projectName,整段任务里不要换项目;写入必须给出明确的提交说明。
仓库作者在 README 里写过自己的使用感受:比较适合通读整个 LaTeX 工程、根据已有报错去改源码、以及全文统一术语和符号。这是维护者自述,不是第三方评测。另外,插件本身并不编译文档,所谓「修编译错误」依赖你把日志贴进会话,或模型根据源码本身做静态修改。
环境要求¶
仓库 README 和 package.json 写明了运行门槛:
- DeepSeek Harness 0.1.0-rc.5 或兼容版本。插件把
@deepseek-ai/dsh-mcp-client声明为 peerDependency,由宿主提供,不把 OverleafMCP 源码拷进本仓库。 - Node.js 22.19.0 或更高。
- 一个 Overleaf Git 集成 token。Overleaf 官方文档写明:Cloud 上的 Git 集成是付费功能,需要项目所有者具备相应订阅或被授予该能力;token 在账号设置里创建,有效期一年,同一账号最多 10 个,可用来访问你有权限的全部 Git 项目。
没有可用的 Git 集成时,插件即使装上了也接不到项目。
安装这个插件¶
社区目录页给出的安装命令如下,在 DeepSeek Harness 终端里运行即可:
dsh plugin add github:fly233338/dsh-overleaf
dsh CLI 会从 GitHub 解析这个仓库并装进当前配置。需要可复现安装时,按目录页的写法固定 commit:
dsh plugin add github:fly233338/dsh-overleaf#commit
把 #commit 换成实际哈希。目录页也提醒:插件以当前 dsh 进程的权限运行,安装时可能执行代码,装之前应检查源码仓库和许可证。
仓库 README 还提供了另外两条路径,适合从源码调试或本机已安装 dsh CLI 的情况。从 DeepSeek Harness 源码目录安装:
cd /path/to/deepseek-harness
pnpm install
pnpm run build
pnpm dsh plugin --profile web add /path/to/dsh-overleaf
CLI 已在 PATH 上时:
dsh plugin --profile web add dsh-overleaf
dsh web
npm 上可以查到同名包 dsh-overleaf@0.1.0(2026-08-14 发布)。日常使用仍以目录页的 github:fly233338/dsh-overleaf 为准,避免自己拼接安装来源。
填写配置¶
插件读取的是 index.js 同目录下的 dsh-overleaf.config.json。文件不存在时,启动会自动生成一份空模板。填入一个共享 token,以及每个项目一行 ID:
{
"gitToken": "your-overleaf-git-token",
"projectIds": [
"project-id-a",
"project-id-b"
]
}
项目 ID 来自 Overleaf 地址里 /project/ 后面那一段,例如 https://www.overleaf.com/project/<PROJECT_ID>。Git token 在 Overleaf 账号设置的 Git Integration 中创建,官方说明见:
https://docs.overleaf.com/integrations-and-add-ons/git-integration-and-github-synchronization/git-integration/git-integration-authentication-tokens.md
改完配置后要重启 dsh。插件只在启动时读一次该文件,并生成内部使用的 .dsh-overleaf.projects.json。不要手改这份生成文件。插件不读 .env,也不要求设置 OVERLEAF_PROJECT_ID 这类环境变量——token 和项目列表都走上面的 JSON。
token 不要写进公开仓库,也不要打进要发布的包内容。OverleafMCP 自己的安全说明同样适用:这个 token 对项目有读写权限,应当按密码来保管。
和模型一起用¶
配置生效后,直接告诉模型要处理哪个项目。仓库给出的示例是:
Please work on Overleaf project project-id-a and read its main.tex.
按插件注入的提示词,模型应先调用 mcp__overleaf__list_projects,再把选中的 ID 作为后续工具的 projectName。只读可以停在 read_file 或 get_section_content;若要改某一节,需要走 write_section,并给出 commitMessage。OverleafMCP 文档里的对应参数是:filePath、sectionTitle、newContent(含章节标题)、commitMessage。
写回不是改 Overleaf 网页编辑器的未保存缓冲区,而是一次 Git 提交。官方 Git 集成还有一些自身限制,例如不支持分支、不支持 Git LFS、不保留可执行权限;从 Git 侧重命名或移动带批注的文件,还可能丢掉 Overleaf 上的 Track Changes。这些限制来自 Overleaf,不是这个插件额外加的,但写入前值得知道。
适用场景与注意事项¶
比较适合已经把稿件放在 Overleaf、同时用 dsh 做阅读、改写和术语统一的人。多项目可以写在同一份配置里,共用一个 token,由一个 MCP 工具组切换。
当前版本明确不做这些事:
1、不在 Overleaf 上触发编译,也不下载或审阅 PDF。
2、不操作浏览器,不是 Overleaf 网页的 RPA。
3、不把 OverleafMCP 源码嵌进本仓库;运行时依赖 npm 包 @mjyoo2/overleaf-mcp@1.0.0。
安装前应自己打开仓库看 index.js、package.json 和 LICENSE。插件与当前 dsh 进程同权运行,能读到你写进配置文件的 Git token。社区目录页的安全提示和仓库 README 是一致的:先看源码和许可证,需要可复现环境就钉死 commit。
小结¶
dsh-overleaf 做的事情很具体:把 Overleaf 的 Git 集成接到 DeepSeek Harness 的 MCP 工具链上,让智能体在会话里面对的是真实的 LaTeX 项目文件,而不是你手工粘贴进去的片段。读、看章节、按提交说明写回,这三步在 README 和依赖的 OverleafMCP 里都能对上;编译 PDF、审稿视图、浏览器自动化则不在当前范围。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-overleaf/
GitHub:https://github.com/fly233338/dsh-overleaf
底层 MCP:https://github.com/mjyoo2/overleafmcp
DeepSeek Harness:https://github.com/deepseek-ai/deepseek-harness