DeepSeek Harness plugin

dsh-feishu-channel

Feishu long-connection message channel for DeepSeek Harness

Jump to install

Source facts

Repository
srchengtao2025/dsh-feishu-channel
Latest update
Aug 22, 2026
Category
Remote & Mobile
GitHub stars
0
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-21

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/srchengtao2025/dsh-feishu-channel
Plugin: dsh-feishu-channel
Author: srchengtao2025

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer4 files
README.en.mdSource · read only
README language

DSH Feishu Channel

![CI](https://github.com/srchengtao2025/dsh-feishu-channel/actions/workflows/ci.yml) ![Release](https://github.com/srchengtao2025/dsh-feishu-channel/releases) ![License](./LICENSE)

中文说明 · [Changelog](./CHANGELOG.md) · [Security](./SECURITY.md)

dsh-feishu-channel is a community-maintained plugin that connects a DeepSeek Harness instance to a Feishu/Lark custom enterprise app over a WebSocket long connection. The Harness server can remain bound to loopback and does not need a new public inbound port.

> Status: Developer Preview. Version 0.10.1 is developed and tested against DeepSeek Harness 0.1.0-rc.8. Re-run the test suite after upgrading Harness.

Features

  • Web and CLI configuration with credentials stored through the Harness credential service.
  • Explicit Feishu domestic or Lark international API-domain selection.
  • Private-chat access and optional group @bot handling with an open_id allowlist.
  • Persistent Harness sessions mapped to Feishu conversations.
  • Configurable streaming replies using native CardKit when available, with automatic text-edit fallback.
  • Bidirectional workspace-scoped file transfer, including a feishu_send_file agent tool.
  • Read-only local RAG over a configured Feishu/Lark Wiki through feishu_kb_search and feishu_kb_read tools with source URLs.
  • One-time approval cards for privileged Harness operations.
  • Short-lived Web UI URLs for explicitly allowlisted users.
  • Message deduplication, per-chat serialization, filename sanitization, size limits, and workspace boundary checks.

Requirements

  • DeepSeek Harness 0.1.0-rc.8
  • Node.js 22 or later
  • A Feishu custom enterprise app with bot capability enabled

Install

Download the latest dsh-feishu-channel-*.tgz from GitHub Releases and install it into the Harness Web profile:

dsh plugin --profile web add ./dsh-feishu-channel-0.10.1.tgz

If the first install reports ERR_PNPM_IGNORED_BUILDS, pnpm will add a pending protobufjs entry to the Web profile's pnpm-workspace.yaml. Its lifecycle script is not required by this plugin; explicitly set the generated placeholder to false, keep DSH's strict supply-chain policy enabled, and rerun the install:

allowBuilds:
  protobufjs: false

To build from source:

git clone https://github.com/srchengtao2025/dsh-feishu-channel.git
cd dsh-feishu-channel
npm ci
npm test
npm pack
dsh plugin --profile web add ./dsh-feishu-channel-0.10.1.tgz

Restart Harness, keep it bound to loopback, and open the configuration page through an SSH tunnel:

ssh -N -L 3080:127.0.0.1:3080 user@YOUR_SERVER

Open http://127.0.0.1:3080/feishu-channel.

Feishu app setup

Enable these app permissions:

  • im:message.p2p_msg:readonly
  • im:message:send_as_bot
  • im:resource
  • cardkit:card:write for native streaming cards (recommended)
  • im:message.group_at_msg:readonly when group mentions are enabled

Select long-connection event delivery, add im.message.receive_v1, and add card.action.trigger if approval buttons are required. Publish an app version and include the intended users in the app availability scope.

Configure

Run the interactive CLI on the Harness server:

dsh-feishu-config show
dsh-feishu-config configure

The setup flow saves configuration while keeping the channel disabled, then explicitly asks whether it should validate credentials and enable the channel. Secrets are entered without echo and are not returned by the configuration API.

When the allowlist is empty, private chats are allowed by default while group chats remain denied. For production use, send /whoami, add the returned open_id to the allowlist, and avoid leaving private access open.

File transfer

Send a file in a private Feishu conversation, wait for the receipt acknowledgement, then send the instruction that should use the file. Received files are stored under .dsh-feishu/inbox inside the configured workspace and are never executed automatically.

Use these commands for manual outbound transfer:

/file list
/file send output/report.md
/file help

Outbound paths are resolved with realpath and must remain inside the Harness workspace. Empty files, oversized files, traversal paths, and symlinks escaping the workspace are rejected.

Development

npm ci
npm test
npm run check
npm run pack:check

See [CONTRIBUTING.md](./CONTRIBUTING.md) before opening a pull request.

License

MIT. This is not an official DeepSeek project.