DSH Hub

imetn/dsh-lark-bridge

dsh-lark-bridge

BundleWorkflow7 GitHub stars· updated 2026-08-14

Bidirectional Lark/Feishu controller for DeepSeek Harness

Install

npx @deepseek-ai/dsh plugin --profile web add github:imetn/dsh-lark-bridge

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-lark-bridge DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/imetn-dsh-lark-bridge.svg)](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:

  1. Opens the official Feishu/Lark authorization page for a new bot app.
  2. Requests only the messaging, attachment, reaction, event, and card callback capabilities used by the Bridge.
  3. Stores the returned App Secret in Harness's owner-only credential file, never in the Profile.
  4. Installs the plugin, writes an idempotent lark Profile, binds the authorizing user, and starts the Bridge.
  5. 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:

TypeRequired values
Permissionsim:message.p2p_msg:readonly, im:message.group_at_msg:readonly, im:message:send_as_bot, im:resource
Inbound attachmentsim:message:readonly
Message eventim.message.receive_v1
Card callbackcard.action.trigger
Stop reactions, optionalim: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

Related plugins