MichengAI/dsh-im-connect
MichengAI/dsh-im-connect把微信、企业微信、钉钉、飞书、Lark、QQ、Telegram 接到本机 DeepSeek Harness,每个 IM 聊天对应一条独立工作区频道。
DeepSeek Harness 的飞书 UI:面板驱动控制台——每个斜杠命令都是 ⚙️ 控制面板卡片上的按钮,卡内审批与提问,流式卡片,扫码一次完成配置。
English | 中文
The Feishu UI for DeepSeek Harness (dsh) — a dsh-native plugin with a panel-driven control console: every slash command is a button on the ⚙️ control-panel card, approvals and questions resolve inside the chat, and one QR scan sets the whole app up.
Note: DeepSeek Harness is
still pre-release and may break between releases. dsh-feishu is built and
verified against dsh `@latest` — currently `0.2.0-rc.2` — both when
installed from npm and from git.
https://github.com/user-attachments/assets/e9163793-52f2-4e2c-a08a-22b27372be61
*2.5-min demo: control panel, streaming card, approval and question.*
# 1. install Node.js ≥ 22.13
# macOS / Linux: nvm (https://github.com/nvm-sh/nvm) → nvm install 22
# Windows: https://nodejs.org (or: winget install OpenJS.NodeJS.LTS)
node --version
# 2. install pnpm
npm install -g pnpm
# 3. install the plugin
# (pnpm ≥ 11 blocks the protobufjs build script by default, so
# --allow-build=protobufjs lets pnpm run it)
npx @deepseek-ai/dsh plugin --profile feishu add @dsh-feishu/dsh-feishu@latest --allow-build=protobufjs
# 4. one QR scan — create + configure the Feishu app
npx --yes --package @dsh-feishu/dsh-feishu dsh-feishu-setup --new --profile feishu
# 5. run
npx @deepseek-ai/dsh --profile feishu# 1. install Node.js ≥ 22.13
# macOS / Linux: nvm (https://github.com/nvm-sh/nvm) → nvm install 22
# Windows: https://nodejs.org (or: winget install OpenJS.NodeJS.LTS)
node --version
# 2. install pnpm
npm install -g pnpm
# 3. clone and build
git clone https://github.com/PGZXB/dsh-feishu.git
cd dsh-feishu
pnpm install
pnpm run build
# 4. install into a profile
npx @deepseek-ai/dsh plugin --profile feishu add link:.
# 5. one QR scan — create + configure the Feishu app
pnpm run setup:feishu -- --new --profile feishu
# 6. run
npx @deepseek-ai/dsh --profile feishuThen message the bot in Feishu. The setup wizard handles the Feishu app end to end — no web-console work and no manual credentials. Already have an app? Set FEISHU_APP_ID / FEISHU_APP_SECRET (environment or profile config) instead — see docs/feishu-setup.md.
# remove the plugin from the profile
npx @deepseek-ai/dsh plugin --profile feishu remove @dsh-feishu/dsh-feishu
# optional — full clean slate: delete the profile and its surface data
# (paths shown for the default dsh home, ~/.dsh)
rm -rf ~/.dsh/profiles/feishu ~/.dsh/feishuA Feishu chat is a dsh session — the bot is the agent's avatar. A typical session goes like this:
/group tocreate a group the bot joins. In a group, @-mention the bot (the default policy; a group with just you and the bot also answers plain messages, and the policy is configurable).
/panel to pop up the panel card.one: tap 📚 Pick project to choose from a list (the /repo equivalent), or 📁 Change dir to type a path (the /cd equivalent).
live card (tool calls, reasoning, markdown, tables). The card ends green with the full answer inside; Stop, copy, retry, and the ⚙️ panel button sit on it.
Mid-stream · Finalized ·
approval card — tap Allow once (or Reject). A question posts a card you answer with a tap (or a reply).
Approval · Question ·
resume any of them from the card (the /sessions equivalent; /resume moves one into this chat), and tap ➕ New chat (the /clear equivalent) to start fresh without deleting the old one.
Every button on the panel card maps to a slash command — pick whichever feels faster; /help lists them all.
Command · What it does /help · list all commands /panel · open the control-panel card (all commands as buttons) /group · create a group with the bot (bare opens a name-input card) /cancel · stop the running turn /cd · set this chat's working directory (bare opens a path-input card) /repo [path] · pick a project directory (bare scans the default roots; /repo scans that path) /status · show this chat's session status /feishu-status · show the surface diagnostic card /schedule · list active reminders /model · switch this session's model (bare opens the picker) /export · send this chat's session log as a file /log · send the dsh-feishu log file to this chat (handy for debugging — please attach the key log lines when you file an issue) /sessions · list saved sessions (resume any of them from the card) /resume · resume a saved session (bare opens the session list) /clear /new · start a fresh conversation (the old session stays saved) /goal · set the task goal (bare opens a text-input card) /compact · compact older conversation history /feedback · send feedback (bare opens a text-input card) /permission · switch the permission preset (bare opens the picker) /plan [on\ · off] · enter or leave plan mode (bare toggles)
/panel renders the full command palette as buttons; no command syntax to remember, and each button is the exact equivalent of typing the command./sessions lists, resumes, renames, archives, and exports them./feishu-status shows connection and session diagnostics, and stays usable mid-turn.allowedChats / allowedUsers, scheduled reminders, and session-log files.See CONTRIBUTING.md and SECURITY.md. Development, tests, and release: docs/development.md.
Join the dsh-feishu community group on Feishu:
group-chat interaction patterns: streaming cards, approvals, and the QR-driven Open Platform quick-setup flow. dsh-feishu borrows botmux's *interaction and onboarding patterns*, not its architecture — botmux bridges external CLIs, while this surface is dsh-native and in-process.
the platform this surface is built for.
WebSocket long connection and card APIs the transport builds on.
MIT — see LICENSE.