dsh-pocket
shaobeichen
Remote phone access to the DSH Web UI: scan a QR code for LAN or public (cloudflared tunnel) access with real-time sync, a mobile-adaptive layout, and a settings tab.
Installed cleanly when we ran it
omdsh-dev/dsh-lark
Lark/Feishu bot channel for DeepSeek Harness: each chat drives its own agent, and tool approvals, model questions, and plan reviews return as cards answered by a button or a reply. Switch workspace and model from the chat (`/cd`, `/model`, `/new`), and run several bots that keep separate sessions and can hand turns to each other in one group.
Install
via npm
Resolves a published tarball rather than cloning the repository, and installs without any extra setup. Swap `web` for your profile name if you run another one.
via GitHub · npm package
Installing from GitHub runs the project's build script, which pnpm blocks until you allowlist it — run the command once and pnpm prints the exact key to add under `allowBuilds` in ~/.dsh/profiles/web/pnpm-workspace.yaml.
What happened when we ran it
Installed cleanly when we ran it
Every command here is run in a throwaway container against a clean profile, and the result is whatever the harness recorded — not a guess from the source. Last run yesterday.
Due diligence
What it is — DeepSeek Harness Lark/Feishu plugin: integrates chats to drive agents with card-based approvals.
Who it is for — Users collaborating multiple DeepSeek Harness agents in one Lark/Feishu group chat benefit from independent sessions and turn handoff. Users who do not use Lark or Feishu as integration channels can skip this plugin because they lack the chat environment.
Watch out — No public server or callback configuration needed. Tested and registered successfully in a new profile. No obvious issues found.
The verdict — I would install it because no public server or callback configuration is required.
Generated by grok-4.6, and a starting point rather than a verdict. Where it says a plugin installs or does not, that is from a real run in a clean profile — everything else is read off the repository. Trust the source over this.

dsh-lark is a DeepSeek Harness plugin that connects agents to Lark or Feishu chats through a bot channel. DeepSeek Harness loads the plugin as a channel, where each chat, topic or sender scope can drive a separate agent session. The service uses a WebSocket connection, so it does not require a public server or callback URL. Messages start tasks; execution details, tool calls and results are sent back to the chat, while questions, plan reviews and tool approvals arrive as cards that can be answered with buttons or replies.
Commands such as /status, /ws, /cd, /model, /new and /stop control the active workspace, model and session. Incoming files are written to .dsh-lark/inbox/<timestamp>-<message-hash>/ in the current workspace; outgoing files can be sent back, with approval required in group chats. workspaceRoots, sessionScope, senderAllowlist, groupAllowlist and approvers constrain how the service is used. Additional bot instances keep separate settings, credentials and sessions, and can hand turns to one another in a group.
dsh-lark suits teams that want to operate DeepSeek Harness from Feishu or Lark rather than a terminal, including workflows requiring human approval during execution. It is a poor fit where chat-based access is unnecessary, where voice transcription is required, or where the documented Node.js and DeepSeek Harness version requirements cannot be met. It also duplicates some host commands, which are passed through to the DeepSeek Harness command runtime.
DeepSeek Harness loads dsh-lark into a profile; the README shows dsh plugin --profile web add dsh-lark-channel for sharing a profile with dsh web. Start-up configuration is read once, so changes require a service restart. Relevant settings include:
| Setting | Behaviour |
|---|---|
workspaceRoots |
Restricts directories selectable from chat. |
sessionScope |
Selects chat, chat-thread or chat-sender session separation. |
senderAllowlist, groupAllowlist, approvers |
Narrows who can use the bot or approve actions. |
instance |
Names an additional bot instance; the first remains unnamed. |
botPeers, botHops |
Restricts bot-to-bot conversations and their consecutive turns; botHops defaults to 6. |
receiveFiles, sendFiles |
Enable file reception and delivery; both default to enabled. |
attachImages |
Enables image attachments when the selected model supports vision. |
maxReceiveFileBytes, maxSendFileBytes |
Set per-file limits, which default to 20 MiB. |
Received files remain under .dsh-lark/inbox/ and are not deleted automatically. Group file delivery always requires an approval card.
/status shows workspace, model and session state; /ws lists workspaces; /cd <name-or-path> changes workspace; /get <path> sends a workspace file; /model, /model use <provider/model> and /model reset select or restore a model; /new starts a session without changing workspace or model; /stop stops the current task; and /help lists commands. DeepSeek Harness also passes host commands such as /plan, /compact and /permission to its command runtime.
The service requires Node.js ^22.19.0 || >=24, DeepSeek Harness 0.1.0-rc.6 or newer, and a Feishu or Lark tenant. On macOS and systemd-based Linux, its user service can be managed with status, logs -f, restart and stop. The service reconnects its WebSocket with rate and back-off controls.
Voice messages are stored but not transcribed. PDF, XLSX and DOCX files can be downloaded but not previewed in chat. A group can have at most three pending file approvals, and each file is limited to 20 MiB by default.
Written from the project's own documentation and kept in sync with it. Where the two disagree, the source is authoritative — read the README on GitHub
Same category
shaobeichen
Remote phone access to the DSH Web UI: scan a QR code for LAN or public (cloudflared tunnel) access with real-time sync, a mobile-adaptive layout, and a settings tab.
Installed cleanly when we ran it
omdsh-dev
Desktop notifications for turn completions, with per-outcome controls and keyword rules.
Installed cleanly when we ran it
omdsh-dev
Open DSH workspace directories in VS Code directly from the web GUI.
Did not install when we ran it
xmanrui
Connect IM bots to DeepSeek Harness by scanning QR codes (supports Feishu, Weixin, DingTalk, and more).
Installed cleanly when we ran it
whyihaveyou
IM webhook and local notifications on turn completion, errors, or approval (Feishu/WeCom/DingTalk/Slack/Discord/custom).
No one-line install — this plugin lives inside a larger repository and publishes no npm package.
THEWOLFWALKER
Unified notification & remote control for DSH: one `notify()` API, 25+ channels (Telegram / DingTalk / Feishu / WeCom / QQ bot / WxPusher / PushPlus / ServerChan / Bark / Discord / Slack / ntfy / webhook...), level routing (timeSensitive / active / passive) with tiered retry, multi-channel inbound approval (Telegram buttons, Feishu cards, QQ, WxPusher, WeChat iLink), official QR login for QQ/DingTalk/Feishu, a local web admin console, multi-agent routing, desktop notifications — and a mobile command center: `!status` / `!stop` / `!retry` agent control from your phone plus actionable notifications (view result / retry / logs buttons that call back into the agent). Secrets redacted, tool rate-limited, zero runtime deps — plus an open event source: other plugins can inject the notifier service (ctx.notifier) and subscribe to dsh-notifier/sent events, reusing notification without coupling.
Installed cleanly when we ran it