Introduction

DeepSeek Harness (DSH) is an agent development framework based on a plugin architecture. When developing or debugging long-running tasks, you typically need to operate in the terminal or on the desktop. The dsh-feishu plugin allows you to drive existing DSH sessions directly from the Feishu (Lark) mobile client, view task progress, answer questions, handle approvals, and issue commands.

The plugin works over an outbound-only WebSocket connection, without exposing local ports or setting up tunnels. All credentials are stored locally, and ownership is maintained by fan56.

Core Features

The plugin provides a complete remote interaction mechanism, mainly including the following capabilities:

Session Management and Control

  • Session Control: /new starts a new session that inherits the previous session’s configuration (working directory, model, reasoning intensity); /stop aborts a running task at any time; /btw processes side questions in parallel while the main task is running.
  • Session Resumption: /resume provides an interactive session selector, allowing you to quickly restore a historical session via a dropdown menu or by replying with a numeric index. If a corrupted session log is encountered, the plugin provides a one-click corrupted-log repair feature that rebuilds the log while preserving a backup.
  • Interactive Selectors: Desktop-side /model, /think, /permission, /select-skill, and /profile-switch commands are rendered on the mobile client as one-tap card selectors.

Real-time Visualization and Feedback

  • Real-time Circular Cards: Each LLM round trip generates a circular card that refreshes the current state every 5 seconds (Thinking, Tool Calling, Subagent Running). The bottom of the card displays tool-call information and the message fragment being generated.
  • Reply Embedding: When a task round completes, the reply content is embedded directly into the circular card you are viewing (shown as 💬 Round Reply) rather than being inserted as a separate message. Long replies are still sent as separate cards.
  • Quick Actions: Cards provide one-click ⛔ Stop and ▶️ Continue actions without requiring command input.

Feishu-Specific Features

  • Group Chat Support: The bot can be added to Feishu groups and is visible only to members on the allowlist. Members can issue commands by @-mentioning the bot; when the bot drives proactively, no additional mention is required.
  • Image Delivery: In private chats, when you send an image, the plugin automatically downloads it, detects the media type, and injects it into the session as an attachment.
  • Approvals and Questions: When a session requires approval (Approval) or calls ask_user_question, the mobile client receives interactive cards that support dropdown selection, multi-select, or text-input submission.
  • Background Push: Supports the backgroundPush mode. When a session completes on an unbound phone or a subagent finalizes, a completion notification can be sent to the phone using Cron mode or All mode (disabled by default and active only when enabled in the configuration).

Installation and Enablement

Before using this plugin, ensure that your environment meets the requirements.

Environment Requirements

  • DSH version >= 0.2.0-rc.2 (Alpha releases are no longer supported).
  • Node.js version >= 22.19.0.

Install the Plugin

Run the following command in your terminal to install the plugin to the specified Profile:

dsh plugin --profile <your-profile> add @aiwayds/dsh-feishu

Configure Credentials

After installation, you need to configure the Feishu side. It is recommended to run the /feishu-onboard command in the DSH desktop client. This command guides you through creating a Feishu app by scanning a QR code and automatically writes the credentials to ~/.dsh/.credentials.yaml.

If you are using an existing app, manually configure the App ID and App Secret:

# ~/.dsh/.credentials.yaml
DSH_FEISHU_APP_ID: cli_xxxxxxxxxx
DSH_FEISHU_APP_SECRET: xxxxxxxxxxxxxxxx

Permission Configuration

  • For non-admin users, an Allowlist must be configured on the Feishu side; otherwise, the bot will not respond.
  • Ensure the Feishu app has bot capability, long-connection event permissions (such as im.message.receive_v1), and specific message permissions.

Typical Usage

The following are examples of core commands supported by the plugin:

  • /new: Start a completely new session in the mobile client, inheriting the current session’s model and directory configuration.
  • /resume: Display an interactive card to select a historical session and continue the conversation.
  • /feishu-onboard: Run in the desktop client to initialize or configure the Feishu app credentials.
  • /stop: Abort the currently executing task.
  • /btw: Send a side question while the current task is running.

Use Cases and Notes

  • Use Cases: Suitable for developers who need to monitor long-running tasks on mobile, handle approval flows, or quickly answer model questions from a phone.
  • Connection Mode: The plugin acts only as an outbound client and does not provide intranet penetration; ensure that your mobile network environment is functioning normally.
  • Security: Credentials are stored only in the local file system; do not upload them to public code repositories.
  • Ecosystem Relationship: This plugin is a community-maintained project and has no official affiliation with DeepSeek or Huoshang.

Conclusion

dsh-feishu extends DSH control to the mobile side through Feishu, enabling visual and interactive session management. Its outbound WebSocket design lowers the barrier for network configuration. For more details, refer to the Plugin Directory or the GitHub Repository.