dsh-openbot-artist-bridge
Manifest validConnect OpenBot ACP conversations to an existing DS Bot inside DeepSeek Harness.
dsh-openbot-artist-bridge
Connect an OpenBot chat to an existing DS Bot inside DeepSeek Harness (DSH). OpenBot drives the Bot over the Agent Client Protocol (ACP); this bridge forwards that conversation into a DS Bot session you already run in DSH, so the Bot keeps one identity, one memory, and one workspace across both apps.
What it is, and what it is not
- It is a front-end adapter. It does not create a Bot, does not start its own DSH process, and does not take ownership of any session.
- The Bot it reaches must already exist in DSH (the DS Bot plugin). The bridge only relays prompts and streams the reply back.
Architecture
OpenBot Desktop
│ ACP over stdin/stdout (newline-delimited JSON-RPC)
▼
acp_bridge.py ──┐
│ AF_UNIX socket, newline-delimited JSON
▼
runtime.mjs (host half inside DSH)
│ shared fetch /api/bot + sessionController.prompt
▼
DS Bot session in DSH
runtime.mjsowns an owner-only AF_UNIX socket (parent directory0700, socket0600). It resolves the configured Bot over DSH's shared connection, sends prompts withmode: 'queue', and correlates eachsession/eventback to its request byrpcId.acp_bridge.pyis a standalone ACP frontend that OpenBot launches. It connects to the socket as a client, advertises only what it supports (text andresource_linkprompts), and cancels a prompt by closing that prompt's own socket — never a global cancel, so unrelated Bot work keeps running.
Requirements
- DSH
>=0.2.1-rc.3 <0.3.0with the DS Bot plugin and at least one Bot session. - Node
>=22.19. - Python 3.9+ for the ACP frontend.
- macOS or Linux (AF_UNIX sockets).
Setup
-
Install the host half into a DSH profile:
pnpm add link:/path/to/dsh-openbot-artist-bridge # or: pnpm add github:shiyoungwoo/dsh-openbot-artist-bridge -
Configure it. Copy
cordis.patch.ymlinto your profile's bundle list, or override the row in your own profile patch:- id: local-openbot-artist-bridge name: '@local/dsh-openbot-artist-bridge' config: botId: session-your-bot-session-id socketPath: /absolute/path/to/dsh-openbot-artist-bridge/runtime/bridge.sock timeZone: Asia/ShanghaiOptional:
lookupTimeoutMs(default15000),promptTimeoutMs(default3600000). -
Register the ACP frontend in OpenBot as a custom agent. It runs over stdin/stdout, so the command is:
{ "id": "dsh", "name": "DeepSeek Harness", "command": "/usr/bin/python3", "args": ["/absolute/path/to/dsh-openbot-artist-bridge/acp_bridge.py"] }Pass
--socket <path>toacp_bridge.pyif you changedsocketPath; otherwise it defaults toruntime/bridge.sockbeside the script. -
Restart DSH (or toggle the bundle in the Plugins page), then talk to the Bot from OpenBot.
Security notes
- The socket is owner-only. A prompt from another DSH user that joins the same turn is detected and rejected with a readable message instead of being merged silently.
- Frames are capped at 8 MiB.
- Configuration values (
botId,socketPath) identify one machine's Bot; keep your real values in a profile override, not in a shared repository.
Tests
npm test # host half: real AF_UNIX socket, queueing, rpcId correlation, security cases
npm run test:acp # ACP frontend: real stdin/stdout against a fake socket server
Files
index.js— plugin entry; declares config and starts the bridge in an effect.runtime.mjs— host half: socket server, Bot resolution, prompt relay.acp_bridge.py— standalone ACP frontend for OpenBot.cordis.patch.yml— bundle patch with placeholder config.locale/*.json,icon.svg— plugin metadata.tests/— host (Node) and ACP (Python) test suites.
中文说明
这个插件把 OpenBot 的对话接到 DSH 里已经存在的某个 DS Bot 上,让两边共用同一个 Bot、同一份记忆和工作区。它只是前端适配层:不创建 Bot、不启动自己的 DSH 进程、不接管会话。
runtime.mjs(DSH 内 host 半):创建仅属主可访问的 AF_UNIX socket(父目录 0700、socket 0600),通过 DSH 共享连接找到配置的 Bot,用mode: 'queue'投递提示,并按rpcId把session/event对回请求。acp_bridge.py(OpenBot 启动的独立进程):在 stdin/stdout 上讲 ACP,作为客户端连到上面的 socket;只声明支持文本与resource_link;取消一条提示靠断开它自己的连接,不影响 Bot 的其他工作。
配置项:botId(必填)、socketPath(必填,绝对路径)、timeZone(默认 Asia/Shanghai)。请把真实值写在你自己的 profile 补丁里,不要提交到仓库。
License
MIT
Comments
Loading…
Similar plugins
by tjiisztiuv
Discord bridge for DeepSeek Harness (dsh): chat with any workspace session, approve tool calls, and answer model questions from Discord
★ 0
MIT
TypeScript
Oct 11, 2026
dsh plugin --profile web add dsh-plugin-discordDSH QQ bot bridge plugin, connect DeepSeek Harness with QQ bot.
★ 0
dsh plugin --profile web add @sunjuntao/dsh-qqbotby dAI-aigc
Bridge WeChat contacts to DeepSeek Harness sessions over Tencent's official iLink bot channel
★ 0
MIT
TypeScript
Sep 17, 2026
dsh plugin --profile web add dsh-wechatby Windfarer
DeepSeek Harness ↔ WeChat bridge for the wechat-ai MCP server
★ 0
MIT
JavaScript
Oct 23, 2026
dsh plugin --profile web add dsh-wechat-ai-bridgeby zhy5
DSH plugin: connect WeChat (official iLink/ClawBot) to DeepSeek Harness — live status settings panel + bundled bridge/keeper kernel
★ 5
↓ 1.1k/wk
MIT
JavaScript
Oct 23, 2026
dsh plugin --profile web add @zmainer/dsh-wx-bridgeby Qing45
Feishu (Lark) bot bridge for DeepSeek Harness: two-way chat with your agent, settings page for bot credentials and workspace routing. · 飞书机器人 ↔ DSH 双向聊天桥
★ 0
MIT
JavaScript
Aug 17, 2026
dsh plugin --profile web add dsh-feishu-chat