Preface¶
DeepSeek Harness (command name dsh) is an open-source agent runtime developed by DeepSeek AI, currently in developer preview. Its core philosophy is “everything is a plugin”: models, tools, skills, sessions, sandboxes, and interfaces can all be replaced or combined via plugins. There is also an independent community plugin directory site deepseek-harness-plugin.com, which has no official affiliation with DeepSeek / Fangjia, and collects community repositories tagged with the dsh-plugin topic.
Most daily use of dsh is limited to the terminal or local Web UI. When you go to a meeting or check group messages, you have to switch windows back and forth: you need to return to your computer to check progress, and model queries, plan confirmations, and tool approvals get stuck on the original interface. The dsh-lark maintained by omdsh-dev connects the running Harness to Feishu / Lark: you can send tasks, view execution progress, and handle human-in-the-loop steps directly in the same chat by chatting privately with the bot or @-mentioning it in a group.
This article is collated after cross-checking with the plugin directory page, GitHub repository README / package.json, npm package page, and the official DeepSeek Harness repository. There is more than one Feishu bridge plugin in the community, and similar plugins like dsh-lark-bot can be found in the directory; this article only covers the repository omdsh-dev/dsh-lark, do not mix up installation commands with other same-named or similar-named projects on GitHub.
What is dsh-lark¶
dsh-lark is a “notification and integration” plugin for DeepSeek Harness, maintained by the GitHub organization omdsh-dev, with the repository address omdsh-dev/dsh-lark. The community directory page positions it as: a Feishu (Lark) bot channel, allowing you to chat directly with DeepSeek Harness agents within Feishu.
You need to distinguish three names: the directory and repository are called dsh-lark, while the actual package published to npm and used for the command-line entry point is dsh-lark-channel. The current npm version is 0.0.6 (released on 2026-08-15), licensed under BSD-3-Clause, and the primary language is TypeScript. It was added to the directory page on 2026-08-12; as of 2026-08-17, GitHub shows 30 stars, while the directory page still showed 15 stars at the time, so star counts should be referenced from the repository page.
The repository README describes it as an IM channel, not just a question-and-answer chatbot: you can switch between real workspaces and models, execute existing commands and tools in Harness; queries, plan reviews, and tool approvals will return to the current Feishu session for response via buttons or text. The first launch uses Feishu QR code to create an application, and the documentation states that no public network server or callback address configuration is required. The README also explicitly states that this is an unofficial community plugin and has no affiliation, authorization, or endorsement relationship with DeepSeek, Feishu, or Lark.
Core Features¶
The capabilities listed in the repository README can be divided into the following categories.
-
Keep Harness sessions within Feishu. Context can be restored after restarting, and subsequent messages will continue from the last session;
/newwill start a new session in place, keeping the workspace and model unchanged. Sessions can be isolated by chat, chat thread, or group member, corresponding to three granularities of thesessionScopeconfiguration item:chat,chat-thread, andchat-sender. -
Switch workspaces and models within the chat. Use
/wsto view available workspaces, and/cdto switch; return to the original workspace to continue the previous task. Use/modelto open the model selection card, and switching will retain the current session; you can also use/model useto switch directly, or/model resetto restore the default model. -
Execution progress is displayed in Feishu’s native format. Reasoning, tool calls, and results will appear as thought processes, with the final answer sent separately. Human-machine collaboration uses cards: single-select, multi-select, or text answers to questions, approve plans or propose modifications, allow or reject tool calls. State-changing cards are bound to the original chat, and you cannot operate the original session after forwarding to another chat.
-
Slash commands enter the DSH command runtime. In addition to the channel’s own
/status,/help, and/stop, built-in host commands such as/plan,/compact, and/permissionwill also be directly handed over to Harness./statusdisplays the workspace, model, and session, and also shows context usage and cumulative tokens when available, with support for refreshing. The channel’s built-in copy will display Chinese or English according to each user’s Feishu language settings. -
Multiple bots can join the same group for collaboration.
dsh-lark-channel add <name>will create a new instance and display a QR code; after scanning the code, this bot will have its own settings, App Secret, and session, and will not share context with the first one. They can hand over turns via @-mentions. The default maximum number of consecutive bot turns (botHops) is 6, and any user’s message will reset the quota.
Installation and Activation¶
The installation command given on the community directory page is as follows, run it in the DeepSeek Harness terminal:
dsh plugin add github:omdsh-dev/dsh-lark
The dsh CLI will parse the plugin from GitHub and install it to the current configuration. For reproducible installations, the directory page requires pinning the commit hash:
dsh plugin add github:omdsh-dev/dsh-lark#commit
Replace commit above with the actual commit hash from the repository. The directory page also reminds users that the plugin runs with the permissions of the current dsh process, and may execute code during installation. Please check the source code repository and license before installing.
The repository README describes daily activation as a standalone CLI. If you do not have DeepSeek Harness installed locally yet, you need to install the official package first:
npm i -g @deepseek-ai/dsh
Then install the channel and start it:
npm i -g dsh-lark-channel
dsh-lark-channel start
A QR code will be displayed in the terminal. Use Feishu to scan the code to complete the application creation, then chat privately with the bot or @-mention it in a group to get started. The startup command will configure the pnpm build strategy for the profile before installing dependencies for the first time: unapproved dependency build scripts will only warn and skip, rather than causing the installation to fail; the postinstall script for protobufjs that only prints a prompt will also be marked as skipped by name, so you do not need to manually run pnpm approve-builds.
If you do not want to install it globally, you can run it directly with npx, and you will need to add npx to each subsequent command:
npx dsh-lark-channel@latest start
If you want Feishu to share the same profile with the already running dsh web, the method given in the README is:
dsh plugin --profile web add dsh-lark-channel@latest
dsh web
The environment requirements are subject to the repository README and package.json: Node.js ^22.19.0 || >=24, DeepSeek Harness 0.1.0-rc.6 or newer, and a Feishu or Lark tenant. Native thought processes require Feishu PC 7.70, mobile 7.74 or newer; older clients can use output: 'stream'.
Typical Usage¶
The repository README recommends checking the current status and available workspaces first:
/status
/ws
/cd my-project
/model
The meanings of each command are as follows:
- /status: View and refresh the workspace, model, and session; includes context and token status when available
- /ws: View available workspaces
- /cd <name or path>: Switch workspace
- /model: Open the model selection card
- /new: Start a new session in place, clear the context, keeping the workspace and model unchanged
- /stop: Stop the current task
- /help: View all commands (including those provided by the host)
Then you can assign tasks directly. The example in the README is:
Check why this project's build failed. Give me a plan first, and ask for my confirmation when an action is needed.
The Agent’s execution process will be displayed in Feishu; when your participation is required, a question, plan, or approval card will be sent.
macOS and systemd-based Linux will use user-level background services, which can continue to run after closing the terminal:
dsh-lark-channel status
dsh-lark-channel logs -f
dsh-lark-channel restart
dsh-lark-channel stop
If you start with npx, these commands also need to be prefixed with npx dsh-lark-channel@latest. The tool will print prompts according to the actual startup method, and you can directly paste the output. Upgrade with dsh-lark-channel upgrade, which will install the latest CLI and restart the bot on the new version; if you use the npx path, you are already running the latest version, so this step is unnecessary. In case of connection exceptions, the plugin will automatically rebuild the WebSocket under rate limiting and backoff control, avoiding the situation where the process is still running but the bot has silently gone offline.
Add a separate Agent for a second Feishu application:
dsh-lark-channel add reviewer
The command will create a new instance, restart the service, and display a QR code. Use dsh-lark-channel remove reviewer to remove it; removal will retain the instance’s credentials and settings, and you can restore it by adding the same name again later.
The README also lists several permissions and advanced options, which are read at startup and require a service restart after modification:
- The available scope of the Feishu application determines who can find the bot; senderAllowlist, groupAllowlist, and approvers can further narrow down permissions
- workspaceRoots can restrict the directories allowed to switch to in the chat
- botPeers can restrict allowed bots for conversation, and botHops controls consecutive bot turns, with a default of 6
- When deploying a credentials service, the App Secret obtained by scanning the code will be stored in it; secrets stored in settings in older versions will be automatically migrated on the next startup
- Image attachments are disabled by default; only enable attachImages after confirming that the current model supports vision capabilities.
Applicable Scenarios and Notes¶
It is suitable for users who are already running DeepSeek Harness locally and communicate daily on Feishu / Lark: assign a build troubleshooting task from your mobile phone while traveling or in a meeting, have the bot align progress with colleagues in the group, or use a second bot specifically for review. It relies on workspaces, models, and tools that are already available on your local machine (or the same profile set), and will not independently become a cloud-based coding service.
There are several things you need to understand before using it.
1. The plugin runs with the permissions of the current dsh process, and may execute code during installation. Both the directory page and the repository require you to check the source code and BSD-3-Clause license first; for reproducible installations, use the #commit method from the directory page to pin the submission, rather than tracking the floating latest tag long-term.
2. This is a community plugin, not an official product of DeepSeek, Feishu, or Lark. The community directory site is also not an official app store. There are other Feishu bridge plugins on GitHub such as dsh-lark-bot, dsh-lark-bridge, and others mentioned in discussions, with different installation commands, package names, and capability boundaries, so do not interchange their usage.
3. The directories that the channel can switch to, who can find the bot, and who can approve requests are all restricted by the Feishu application’s visibility scope and the configurations of workspaceRoots, senderAllowlist, groupAllowlist, and approvers. Multi-bot collaboration has a default 6-turn limit to prevent two bots in a group from @-mentioning each other endlessly.
4. Harness itself is still in developer preview, and the official README notes that future breaking compatibility changes may occur. This plugin requires dsh to be at least 0.1.0-rc.6, and the Node.js version requirement is stricter than many older projects. If the Feishu client is too old, native thought processes may not render correctly, and you should follow the documentation to switch to output: 'stream'.
Summary¶
What dsh-lark does is very specific: connect the already running DeepSeek Harness to Feishu chats, so that assigning tasks, viewing progress, and approving requests no longer require you to stay in front of the terminal. The installation command from the directory page is dsh plugin add github:omdsh-dev/dsh-lark; the actual command to scan the code and launch the bot is subject to dsh-lark-channel start in the repository README.
Directory page: https://deepseek-harness-plugin.com/en-US/plugins/dsh-lark/
GitHub: https://github.com/omdsh-dev/dsh-lark
npm: https://www.npmjs.com/package/dsh-lark-channel