@aiwayds/dsh-feishu
dsh plugin: drive an existing dsh session from Feishu/Lark — round cards, interactive resume, ask-user cards, steer (outbound-only WebSocket bot)
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:fan56/dsh-feishu说明文档
阅读完整 README ↗📱 Usage
| Command | What it does |
|---|---|
/resume | Interactive session picker card (dropdown + enter; or reply /resume N), sorted by last update |
/new | Start a brand-new session and bind to it (inherits cwd, model and reasoning effort) |
/stop | Abort the running turn (queued messages survive) |
/btw | By-the-way side question while the main task runs: one tool-less model call over a recent-conversation snapshot, streamed into its own card — the main line never notices. Not kept in the session; idle main line refuses; --model provider/model overrides the route; bare /btw re-sends the last exchange (btwContextMessages config sizes the snapshot) |
/status | Binding and run status |
/sub N | Inspect the Nth subagent |
/model | Interactive model picker (two steps: pick a provider → pick one of its models); live-switches bot-created sessions, otherwise saved as the phone default (applies to /new) |
/think | Interactive reasoning-effort picker for the current model (adapter-provided efforts + provider default); live-switches bot-created sessions, otherwise saved as the phone default |
/permission | Interactive permission-preset picker; the pick is replayed as /permission through the dsh command registry |
/select-skill | Interactive skill picker (user-invocable skills of the bound workspace); activation rides dsh's native /name skill gesture |
/profile-switch | Interactive model-profile switcher over $DSH_HOME/model-profiles.json; applies the profile's provider/model/effort (agent frontmatter updates remain desktop-only) |
/feishu-plugin think on|off | Toggle the reasoning tail in the activity section (default on) |
/settings /preset /theme /reload /hotkeys /model-sync /export /agents /subagents /profile-cfg /login /logout /skills | Provided by the desktop dsh-tui-pi plugin (interactive panels) — the phone refuses them with a desktop pointer (and a phone-side stand-in hint where one exists, e.g. /skills → /select-skill) |
/goal /dcp | Exist in the dsh runtime but not yet adapted — refused with a desktop pointer |
/session | Mirrored to /status |
| Any image message | Downloaded and injected into the bound session as an image block (DM: directly; group: only while that group is the active dispatch surface). Requires the model route to accept image input |
| Any other text | Injected as a prompt into the bound session (steered into the running turn when one is live) |
Group usage: add the bot to a Feishu group, then @-mention it — @dsh 帮我跑一下测试 dispatches exactly like a DM; commands (/resume, /stop, …) work the same way after a mention. Only allowlisted members ever trigger the bot; everyone else is invisible. Cards land in the group while the dispatches keep coming from there; the binding itself stays the bot's single global one (one session at a time, whichever chat drove it last).
Typical flow:
Session running on your desktop → open Feishu on the train → /resume and pick it
→ keep going from the phone (auto-steer) → answer ask cards with a tap → /stop anytime
⚙️ Configuration (config: block)
| key | default | description |
|---|---|---|
operators | [] | open_id allowlist — required to arm the bot |
mode | "on" | "off" disables the plugin entirely |
domain | "feishu" | "feishu" (CN) or "lark" (international) |
statusIntervalMs | 5000 | round-card refresh beat (pseudo-streaming), range [5000, 600000] |
bodySegmentChars | 3500 | long-body segmentation threshold |
resumeListStyle | "auto" | /resume list: auto/table/list |
backgroundPush | "off" | Completion push for sessions the phone is not bound to, into the last active chat: off / cron (turns carrying a cron delivery or a subagent-settled notice) / all (every finished turn). Env override: DSH_FEISHU_BACKGROUND_PUSH |
appIdRef / appSecretRef | DSH_FEISHU_APP_ID/SECRET | credentials ref names |
Credential resolution order: plaintext in patch > DSH_FEISHU_APP_ID/SECRET env
vars > the credentials service.