imetn/dsh-lark-bridge
dsh-lark-bridge
Bidirectional Lark/Feishu controller for DeepSeek Harness
Install
npx @deepseek-ai/dsh plugin --profile web add github:imetn/dsh-lark-bridgeRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/imetn-dsh-lark-bridge)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from imetn/dsh-lark-bridge, cleaned of badges and images.
DeepSeek Harness Lark Bridge
English | 中文
A secure, bidirectional Feishu/Lark controller for DeepSeek Harness.
Send a task from a DM, group, or topic. The Bridge runs it in the right Harness Project and Session, updates one native card as work progresses, and routes approvals, questions, files, images, and controls back to the same conversation.
Tested with DeepSeek Harness 0.1.0-rc.6. Harness is still in developer preview.
What works
- Start, continue, steer, stop, resume, and inspect Harness Sessions from Lark.
- Map each group to a Project, working directory, model route, access policy, and card preset.
- Map each topic or thread to an isolated Session by default.
- Update one card from running to completed, blocked, cancelled, or failed.
- Approve one tool call or answer structured Agent questions from card buttons.
- Receive text, images, and files. The Agent can send safe workspace files back with
lark_deliver. - Choose compact, standard, or developer card detail per Project or Session.
- Use WebSocket long connections, with no public webhook server.
Cards show bounded tool summaries, never hidden model reasoning.
Quick start
Requirements: Node.js 22+, pnpm, a working DeepSeek Harness model configuration, and either an installed dsh CLI or an official Harness source checkout nearby.
Run this from the Project you want the bot to control:
pnpm dlx github:imetn/dsh-lark-bridge setup --project "$PWD"
The setup command:
- Opens the official Feishu/Lark authorization page for a new bot app.
- Requests only the messaging, attachment, reaction, event, and card callback capabilities used by the Bridge.
- Stores the returned App Secret in Harness's owner-only credential file, never in the Profile.
- Installs the plugin, writes an idempotent
larkProfile, binds the authorizing user, and starts the Bridge. - Opens the bot. A welcome card arrives automatically when the platform returns the user's Open ID.
For a ByteDance larkoffice.com tenant, add --brand larkoffice. For international Lark, add --brand lark.
pnpm dlx github:imetn/dsh-lark-bridge setup --project "$PWD" --brand larkoffice
The automatic flow always passes createOnly: true. It cannot select or change an existing app.
Use an existing app
Existing apps stay untouched. The command only validates the credentials and writes local Harness files:
printf '%s' "$LARK_APP_SECRET" | pnpm dlx github:imetn/dsh-lark-bridge setup \
--project "$PWD" \
--app-id cli_xxxxxxxxxxxxxxxx \
--app-secret-stdin
If your enterprise blocks one-click creation, add --manual. The wizard opens the developer console and asks for the App ID and hidden App Secret.
For manual apps, enable the bot capability, select long connections, publish a version, and add:
| Type | Required values |
|---|---|
| Permissions | im:message.p2p_msg:readonly, im:message.group_at_msg:readonly, im:message:send_as_bot, im:resource |
| Inbound attachments | im:message:readonly |
| Message event | im.message.receive_v1 |
| Card callback | card.action.trigger |
| Stop reactions, optional | im:message.reactions:read, im.message.reaction.created_v1 |
Keep the group mention permission instead of requesting every group message.
Verify
In the bot DM, send:
/status
…
