ワンクリックで
overleaf
LaTeX 文档与 Overleaf 项目的首选方案。当需要编写或编辑 .tex 文件、编译 LaTeX 项目并获取 PDF、创建或管理 Overleaf 项目、查看或解决 review 评论时触发。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
LaTeX 文档与 Overleaf 项目的首选方案。当需要编写或编辑 .tex 文件、编译 LaTeX 项目并获取 PDF、创建或管理 Overleaf 项目、查看或解决 review 评论时触发。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Claude Code 专用:将 arXiv/DOI/PDF 学术论文整理为论文翻译飞书文档,正文以原文逐段中文翻译为主体。
单文件 HTML 幻灯片(Han Xiao 式固定舞台 deck)的制作方案。当需要做网页版 slides、HTML 幻灯片、会议演讲 deck、或希望用浏览器直接放映且导出 PDF 的演示文稿时使用。触发词:"HTML slides""网页幻灯片""单文件 deck""hanxiao 风格 slides""做个网页版演讲稿"。
Codex 专用:将 arXiv/DOI/PDF 学术论文整理为论文翻译飞书文档,正文以原文逐段中文翻译为主体。
飞书/Lark 全功能操作方案。当需要发消息、管理日程/会议室、操作云文档/多维表格/电子表格/知识库、处理任务/邮件/OKR/考勤/审批,或进行视频会议时使用。
将学术论文、论文 PDF、arXiv/DOI、或 lark-paper-reader-codex 生成的飞书论文读书文档整理成一份有用的飞书 Slides/PPT。用于把一篇或几篇论文变成可讲述、可复习、可分享的演示文稿,重点是提炼主线、选择论文原图、讲清方法、实验结果、insight 和局限;触发语境包括:把论文做成 PPT、做一份 paper slides、把这些 reader 文档整理成演示文稿、做文献汇报 slides、把同主题论文用 PPT 呈现。
统一处理所有 skills 操作的总控 skill,包括搜索、导入、创建、重构、编辑、优化、上游跟踪、分发、归档与发布。当涉及到 SKILL 的编辑修改新建时,请用 skill-manager 来管理!
| name | overleaf |
| description | LaTeX 文档与 Overleaf 项目的首选方案。当需要编写或编辑 .tex 文件、编译 LaTeX 项目并获取 PDF、创建或管理 Overleaf 项目、查看或解决 review 评论时触发。 |
通过 Git 协议操作 Overleaf 项目文件(克隆、拉取、编辑、提交、推送),通过 REST API 创建新项目,通过 Review API 管理评论线程(列出、解决),通过 Compile API 触发远程编译并下载 PDF。
所有文件级操作(浏览目录、读写文件、创建删除、下载项目)统一通过 git clone/git pull + 本地编辑 + git push 完成,不再使用 WebSocket/REST 逐文件操作。
scripts/ 与本 SKILL.md 同级,位于 SKILL.md 所在目录下:
<skill-dir>/ ← 本 SKILL.md 所在目录
├── SKILL.md
└── scripts/
├── ol.sh # 入口:环境准备 + 转发给 ol.py
├── ol.py # CLI 入口:命令解析与调度
└── edge_cookies.py # 从 Edge 浏览器提取 Cookie
使用前先确定 SKILL_DIR(从 AGENTS.md 中本 skill 的 <location> 标签推导):
# <location> 示例:/some/path/overleaf/SKILL.md
# → SKILL_DIR=/some/path/overleaf
SKILL_DIR="$(dirname "$(grep -A1 'name: overleaf' ~/.pi/agent/AGENTS.md | grep location | sed 's/.*<location>\(.*\)\/SKILL.md.*/\1/')")"
# 或直接手动赋值为 <location> 去掉末尾 /SKILL.md 后的路径
⚠️ 始终用
$SKILL_DIR/scripts/ol.sh调用,不要使用~/scripts/或其他猜测路径。
Cookie 支持自动获取:当 OVERLEAF_COOKIE 环境变量未设置时,ol.sh 会自动从 macOS Edge 浏览器提取对应域名的 Cookie(需要 Edge 已登录 Overleaf)。
因此通常只需设置 OVERLEAF_HOST,Cookie 会自动处理:
export OVERLEAF_HOST="overleaf.mycompany.com"
| 变量名 | 说明 | 是否必须 |
|---|---|---|
OVERLEAF_HOST | Overleaf 实例域名(不含 https://) | 是(默认 www.overleaf.com) |
OVERLEAF_COOKIE | 浏览器 Cookie 头部字符串 | 否(未设置时自动从 Edge 获取) |
自动获取依赖 macOS Keychain 授权(首次会弹窗确认)。若自动获取失败,可手动设置: 获取 Cookie:浏览器打开 Overleaf → F12 → Network → 任意请求 → Request Headers → Cookie。
export OVERLEAF_COOKIE="overleaf_session2=s%3Axxx; gke-route=yyy"
Git 凭据默认已配置在 osxkeychain 中,可直接使用 git clone https://...。
若失败,提示用户配置相关 token。
Review/获取项目对应 git 地址 的操作通过 wrapper 脚本:
bash "$SKILL_DIR/scripts/ol.sh" <命令> [参数]
Cookie 会自动从 Edge 浏览器获取,无需手动 source 或设置环境变量。
获取 git url后,直接使用 git 命令行进行管理。
# 创建空白项目
bash "$SKILL_DIR/scripts/ol.sh" create "My New Paper"
# 创建带 Overleaf 示例内容的项目
bash "$SKILL_DIR/scripts/ol.sh" create "My New Paper" --template example
# 紧凑 JSON 输出
bash "$SKILL_DIR/scripts/ol.sh" create "My New Paper" --compact
输出字段:project_id、project_name、template、git_url、git_clone_url、web_url。
# 列出所有项目及其 Git 地址(带缩进 JSON)
bash "$SKILL_DIR/scripts/ol.sh" git urls
# 紧凑 JSON(便于管道处理)
bash "$SKILL_DIR/scripts/ol.sh" git urls --compact
# 覆盖默认 Git 地址前缀
bash "$SKILL_DIR/scripts/ol.sh" git urls --base-url "https://git.example.com"
输出字段:project_id、project_name、git_url、git_clone_url。
# 带缩进 JSON
bash "$SKILL_DIR/scripts/ol.sh" review list "MyProject"
# 紧凑 JSON
bash "$SKILL_DIR/scripts/ol.sh" review list "MyProject" --compact
# 使用线程首条消息用户作为 resolve 用户
bash "$SKILL_DIR/scripts/ol.sh" review resolve "MyProject" "69c2745dc0f84b044e000001"
# 显式指定 user_id
bash "$SKILL_DIR/scripts/ol.sh" review resolve "MyProject" "69c2745dc0f84b044e000001" --user-id "69a65a7a8f69a4e6b57d0ddd"
# 触发编译,输出带缩进 JSON(含状态、PDF 地址、所有输出文件)
bash "$SKILL_DIR/scripts/ol.sh" compile "MyProject"
# 紧凑 JSON(便于管道处理)
bash "$SKILL_DIR/scripts/ol.sh" compile "MyProject" --compact
# 指定编译引擎(xelatex / pdflatex / lualatex)
bash "$SKILL_DIR/scripts/ol.sh" compile "MyProject" --compiler xelatex
输出字段:status(success / failure / error)、pdf_url、output_files(含 .pdf、.log、.bbl 等)。
# 编译并下载 PDF,文件名默认为 <项目名>.pdf
bash "$SKILL_DIR/scripts/ol.sh" pdf "MyProject"
# 指定输出路径
bash "$SKILL_DIR/scripts/ol.sh" pdf "MyProject" --output /tmp/paper.pdf
# 指定编译引擎
bash "$SKILL_DIR/scripts/ol.sh" pdf "MyProject" --compiler xelatex
# 1. 创建新项目
bash "$SKILL_DIR/scripts/ol.sh" create "My New Paper"
# 2. 从输出中获取 git_clone_url,克隆到本地
git clone https://git@overleaf.mycompany.com/git/<project_id> /tmp/my-new-paper
# 3. 编辑文件
# ...编辑 /tmp/my-new-paper/main.tex
# 4. 提交并推送
cd /tmp/my-new-paper
git add -A
git commit -m "initial content"
git push
# 1. 获取项目 Git 地址
bash "$SKILL_DIR/scripts/ol.sh" git urls
# 2. 克隆项目到本地
git clone https://git@overleaf.mycompany.com/git/<project_id> /tmp/my-project
# 3. 本地编辑文件
# ...编辑 /tmp/my-project/main.tex 等
# 4. 提交并推送
cd /tmp/my-project
git add -A
git commit -m "update content"
git push
当项目已经克隆到本地,提交前需要先拉取协作者的最新更改:
cd /tmp/my-project
# 拉取远端最新更改(rebase 避免产生多余的 merge commit)
git pull --rebase
# 若有冲突,解决后继续
git add -A
git rebase --continue
# 推送本地修改
git push
# 1. 查看所有 review
bash "$SKILL_DIR/scripts/ol.sh" review list "MyProject"
# 2. 克隆项目到本地
git clone https://git@overleaf.mycompany.com/git/<project_id> /tmp/my-project
# 3. 根据 review 位置信息,在本地编辑对应文件
# 4. 推送修改
cd /tmp/my-project
git add -A
git commit -m "address review comments"
git push
# 5. 解决已处理的 review
bash "$SKILL_DIR/scripts/ol.sh" review resolve "MyProject" "<thread_id>"
# 1. 推送最新修改
cd /tmp/my-project
git add -A && git commit -m "final edits" && git push
# 2. 编译并下载 PDF
bash "$SKILL_DIR/scripts/ol.sh" pdf "MyProject"
# 3. 或先确认编译状态,再手动下载
bash "$SKILL_DIR/scripts/ol.sh" compile "MyProject"
# 得到 pdf_url 后:
curl -L -b "$OVERLEAF_COOKIE" "<pdf_url>" -o paper.pdf
review list/resolve 依赖 Overleaf 内部评论线程与 joinDoc 接口(非官方公开 API),不同私有部署可能有差异compile / pdf 依赖 POST /project/{id}/compile 接口(非官方公开 API),不同私有部署可能有差异git urls 依赖 GET /user/projects 接口;若实例关闭或 Cookie 无权限会返回 401/403pyoverleaf:通过 uv tool install pyoverleaf 安装(仅 review 功能需要)~/.local/share/uv/tools/pyoverleaf/bin/pythongit:系统 Git 客户端,凭据已配置在 osxkeychain扩展或修改本 skill 的脚本时,优先拆分为多个子模块,而非将所有逻辑堆入单一文件:
scripts/
ol.sh # 入口:环境准备 + 转发给 ol.py
ol.py # CLI 入口:只做命令解析与调度,不含业务逻辑
edge_cookies.py # 子模块:从 Edge 浏览器提取 Cookie
api.py # 子模块:Overleaf REST/WebSocket API 封装
git_utils.py # 子模块:Git URL 构造与项目列表
review.py # 子模块:review 线程获取与解析
compile.py # 子模块:编译与 PDF 下载
...
每个子模块职责单一,ol.py 只做 import 和 CLI 注册。新增功能时,新建子模块文件,不要直接往 ol.py 追加几百行。