Plugin directory / Developer / dsh-onlyne
dsh-onlyne
Verified · install-tested on dsh dbydd
What it does
IM gateway for DeepSeek Harness agents — send and receive QQ, WeChat, Feishu and Telegram messages from dsh sessions.
Works — verified, early-stage project
IM gateway for DeepSeek Harness agents — send and receive QQ, WeChat, Feishu and Telegram messages from dsh sessions. It installs cleanly and boots without issues in our testing. It's early-stage but functional.
“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.
README
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
Install
Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:
dsh plugin add dshbase-catalog Then say "install dsh-onlyne for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.
Web profile:
dsh plugin --profile web add dsh-onlyne Headless (CLI) profile:
dsh plugin --profile headless add dsh-onlyne Package
npm: dsh-onlyne · version 0.1.1 · tested on dsh 0.1.0-rc.6
Test report
Verified end-to-end: L1 install + L2 load + L3 runtime Q&A on dsh 0.1.0-rc.6.
When to use it
Extend the agent's coding surface — give it a new tool, workflow, or integration so it handles a dev task it couldn't before.
Who it's for
Developers who want dsh to behave like a teammate on real codebases — editing, running, and verifying changes rather than just answering.
For developers — extending it
The tool/command surface is the seam: expose more of the SDK, add smarter context wiring, or tighten the loop between code changes and verification.