How to use dsh-lark
Integrate DSH Agent into Feishu/Lark: assign tasks, view progress, and switch workspaces and models directly in chat. Questions, plans, and tool approvals are processed through interactive cards that return to the chat.
This article is auto-derived from indexed fields (wiki / faq / compatibility_json), not freshly AI-generated.
This article is derived from the plugin's already-indexed fields (wiki / faq / compatibility_json / readme), not freshly generated by AI. Source field is noted at the end of each section.
Quick start
dsh-lark
— source: plugin_wiki.wiki_content
Install & verify
dsh plugin --profile web add dsh-lark-channel
Run the command above in your DSH Web Profile. Then enable the plugin in the plugin list.
— source: plugins.install
Key points
- 不用守着终端:从飞书发起任务,随时查看进度和结果。
- 不只是聊天机器人:可以切换真实工作区和模型,执行 Harness 已有的命令与工具。
- 关键决定仍由你控制:模型提问、计划审阅和工具审批都会回到当前聊天,按钮或文字都能作答。
- 上下文不会混在一起:不同聊天、话题和工作区可以保留各自的会话。
- Agent 之间也能协作:一条命令添加更多机器人,让它们在群聊中通过 @ 交接回合,并用轮数上限防止无限对话。
— source: plugin_wiki.readme_en (fallback readme_raw)
FAQ
After scanning the Feishu bot QR code, in which scenarios can I use it?
You can DM the bot or add it to a group chat and @ it to assign tasks. Group chats are set to "must @ to respond" by default, meaning you need to speak in the group for the bot to hear you; the visibility scope of DMs is determined by the Feishu app's visibility.
Do I need to open a public server or configure a callback URL after installation?
No, you don't. The plugin uses Feishu WebSocket long connections with no callback URL; the first time it starts, it displays a QR code in the terminal, and you can just scan with the Feishu App to complete app creation and credential setup.
If I switch workspaces or models midway, will the context be cleared?
No, it won't. Each conversation × current workspace corresponds to an Agent session - running /cd to change directories is like switching to a different session, while running /model to switch models preserves the current context. To clear it in place, use /new to start a new session.
If there are 3 files pending approval in a group chat, what happens when the Agent tries to send a 4th?
It gets directly rejected and the model is told to wait for the previous ones to have results first. This limit is hardcoded into the product and not configurable: turning it up would simultaneously bring back memory usage and approval fatigue.
If I loosen the "permission preset" I see in /status to completely no sandbox, what happens?
The "no more asking" action switches the current session to completely no sandbox, after which all actions that would normally pop up for approval will be directly rejected; this is bidirectional and indeed more permissive, but you can switch back anytime with /permission.
Will outbound file paths expose my local absolute paths?
No, they won't. All text for people or the model only mentions "relative positions within the workspace" - this includes /get replies and file system errors when send_file fails; this is intentionally designed to prevent prompt injection leakage.
Can this plugin share the same profile with dsh web?
Yes, it can. Run dsh plugin --profile web add dsh-lark-channel@latest to add it to the web profile, then when you run dsh web it will work, with Feishu and Web sharing the same Agent settings.
— source: plugin_wiki.faq_json
Compatibility
- DSH: >=0.1.0-rc.6
- Node: ^22.19.0 || >=24.0.0
- Platforms: macOS, Linux, Windows
— source: plugin_wiki.compatibility_json
Pitfalls
Review the upstream repo before installing. This guide is auto-derived from indexed fields and may lag the latest release. If anything contradicts the official docs, treat the upstream source as authoritative.
— source: general rule