Foreword

DeepSeek Harness (dsh) encapsulates agent capabilities into a pluggable plugin system, but default interactions mostly occur in terminals or local processes. Teams collaborate daily on Feishu (Lark). To integrate dsh into an IM, one typically needs to build a bot, configure app credentials, and connect slash commands with approval workflows.

dsh-feishu (npm package name: @dsh-feishu/dsh-feishu) is a native client plugin for dsh released by maintainer PGZXB. Feishu chat becomes a dsh session; the control panel turns each slash command into a card button; approvals and questions are handled within cards; and output is presented as streaming cards. This article introduces its positioning, capabilities, and installation usage.

What Is This

dsh-feishu is the Feishu UI for DeepSeek Harness, classified as a client plugin. In one sentence: a panel-driven console where each command is a button on control panel cards, supporting in-card approvals and questions, streaming cards, and one-click configuration of Feishu apps via QR code scanning.

The plugin is released under the MIT license. The current npm version is 0.2.0, requiring Node.js ≥ 22.13. The README notes that dsh is still in pre-release (0.1.0-rc.x) and may have breaking changes between versions; both the main branch and npm @latest track dsh 0.1.1-rc.2.

Community directory page: https://www.skillhub.cn/plugins/PGZXB/dsh-feishu (SkillHub is an independent community site, not officially affiliated with DeepSeek / High-Flyer). Source code and documentation: https://github.com/PGZXB/dsh-feishu.

Core Features

Panel-Driven Command Console

Sending /panel brings up a control panel card where each button corresponds to a slash command, equivalent to manual input. No need to remember syntax—click to execute /repo, /cd, /model, /sessions, and other operations.

Streaming Output Cards

When the agent runs, tool calls, reasoning processes, Markdown, and tables are written to the card in real-time; after completion, the card transitions to a finished state and provides Stop, copy, retry, and return-to-panel buttons.

In-Card Approvals and Questions

When permission escalation is required, an approval card is pushed, allowing clicks on Allow once or Reject; when the agent asks a question, it is presented as a card for selection or reply. In group chats, error notifications, approvals, and questions are @-mentioned to the initiator.

Session Persistence and Working Directory

Each Feishu chat binds to a dsh session, with the working directory and context preserved after daemon restart. After selecting a directory via 📚 Pick project (equivalent to /repo) or 📁 Change dir (equivalent to /cd <path>), the agent begins executing tasks.

One-Click Configuration via QR Code

The dsh-feishu-setup wizard creates and configures a Feishu app via QR code scanning, eliminating the need to manually enter credentials on the Feishu Open Platform. If an app already exists, you can set environment variables or profile configuration for FEISHU_APP_ID / FEISHU_APP_SECRET (see repository docs/feishu-setup.md for details).

Other Capabilities

  • Group chats and @ mentions: By default, the bot must be @-mentioned; in private chats with only you and the bot, messages can be sent directly, with configurable strategies.
  • /group <name> creates a group chat with the bot.
  • Emoji reaction confirmations, chat/user whitelists (allowedChats / allowedUsers), scheduled reminders (/schedule), session log export (/export), diagnostic cards (/feishu-status).

Installation and Activation

Before installation, confirm the Node.js version and install pnpm globally. pnpm ≥ 11 blocks the build script of protobufjs by default; add --allow-build=protobufjs when installing the plugin.

# 1. Confirm Node.js ≥ 22.13
node --version

# 2. Install pnpm
npm install -g pnpm

# 3. Add the plugin to the feishu profile
npx @deepseek-ai/dsh plugin --profile feishu add @dsh-feishu/dsh-feishu@latest --allow-build=protobufjs

# 4. Scan QR code to create and configure Feishu app
npx --yes --package @dsh-feishu/dsh-feishu dsh-feishu-setup --new --profile feishu

# 5. Start dsh
npx @deepseek-ai/dsh --profile feishu

Install from Source

git clone https://github.com/PGZXB/dsh-feishu.git
cd dsh-feishu
pnpm install
pnpm run build

npx @deepseek-ai/dsh plugin --profile feishu add link:.
pnpm run setup:feishu -- --new --profile feishu
npx @deepseek-ai/dsh --profile feishu

Uninstall

npx @deepseek-ai/dsh plugin --profile feishu remove @dsh-feishu/dsh-feishu

# Optional: Delete profile and surface data
rm -rf ~/.dsh/profiles/feishu ~/.dsh/feishu

Typical Usage

After starting, send messages to the bot in Feishu. A complete session typically follows this sequence:

  1. Start chat: Private chat the bot, or send /group <name> to create a group chat; in groups, @-mention the bot (strategy configurable).
  2. Open control panel: Send /panel.
  3. Select working directory: Click 📚 Pick project or 📁 Change dir; the bot won’t execute tasks until a directory is set.
  4. Ask questions: Send messages directly; output streams into the card.
  5. Handle approvals and questions: Approve permissions or answer questions within the card.
  6. Manage sessions: Click 🗂️ Sessions to view and resume historical sessions (equivalent to /sessions); click ➕ New chat to start a new conversation (equivalent to /clear, old sessions are retained).

Common commands at a glance:

Command Function
/help List all commands
/panel Open control panel
/repo [path] Select project directory
/cd <path> Set working directory
/model <provider/model> Switch model
/sessions / /resume <id> List or resume sessions
/clear / /new Start new conversation
/goal <text> Set task goal
/permission <preset> Switch permission preset
/plan [on\|off] Enter or exit plan mode
/export Export session log file
/cancel Stop current round
/feishu-status Display surface diagnostic information

See the Commands section of the repository README for the full list.

Use Cases and Considerations

Who is it for: Teams or individuals already using or planning to use dsh for agent development who want to move interactions to Feishu IM; users needing mobile or collaborative click operations and in-card approvals without maintaining a custom bot scaffold.

Please note before use:

  • Both dsh and dsh-feishu are in rapid iteration; refer to the dsh version notes in the README before upgrading.
  • The plugin runs with the permissions of the current dsh process, able to access file systems and networks reachable by that process; read the source code and MIT license before installation to ensure permissions and whitelist configurations (allowedChats / allowedUsers) meet your team’s security requirements.
  • In production environments, it is recommended to first verify /feishu-status and permission presets in a small chat scope before expanding usage.

Conclusion

dsh-feishu converges dsh’s slash commands, streaming output, and approval workflows into Feishu cards, reducing integration costs with /panel and QR code configuration. If you are already working in the dsh ecosystem for agents and want collaboration centered on Feishu, you can install via npm and follow the Quickstart.