dshbase

插件目录 / Developer / dsh-better-overleaf

dsh-better-overleaf

未验证 Hoemr

✓ 持续维护 基于 5 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

0Stars
0Forks
0未关闭 issue
语言
2026-08-24最近推送
跨平台平台

功能简介

Overleaf tab for DSH better-sidebar: direct-CDP login, project mirrors under <workspace>/overleaf/, git/API sync, sidebar file preview

我们的评价
未验证 — 尚未实测

Overleaf tab for DSH better-sidebar: direct-CDP login, project mirrors under <workspace>/overleaf/, git/API sync, sidebar file preview 尚未验证——请自行安装测试。

「未验证」表示我们的自动化 CI 尚未安装过该插件。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

你是插件作者? 想拿到「已验证」标签——提交你自己的验证证据(截图、日志或短视频),我们审核通过后即改为「已验证」。

提交验证证据 ↗

README

dsh-better-overleaf

Overleaf integration for DeepSeek Harness (DSH), built on
dsh-better-sidebar's
workbench. One Overleaf project ↔ one local git mirror under
<workspace>/overleaf/<name>/, so the sidebar's explorer, editor, image/PDF
previewers, Git panel, and conversation file references (@-mention) operate
on Overleaf content directly.

How it works

Overleaf project ──┬── git bridge (git.overleaf.com/<id>)   ← two-way pull/push
                   └── website zip snapshot (cookie auth)   ← pull-only fallback
        │
        ▼
<workspace>/overleaf/<name>/   ← real git repo + .overleaf.json binding
        │
        ▼
dsh-better-sidebar workbench   ← explorer / editor / preview / Git panel / @引用
  • host (src/index.tslib/index.js): provides ctx.overleaf and the
    loopback-only /overleaf/* JSON routes (status / projects / bindings /
    login / cookie / bind / unbind / sync).
  • client (src/client/index.tslib/client.js): registers the
    Overleaf tab with dsh-better-sidebar when that optional peer is mounted;
    without it the plugin stays dormant but harmless (hot-pluggable).

Credentials never enter the browser bundle or route payloads: the host resolves
OVERLEAF_COOKIE and OVERLEAF_GIT_TOKEN through ctx.credentials.

Login

Direct-CDP login launches an installed Chromium-family browser with a loopback
CDP port; after you log in, the session cookie is captured browser-side and
stored host-side. No Playwright download, no ChromeDriver.

Persistent profile (default) — the login window uses a dedicated dsh
profile at ~/.dsh/plugin-data/dsh-overleaf/browser-profile. You enter your
credentials (or link Google OAuth) once; every later login opens that
profile already authenticated and captures the cookie without typing anything.
Set loginProfile: temporary to wipe the profile after each attempt instead.

Third-party Chromium browsers (CentBrowser, Brave, Vivaldi, …) are supported:

  • browserPath — set it in config, or pick 指定浏览器路径 in the tab, to point
    at any Chromium-family executable directly; it is tried first.
  • browserChannel: auto tries the Windows default browser first (registry
    lookup), then common install paths.
  • browserChannel: real (advanced) launches your daily browser with its REAL
    profile so saved accounts apply — requires that browser fully closed first
    (a running instance swallows the debug-port flag), and newer Chrome builds
    refuse CDP on the default profile entirely.
  • Manual fallback: copy the httpOnly overleaf_session2 cookie from
    DevTools → Application → Cookies (document.cookie cannot see it); saved
    values are verified against Overleaf before being stored.

Install

dsh plugin --profile desktop add [email protected]    # or @0.14+ on DSH rc.8
dsh plugin --profile desktop add [email protected]
# then restart the app so the host halves mount; hard-refresh the web view

# dev flow:
# dsh plugin --profile desktop add link:D:/Coding/dsh-overleaf

If pnpm reports ignored build scripts for node-pty, set
allowBuilds: { node-pty: true } in the profile's pnpm-workspace.yaml
(the terminal feature needs it; everything else works without it).

Config

- insert:
    - id: overleaf
      name: dsh-better-overleaf
      config:
        transport: auto          # auto | git | api
        baseUrl: https://www.overleaf.com
        gitOrigin: https://git.overleaf.com
        browserChannel: auto     # auto | default | msedge | chrome
        browserPath: ''          # explicit executable, tried first
        playwrightHeadless: false
        loginTimeoutMs: 600000

transport: auto prefers git whenever OVERLEAF_GIT_TOKEN is stored; pulls
degrade to API snapshots when only a cookie exists. The API transport cannot
push (website endpoints are read-only for content); pushing requires the git
bridge credential (account password, or the Git-integration token for SSO
accounts).

Sync semantics

Transport Pull Push Notes
git pull --ff-only push HEAD full history; better-sidebar Git panel shows real diffs
api ✅ zip snapshot → wipe & commit refuses when the mirror has uncommitted changes

Binding writes .overleaf.json inside the mirror and excludes it via
.git/info/exclude; unbind removes only the binding file, never your files.

Status / roadmap

Done: project list/switch, mirror bind/unbind, git clone/pull/push, API
snapshot pull, direct-CDP login with custom browser path, manual cookie
fallback, loopback-only routes, hot-pluggable optional peer.

Ideas welcome: agent-facing pull/push tool (so the model can sync itself),
API push via folder/file upload endpoints, PDF compile preview.

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-better-overleaf」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:Hoemr/dsh-better-overleaf

Headless(CLI)profile:

dsh plugin --profile headless add github:Hoemr/dsh-better-overleaf

实测报告

尚未 L3 验证——若已跑过,见下方失败备注。

状态:pending · 最近测试 2026-08-27
备注:验证: runtime-fail 浏览全部待验证失败 →
安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7795 个插件 →