dsh-overleaf:在 DeepSeek Harness 会话里读写 Overleaf 上的 LaTeX 项目

前言

写论文、投稿稿或技术报告时,很多人把 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、按扩展名列出项目文件,默认是 .texlist_files)。
3、读取指定路径的文件内容(read_file)。
4、解析 LaTeX 文件中的章节结构,或按标题取出某一节(get_sectionsget_section_content)。
5、查看项目状态摘要(status_summary)。
6、把整个文件或某一节写回 Overleaf;写入必须带 commitMessage,底层是 Git commit 再 push(write_filewrite_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_fileget_section_content;若要改某一节,需要走 write_section,并给出 commitMessage。OverleafMCP 文档里的对应参数是:filePathsectionTitlenewContent(含章节标题)、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.jspackage.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

羽毛球分组比赛记分
小程序二维码

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

小夜