Skip to content

wz-heng/dsh-feishu-bridge

40Last commit Aug 14, 2026

dsh-feishu-bridge DSH plugin

This plugin provides a bridge between Feishu (Lark) and DeepSeek Harness (dsh). It allows users to interact with dsh agents through a Feishu bot, supporting commands like /new, /sessions, /switch, /current, /quiet, /verbose, and /help. It features fail-closed security with allowlists, one-time card nonces, and sticky sessions. The plugin can be installed as a dsh plugin or run standalone.

How to install the dsh-feishu-bridge DSH plugin

dsh plugin --profile <name> add /path/to/dsh-feishu-bridge

This source command needs manual review. Copying does not run it.

dsh-feishu-bridge DSH plugin data source

dsh-feishu-bridge DSH plugin snapshot date: Aug 16, 2026

discovered

What the dsh-feishu-bridge DSH plugin can do

  • Execute dsh agent turns via Feishu chat messages
  • Manage multiple sessions with commands like /new, /sessions, /switch, /current
  • Choose between verbose and quiet output modes
  • Support both WebSocket and Webhook transports
  • Enforce fail-closed security with allowlists and nonces
  • Install as a dsh plugin with automatic process management

Where the dsh-feishu-bridge DSH plugin fits

  • Interact with a DeepSeek Harness agent from a Feishu chat without leaving the app
  • Summarize files in a workspace by sending a message to the bot
  • Manage multiple agent sessions and switch between them
  • Onboard new team members to use dsh via a familiar chat interface

Who the dsh-feishu-bridge DSH plugin is for

  • DeepSeek Harness users who want a chat-based interface
  • Teams using Feishu for collaboration and needing easy access to dsh agents
  • Developers and operators who need to run dsh tasks without a terminal

dsh-feishu-bridge DSH plugin limitations

  • No incremental streaming: the bot waits for the full turn to complete before replying
  • No tool-approval flow: the bundled composition runs tools without interactive approval
  • Sessions are tied to the chat that created them and cannot be accessed by other chats

dsh-feishu-bridge DSH plugin: from the repository README

Quoted from the wz-heng/dsh-feishu-bridge README, the upstream source of the dsh-feishu-bridge DSH plugin. Copyright remains with the original authors.

English | [中文](README.zh.md) [![CI](https://github.com/wz-heng/dsh-feishu-bridge/actions/workflows/ci.yml/badge.svg)](https://github.com/wz-heng/dsh-feishu-bridge/actions/workflows/ci.yml) [![SDK canary](https://github.com/wz-heng/dsh-feishu-bridge/actions/workflows/canary.yml/badge.svg)](https://github.com/wz-heng/dsh-feishu-bridge/actions/workflows/canary.yml) The SDK canary runs daily against the *latest* `deepseek-harness-sdk` and `lark-channel-sdk` releases (not the pinned versions this repo ships), so a breaking upstream change gets caught within a day instead of silently bit-rotting. A Feishu (Lark) channel bridge for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (`dsh`): message a Feishu bot, it runs a `dsh` agent turn, the reply comes back to the chat. **This is an independent community project. It is not built, maintained, or endorsed by DeepSeek.** It drives `dsh` entirely through its public Python SDK (`deepseek-harness-sdk`) — a subprocess boundary, no forked/patched harness code. ## What this is - A production-grade Feishu bot bridge (fail-closed allowlist, one-time card nonces, per-chat verbosity, sticky sessions, both `ws` and `webhook` t

Read the full READMERepository license: MIT

dsh-feishu-bridge DSH plugin questions

How do I install dsh-feishu-bridge as a dsh plugin?

First, clone the repo and set up a Python virtual environment with dependencies. Then, set the required environment variables. Finally, run `dsh plugin --profile <name> add /path/to/dsh-feishu-bridge`. The plugin will be available the next time you boot the profile.

How do I get my open_id for the allowlist?

Send a message to the bot. It will be rejected because your open_id is not in the allowlist. Check the server log for a line like "Feishu: rejecting message from unauthorized open_id=ou_xxxxxxxxxxxxxxxx". Copy that open_id into the FEISHU_ALLOWED_OPEN_IDS environment variable and restart.

Can I use this bridge without a public URL?

Yes, set FEISHU_TRANSPORT=ws to use WebSocket mode. This does not require a public URL. For webhook mode, you need a public URL.

What environment variables are required to run the bridge?

You must set DEEPSEEK_API_KEY, FEISHU_APP_ID, FEISHU_APP_SECRET, and FEISHU_ALLOWED_OPEN_IDS. Optionally, you can set FEISHU_TRANSPORT (default ws), DSH_PROVIDER, DSH_MODEL, etc. See the configuration reference in the README.

How secure is this bridge?

It is fail-closed by default: no allowlist means no one can use the bot. It uses one-time card nonces, signature verification in webhook mode, and session ownership per chat. Run it with least privilege, as the default composition has full access to bash and file editing.