dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Lark/Feishu bridge bundle for DeepSeek Harness: drive local dsh sessions from chat messages and reply in chat
Your local coding agent, a chat message away.
English | 简体中文
Send your Lark or Feishu bot a task. DeepSeek Harness runs it in your local workspace and replies to the message that started it. Review a change, investigate a failing test, or ask about your code while keeping the session available in the dsh Web UI.
/sessions in a private chat and click to continue a previous session./status, interrupt with /stop, and start fresh with /new.Example prompts: “Explain this repository's entry points”, “Review the changes in my workspace”, or “Find why the parser test fails”. Available actions depend on your dsh tools and permissions.
You need a working dsh installation, Node.js ^22.19.0 || >=24.0.0, pnpm, and a configured Lark or Feishu bot with lark-cli on your PATH. The current compatibility target is dsh 0.1.2-alpha.5; see setup for credentials, scopes, and your sender ID.
git clone https://github.com/ChengqianHuang/dsh-lark.git
cd dsh-lark
pnpm install --frozen-lockfile
pnpm build
dsh plugin --profile web add "$PWD"
The local checkout is linked into the web profile. Rebuild it after changing source. If you run dsh from source, use pnpm dsh from the harness repository for the dsh commands; pass the absolute plugin directory to add.
Merge this entry into ${DSH_HOME:-$HOME/.dsh}/profiles/web/cordis.patch.yml, replacing the example sender ID. Keep any existing entries in that file.
- id: lark
config:
allowedSenders: [ou_your_open_id]
workspacePath: ~/projects/my-project
groupPolicy: disabled
locale: en
Session and interaction cards are enabled by default and require CLI card.action.trigger support. Configure callbacks using setup before starting; set sessionCards: false, interactionCards: false, and progressCards: false to disable all cards. Set receiveAttachments: false and fileDelivery: false for text-only use.
Start with direct messages. To enable groups, use groupPolicy: mentions and restrict allowedChats; see the configuration reference. An empty sender allowlist fails startup unless you explicitly enable allowAllSenders. The example uses English notices; set locale: zh-CN for Chinese.
dsh --profile web --dump-config
dsh web
The config dump should contain the dsh-lark layer and your settings; it does not check Lark connectivity. Send /help to your bot, then ask it to describe the workspace. Open the session in the Web UI to inspect tool activity. Handle permission requests and questions using the cards described in interactions.
To remove the bundle, run dsh plugin --profile web remove dsh-lark. Saved dsh session history remains subject to your host's retention policy.
| Message | Result |
|---|---|
| Plain text | Run one task in this chat's session; additional tasks wait in a bounded queue. |
/sessions | Show private-chat session choices; see session switching. |
/status | Show the current session, running state, and queue without waiting for a task. |
/stop | Cancel the current bridge task and clear pending messages. |
/new | Cancel bridge work, clear pending messages, and reset this chat's session. |
/help | Show available commands immediately. |
In groups, start a topic with the bot's exact @display name, then reply inside that owned topic to continue it. Unknown slash commands return help and never run as agent prompts. Bot notices support English and Simplified Chinese; the model chooses its answer language from the conversation.
lark-cli delivers message events → sender/chat checks admit them → a chat queue submits a dsh turn → the bridge selects that turn's recorded answer → lark-cli replies to its originating message.
The bundle's patch installs the lark row. The service owns the event consumer and router; the host owns agents, tools, credentials, permissions, and durable session history. See design for concurrency, disposal, and delivery guarantees.
Accepted input becomes a logged user message with its Lark chat, sender, message ID, and group topic root. Images use durable DSH attachment references; ordinary files become workspace locators. The bridge handles slash commands and registers the approved lark_send_file tool in its agents. A progress card projects logged assistant text without reasoning; the settled turn also receives a bounded text reply.
Text messages, plain-text replies, and private-chat session selection cards are supported. Send /sessions, then click Switch to this session; subsequent messages continue that session in the same bot chat. See setup for callback requirements. Approvals and structured user questions are supported in private chats and groups; see interactions. Images, ordinary files, explicit file delivery, and incremental text in task cards are supported; see task workflows. Ordinary file parsing depends on workspace tools, and image understanding depends on the selected model. Long answers are truncated; inspect the dsh session for the full response.
Chat sessions share the configured filesystem workspace and host permissions. Group members can see replies; authorized senders in the same topic share its context. Topic sessions still share the filesystem. Private-chat choices and the current selection survive restarts when session cards are enabled. Group bindings, queued messages, card tokens, and deduplication memory remain transient. This is a trusted-user integration, with no exactly-once delivery guarantee; review the security model before adding other users.
None.