dbydd/dsh-onlyne
IM gateway for DeepSeek Harness agents — send and receive QQ, WeChat, Feishu and Telegram messages from dsh sessions.
项目介绍Project Overview
dsh-onlyne 是 DeepSeek Harness 的 Onlyne 插件,为代理接入本地 IM 通道守护进程。它提供收发、广播、回环唤醒、守护进程管理等工具,并通过 watch 循环把 Telegram、飞书、QQ、微信等入站消息转为会话跟进,适合让代理接收通知并回复。需先安装并初始化 Onlyne,且工作区需含 .onlyne/。
dsh-onlyne is a DeepSeek Harness plugin for Onlyne, a workspace-local IM channel daemon. It gives agents tools to start or stop the daemon, reply, send, broadcast, and use loopback wake-ups. A watch loop surfaces inbound messages from Telegram, Feishu/Lark, QQ Bot, or WeChat as session follow-ups. Use it when an agent needs an IM inbox/outbox. Onlyne must be installed and initialized, and the workspace must contain .onlyne/.
请帮我了解并安装插件:【dsh-onlyne】【https://github.com/dbydd/dsh-onlyne】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add dsh-onlyne
把 dbydd/dsh-onlyne 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-onlyne
English | 中文
Give DeepSeek Harness agents a real IM inbox/outbox through Onlyne.
dsh-onlyne is the DeepSeek Harness (dsh) plugin for Onlyne, the workspace-local IM channel daemon. It adds model-facing tools and a watch loop so a dsh agent can receive messages from IM channels (Telegram, Feishu/Lark, QQ Bot, WeChat) and send replies — without pretending a chat platform is a terminal or a workflow engine.
It is the dsh counterpart of pi-onlyne and shares the same per-project config file (.pi/onlyne.json), so one workspace can be bridged by either harness without reconfiguration.
Install
Onlyne is a single binary; see the Onlyne README to install and initialize a workspace:
onlyne init
Then install the plugin into a dsh profile and mount it:
dsh plugin --profile web add dsh-onlyne
Add a row to the profile's cordis.patch.yml ($DSH_HOME/profiles/<name>/cordis.patch.yml):
- insert:
- id: onlyne
name: dsh-onlyne
The plugin finds the workspace by walking up from the dsh process's invoking directory to the nearest .onlyne/.
Tools
onlyne_daemon_start()
onlyne_daemon_stop()
onlyne_daemon_restart()
onlyne_reply({ text })
onlyne_send({ channelId, text, rawText? })
onlyne_broadcast({ targets, text, rawText? })
onlyne_loopback({ text, rawText? })
onlyne_mark_no_reply({ reason? })
Send one message
onlyne_send({
channelId: "telegram",
text: "# Build report\n\nAll checks passed."
})
Set rawText: true to send literal text instead of Markdown.
Broadcast
onlyne_broadcast({
targets: [{ channelId: "telegram" }, { channelId: "feishu" }],
text: "# Release shipped"
})
Loopback wake-up
From any local script, inject an inbound message into the running daemon:
onlyne client '{"id":"wake","op":"loopback","text":"background job finished","raw_text":true}'
Channel loopback is wake-up-only: it surfaces a follow-up in the session but does not expect onlyne_reply.
Command
/onlyne status
/onlyne watch on
/onlyne watch off
/onlyne daemon start
/onlyne daemon stop
/onlyne daemon restart
/onlyne config auto-start
watch on subscribes to the daemon's event stream; inbound messages are surfaced into the current dsh session as user follow-ups, and the agent replies with onlyne_reply or acknowledges with onlyne_mark_no_reply. Control messages such as /handshake are consumed silently. config auto-start toggles watching automatically at session start.
Config
Shared with pi-onlyne at .pi/onlyne.json:
{
"watch": { "autoStart": false },
"inbound": {
"defaultMode": "auto-handle",
"rules": [{ "channel": "telegram", "mode": "queue-only" }]
},
"outbound": {
"defaultReplyMode": "guarded-explicit",
"retry": { "attempts": 2, "concurrency": 8 }
}
}
Development
npm install
npm run check # build + tests
npm pack # build the publishable tarball
Links
- Onlyne main repository: https://github.com/dbydd/onlyne
- dsh-onlyne package: https://www.npmjs.com/package/dsh-onlyne
nexu-io/open-design
freestylefly/awesome-gpt-image-2
anywhere-labs/dsh-desktop
walkinglabs/learn-harness-engineering
awesome-dsh-plugin/awesome-dsh-plugin
MemTensor/MemOS