DSH WorkBuddy Connect
corrinehu/dsh-workbuddy-connect将 WorkBuddy 桌面 App 包含的模型自动接入 DeepSeek Harness,在 DSH 对话窗口里零配置使用。
用本地 Chrome 驱动你自己已登录的 chatgpt.com 会话作答,消耗的是 ChatGPT 网页额度而非 Codex 额度;并用 JSON 工具调用协议让网页端模型可以调用 DSH 工具。
A ChatGPT Web model provider for DeepSeek Harness. It adds a model route named chatgpt-web and answers model calls by driving your own logged-in chatgpt.com session in a local Chrome — so inference is paid from the ChatGPT web quota, not from the OpenAI API and not from your Codex quota.
~/.codex/auth.json, Codex OAuth, or Codex quotaChatGPT's web backend (/backend-api/f/conversation) requires a per-request Sentinel/PoW token plus Cloudflare clearance. Those cannot be forged reliably outside a real browser session. So this plugin drives a real Chromium-family browser over the DevTools Protocol (zero dependencies — Node's built-in WebSocket) and reads the answer from the page.
dsh plugin --profile <name> add /absolute/path/to/dsh-llm-chatgpt-web
# or, inside the Harness: plugin_manager install_bundle <absolute path>
The bundle inserts one row:
- id: llm-chatgpt-web
name: dsh-llm-chatgpt-web
config: {}
~/.dsh/chatgpt-web/chrome-profile), not in your daily browser.The dedicated browser starts on demand in the background (macOS: open -g -j) and is re-launched automatically if you close it, without stealing focus from the window you are working in. The one exception is a sign-in prompt: the plugin then moves the window on screen and activates it, because you cannot type into a login page you cannot see.
| Key | Default | Meaning |
|---|---|---|
provider | chatgpt-web | Route id used by the model selector |
displayName | ChatGPT 网页版 | Label shown in DSH |
transport | web | fake = offline self-test stream |
chromePath | Google Chrome (macOS path) | Browser executable |
userDataDir | ~/.dsh/chatgpt-web/chrome-profile | Dedicated browser profile (login lives here) |
debuggingPort | 9333 | CDP port for the dedicated browser |
windowMode | hidden | visible / hidden (window moved off-screen, launched in the background) / headless (blocked by ChatGPT — not recommended) |
temporaryChat | true | Use a temporary chat (not written to your ChatGPT history) |
conversationMode | continue | continue = keep one temporary chat per DSH session and send only deltas; fresh = new chat each call |
reasoningEffort | high | Aligns the web "thinking effort" slider before every call (low / medium / high) |
webModel | empty | Optionally force a web model such as GPT-6; empty keeps the page's current pick |
maxPromptChars | 60000 | Prompt budget in characters |
emulateTools | true | Emulate function calling with a text protocol (see below) |
responseTimeoutMs | 600000 | Max wait for one reply |
The web UI has no function-calling API. The plugin asks the model for a fenced JSON block:
{"name": "bash", "arguments": {"command": "ls"}}
and translates it into a real DSH tool-call; the tool result is pasted back into the next turn. The prompt explicitly forbids the model's own container/code-interpreter from being used, and a reply that claims it ran something without a tool call is rejected and retried.
conversationMode: fresh to always start over.reasoningEffort=high.~/.dsh/chatgpt-web/logs/screenshots/.~/.dsh/chatgpt-web/logs/chatgpt-web-YYYY-MM-DD.log~/.dsh/chatgpt-web/logs/debug/last-prompt.txtnode scripts/test-transcript.mjsMIT.
把 ChatGPT 网页端 接成 DeepSeek Harness 的模型路由(路由 id:chatgpt-web)。选它之后,DSH 每次模型调用都会用你本机已登录的 chatgpt.com 会话、在本地 Chrome 里完成,因此消耗的是 ChatGPT 网页额度——不是 OpenAI API 额度,也不是 Codex 额度。
~/.codex/auth.json、不走 Codex OAuth、不花 Codex 额度ChatGPT 网页后端(/backend-api/f/conversation)要逐请求变化的 Sentinel/PoW 令牌和 Cloudflare 放行,离开真实浏览器会话伪造不出来。所以插件用 DevTools 协议驱动一个真实 Chromium 浏览器(零依赖,只用 Node 内置 WebSocket),从页面里读回复。
dsh plugin --profile <name> add /absolute/path/to/dsh-llm-chatgpt-web
浏览器是后台按需启动的(macOS 用 open -g -j),不会抢你正在用的窗口的焦点;你手动关掉它也会自动重新拉起。唯一例外是需要登录:这时插件会把窗口挪回屏幕内并激活,否则你看不见登录页。
conversationMode: fresh 可恢复每轮新建。reasoningEffort=high 时一步通常 10–40 秒。~/.dsh/chatgpt-web/logs/screenshots/。MIT。