把飞书、企微、钉钉、QQ、Slack、Discord、Telegram、Mattermost 桥进 dsh agent(出站长连接/长轮询/Webhook),提供 im_status、可选本机 Whisper ASR、QQ/钉钉/TG/MM 纯文本出站,以及环境变量白名单(DSH_IM_*_ALLOWED_USER_IDS)。allowedUserIds 为空即任何人都能驱动 agent——对外暴露前请先设白名单。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:173787247/dsh-wsl-im
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
让 飞书 / 企微 / 钉钉 / QQ / Slack / Discord / Telegram 直接和 dsh 对话。
链路:IM → 本插件 → ctx.agents → 回 IM。
在套件里的位置
不在 install.sh 里。行为以厂商协议文档为准。
flowchart TB
chats["飞书 / 企微 / 钉钉 / QQ / Slack / Discord / Telegram"] --> im["dsh-wsl-im"]
im --> ws["每个 IM 一个工作区"]
im --> agents["ctx.agents"]
agents --> reply["回复回到该聊天"]
工作区是 ~/.dsh/im-workspace/{feishu,wecom,dingtalk,qq,slack,discord,telegram,mattermost},插件启动时登记。一个聊天一条会话,不是整个平台共用一条。总图见 dsh-wsl-kit 中文说明。本插件是 0.3.7(可选,不在 install.sh)。
首批测试
| 适配器 | 模式 | 凭证 |
|---|---|---|
| 飞书 | 长连接 | FEISHU_APP_ID / FEISHU_APP_SECRET + DSH_IM_FEISHU=1 |
| 企微 | 智能机器人 WSS | WECOM_BOT_ID / WECOM_BOT_SECRET + DSH_IM_WECOM=1 |
| 钉钉 | Stream | DINGTALK_CLIENT_ID / DINGTALK_CLIENT_SECRET + DSH_IM_DINGTALK=1 |
| 官方 Gateway | QQ_APP_ID / QQ_APP_SECRET + DSH_IM_QQ=1 |
|
| Slack | Socket Mode | SLACK_BOT_TOKEN / SLACK_APP_TOKEN + DSH_IM_SLACK=1 |
| Discord | Gateway WSS | DISCORD_BOT_TOKEN + DSH_IM_DISCORD=1(可选 DISCORD_APPLICATION_ID) |
| Telegram | getUpdates 长轮询 |
TELEGRAM_BOT_TOKEN + DSH_IM_TELEGRAM=1(群 @ 建议设 TELEGRAM_BOT_USERNAME) |
| Mattermost | Outgoing Webhook + Bot REST | MATTERMOST_URL / MATTERMOST_TOKEN + DSH_IM_MATTERMOST=1 |
| mock | 本机 HTTP | DSH_IM_MOCK=1 |
飞书还需在 profile 里安装 @larksuiteoapi/node-sdk。
企微 WSS(openws.work.weixin.qq.com)在本机常需走 HTTPS_PROXY/HTTP_PROXY(ws 不吃 NODE_USE_ENV_PROXY)。同一 Bot 同时只能一条长连接——测 dsh 时请关掉挂着同一个 Bot 的其它客户端。Slack Socket Mode 同理(App 级 xapp- 开连接,Bot xoxb- 回信)。
Discord 需开 Message Content Intent;频道消息要 @ 机器人。Telegram 只用出站长轮询(无 webhook);群聊在设置了 bot username 时需 @。
入站图片 / 文件(含 PDF)/ 语音 / 视频已与企微对齐:图片进视觉,PDF 用 pdftotext,语音只用平台转写(QQ asr_refer_text;多数渠道没有转写就落盘并请改发文字),视频只落盘、不抽帧。群消息需 @ 机器人(Slack 为 app_mention)。本机 WSL 直连这几家会超时,长连接和下载在设置了 HTTPS_PROXY 时走同一条代理。
每个 IM 单独一个工作区:~/.dsh/im-workspace/feishu、wecom、dingtalk、qq、slack、discord、telegram、mattermost。插件启动时会登记进 dsh 工作区列表,侧边栏显示为飞书、企微、钉钉、QQ、Slack、Discord、Telegram、Mattermost,不用手动添加。同一工作区里仍是一条聊天一个会话。旧会话留在上一级 im-workspace。
安装
# 跟踪默认分支,不要钉死 0.2.0
dsh plugin --profile web add github:173787247/dsh-wsl-im
Awesome: 条目草稿见 docs/awesome-entry.yml;仓库满 ≥1 天后再向 awesome-dsh-plugin 提 PR(CI 会卡年龄)。
source 环境变量后 restart-dsh-web.sh,新开会话。可用工具 im_status。
兼容性
| 字段 | 值 |
|---|---|
| 插件 | dsh-wsl-im 0.3.8 |
| 最低 dsh | ≥ 0.1.2(Web UI 一次性 ?token=,Windows 中继 :3081) |
| 最新验证 | 以 dsh-wsl-kit 兼容性 为准(当前 0.2.1-rc.5)— 套件唯一真源 |
| 套件档位 | 可选(默认不在 install.sh / KIT_SET=daily) |
License
MIT
链接
同类插件
6Mikao9/dsh-wsl-workspace★ 106
从 Web GUI 添加 WSL 工作区,无需在 WSL 之中再次安装 dsh 以及相关工具,bash 命令与文件读写运行在本机 WSL 发行版内,Windows 文件仍可访问。
XINY11451/dsh-wsl★ 10
将 DSH 的工作范围扩展到 WSL。插件支持了发行版中的文件直接被 DSH 读取、写入、编辑与搜索。面对不同任务需求,AI可根据任务需求自行选择执行一次性命令/自建终端执行多条命令以完成任务。支持在 WSL 终端中键入 dsh 命令调用 DSH(详情在 WSL 终端键入dsh help),深度融合了 WSL 与 DSH。用户新建的所有终端支持与AI可视化协作。
Edge-Echo/dsh-win-toolkit★ 4
面向 DSH agent 的 Windows 原生工具:剪贴板读写、系统通知、hosts 文件查看与网络诊断,均返回结构化数据(带 UI 卡片),底层为防注入的 PowerShell。
173787247/dsh-wsl-env★ 3
向 system prompt 注入 WSL 发行版、Linux 路径映射、/mnt/c 的 CRLF 与 git 注意点,以及 NODE_USE_ENV_PROXY。
173787247/dsh-wsl-open★ 3
把 DeepSeek Harness 聊天里的 WSL Linux 路径在 Windows 默认程序或资源管理器中打开。
Han-1413141/dsh-wsl-native★ 3
在同一个 Windows 窗口中使用 Windows 与原生 Linux DSH 会话,支持 WSL 环境切换和双向系统操作。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。