发帖缘起:之前在《Minimax H3 小试牛刀》那个帖里回了一段关于「用 IM 远程给本地 agent 下指令」的经验,版主建议我整理成一篇单独发出来。这篇就是在原有回复基础上扩写的实测记录。
适用对象:DSH 跑在远端服务器(或家里的机器)上,人经常不在电脑前,但又想随时使唤它的人。
一、先说我到底想解决什么
DSH 装在一台常年开机的机器上。麻烦在于:人一离开那台机器,这个 agent 就等于不存在了。
我遇到的实际场景就三类:
- 下班路上,上午让它跑的活儿不知道跑完没有,想瞄一眼结果;
- 在外面突然想起一件事要它查,但手边没有 SSH、没有远程桌面,也不想掏出笔记本;
- 电脑在办公室/宿舍,人在外面,想给它派个新任务。
这条路我自己搭过:bot 收消息 → 转成 prompt → 调本地 CLI → 把输出回传,四步就能跑通。但真要长期用,有三个坑绕不开——长任务没回执(跑 20 分钟你以为它死了)、多人串上下文(得按 chat_id 分开维护)、权限敞开(谁拿到 bot 谁就能在你机器上跑命令)。DSH 生态里已经有现成的了,而且比我那层壳完善得多。
这篇记录三个插件,各自解决链路里的一段:
| 插件 | 解决什么 | 我的使用频率 |
|---|---|---|
| dsh-im | 把 DSH 接进 IM,用聊天窗口下指令、收结果 | 最高 |
| dsh-pocket | 手机扫码,直接看/操作电脑上那个 DSH 界面 | 次高 |
| dsh-computer-use | 让 agent 能真的动鼠标键盘,操作 Linux 桌面 | 偶尔,但关键时刻很顶用 |
三个仓库:
- dsh-im → https://github.com/xmanrui/dsh-im
- dsh-pocket → https://github.com/shaobeichen/dsh-pocket
- dsh-computer-use → https://github.com/asdasdsdsdasdasdasd/dsh-computer-use

▲ 三个插件串起来之后的完整链路。下面逐个拆开讲。
二、dsh-im:把 DSH 接进 IM(我最常用的一个)
IM 这条路最适合懒人——不用装客户端、不用记端口、不用配远程桌面,聊天窗口你已经天天在用了。
它支持什么
一个插件、一个设置入口,把本机 DSH 接到 IM 渠道上。目前内置 9 个渠道,外加 iMessage:
飞书、微信、钉钉、企业微信(含自建应用)、QQ、Slack、Telegram、Discord、WhatsApp
每个渠道都能接多个机器人,各机器人的连接状态、工作区、模型、会话绑定互相独立——这点很实用,等于一个人可以按用途分好几个入口。

▲ 设置 → IM机器人:一个页面管所有渠道,每张卡片独立配工作区、模型、Agent Preset。
为什么我选了飞书
不是随便挑的,飞书这条链路有几个别家没有的好处:
1. 飞书自带豆包工作,语音指令能一路转给 DSH
这是我最看重的一点。我在手机上跟豆包工作说话,豆包把语音转成文字,自动转发给 DSH 飞书 bot,DSH 的回复直接出现在同一个聊天窗口。中文语音识别质量很好——老特在 YT 节目里讲过这个用法,我自己用了确实不错。不想用豆包工作的话,手机上直接装豆包输入法也行,体验同样可以。我的体验是豆包输入法适合你让DSH快速执行短指令,而不是复杂任务的时候用,它识别语音又快又准,当你想给DSH复杂指令,需要多轮对话整理思路的时候,用豆包工作更好(短指令豆包工作也要思考一会儿,没法把他的思考等级调到最低)。
在手机上跟豆包工作多轮对话、远程操控远端服务器上的 DSH,整个流程是顺的:说话 → 转文字 → DSH 干活 → 结果回到聊天窗口。
豆包
DSH 自动转发说明(我自己在用的设置)
【自动转发】
你在豆包里发的消息,会自动转给 DSH,不用额外说"转发"。
DSH 的回复直接出现在当前聊天窗口。
【不转发的情况】
想跟豆包直接说话、不转给 DSH 时,开头说"豆包"或"先别转"。
例:"豆包,帮我总结一下刚才 DSH 的回复"
【自动等回复】
转发后豆包会每 10 秒查一次 DSH 有没有回复,最多等 3 分钟。
一有回复立刻摘给你;超过 3 分钟会提示"DSH 还在处理"。
2. 流式卡片,不把思考过程一股脑倒给你
这点明显比我自己写的壳强。插件对飞书 Bot 做了针对性的优化:思考过程、工具执行进度、回答是分层呈现在流式卡片里的,不是每来一个 token 就刷你一脸。手机上调参数、看进度都舒服。
3. 对表格和 Markdown 的支持很好
DSH 很爱输出表格,飞书这边渲染得住。这点对看结果很重要——一份对比结果过来,直接是张能读的表,而不是一坨竖线。
4. 文件双向
传进去:图片、PDF、文件都能带上,连「引用某条消息」的上下文一起交给 DSH。
传出来:DSH 生成的文件、截图、录屏,能作为渠道原生附件回传。我这边统计下来,这段时间里这个回传能力被用了 189 次。
5. 文件大小够用
飞书 IM bot 支持最大 30MB 的文件,比 Discord 免费版的 10MB 要好,mp4、图片、md、ZIP 这些都能传。
一个真实用例(比任何说明都直观)
9 月 6 日我在外面,手上只有手机,需要处理一份《智能路面识别 ASIL-B 提升可行性评估报告》。做法是:
- 把 PDF 直接拖进飞书 bot 的聊天窗口发出去;
- 引用同事标注的那条消息,让它「先讲概况,再详细分析」;
- 就着报告连着追问了好几轮——选项 A/B 到底差在哪、电动车刹车前段动能回收被切断导致的失重空落感、轮端过坎抱死趋势怎么提前识别……
全程在手机上完成,没有打开过电脑。后来这个主题还延伸做成了《ISO 26262 功能安全》科普视频。
这就是「IM 接入」真正的价值:不是把聊天框变好看,而是让一份真实的、有上下文的工作,能在你不在电脑前的时候继续推进。

另一种高频用法:甩个链接,让它去抄作业
除了处理文档,我在 IM 里干得最多的另一件事是——看到好东西,链接一甩。
最简的一次就是一条链接加两个字:
https://x.com/…/status/2098371224006951151
抄作业
有时候连多余的字都不用说,因为上下文里它知道要干什么。比如在飞书上刷到一条效果不错的视频,直接把链接发过去,后面跟一句要求:
https://x.com/…/status/2098352621535072651
你使用 comfyUI,参考 4 步 lora 声音修复版 V2 的 json,
新写一个 JSON,模型使用 minimax H3 ref2V INT8,做一个同样的视频。
把拼接好的成品推送到 DSH 飞书 bot。
这条指令拆开看,其实是一整条流水线:扒原帖里的提示词 → 照我自己机器上的工作流改写 JSON → 跑出一条视频 → 成品回传到聊天窗口。我要做的只是把链接贴进去。
抄作业的几种颗粒度
| 抄什么 | 怎么发 | DSH 干什么 |
|---|---|---|
| 一条推文的提示词 | 链接 +「抄作业」 | 读帖子、提取提示词、按我的工作流重跑一版 |
| 一整套工作流 | 推文链接 + GitHub 工作流链接 +「你抄一下这个作业」 | 下载依赖、跑通流程、出片 |
| 一个作者的整个作品集 | 作品页链接 +「抓取所有图的 prompt metadata」 | 翻页批量抓取、存成 MD、逐张复刻 |
| 一个现成的 skill / 插件 | GitHub 链接 +「你给我安装」 | 装好,然后给我跑示例 |
比如批量那一次:
使用 opencli,抓取并保存 noway163 的所有 Images 的 prompt all metadata,保存为 MD,要和网址关联。……我要你抓取他所有图的 prompt 的 metadata,让我可以抄他作业。
再往后就变成例行公事了——同一个作者的作品集,我会直接说「他的 Prompt 和 Metadata 你都给我存在本地,记得新建一个文件夹」,然后跟一句「定时任务也是一样的」。
为什么这种事特别适合放在 IM 里
因为**「看到好东西」这件事,发生在你刷手机的时候,不在电脑前。**
那条让你眼睛一亮的推文,出现在你通勤的地铁上、排队的间隙里。等三小时后你坐回电脑前,那个链接早就不知道沉到哪个 App 的哪条时间线里去了。
现在我只要顺手一甩,剩下的它自己去跑;跑完了成品还会自己回到这个聊天窗口——视频、PDF、打包好的 zip 都行。
把这 5 个视频发飞书 bot。
三、dsh-pocket:手机扫码,看到电脑上同一块屏幕
IM 适合「下指令、收结果」,但有时候你需要看着那个界面本身——比如它正在跑一个长任务,你想看它滚到哪里了;比如有个审批要点。
dsh-pocket 干的就是这个:装上后,手机扫个码,直接看到并操作电脑上的同一个 DSH 界面,实时同步。

▲ 手机上的界面就是电脑上的界面,流式输出实时同步。
几条通道,按场景切
- 局域网:同一 WiFi 扫码即开,自动识别本机 IP(WSL 环境会自动取 Windows 物理网卡 IP)。
- 公网:点「开启公网访问」走 cloudflared 隧道,4G 下也能访问。
- 公网固定域名:填 Cloudflare Tunnel Token + 自己的域名,走命名隧道,公网地址固定不变(不填就每次重启都换)。
我配的是第三条,买了一个阿里云的域名,让后照着AI教的配好Cloudflare named tunnel。最后按照dsh-pocket一步步设置,就能在手机上公网控制DSH了。

▲ 设置 → 手机访问,和「通用设置」「模型」同级。
四、dsh-computer-use:让 agent 真的动鼠标键盘
IM 和 Pocket 解决的是「怎么把指令送进去、把结果取出来」;computer-use 解决的是「agent 能不能操作那些没有 API 的东西」。
为什么专门挑了这个
市面上 computer-use 类的插件多数是 macOS 或 Windows 的,我这台是 Linux。这个插件的定位很明确:专门给 Linux X11 用,而且零重依赖——不需要 Node 原生模块、不需要 PowerShell、不需要无障碍框架,就 python3 + libX11 + libXtst + ImageMagick。
它提供 9 个工具:
| 工具 | 作用 |
|---|---|
computer_screenshot |
截图(全屏或指定区域),带缩放元数据 |
computer_move_mouse |
移动指针到原生像素坐标 |
computer_click |
移动并点击(可指定按键、连击) |
computer_drag |
拖拽 |
computer_scroll |
滚轮滚动 |
computer_type |
向当前焦点窗口输入文字 |
computer_key |
发送按键或组合键(enter / ctrl+s / alt+F4) |
computer_cursor |
读当前指针位置 |
computer_screen_info |
屏幕尺寸 + XTest 可用性 |
坐标是 X11 原生像素,截图会同时返回 scale 和区域偏移,所以缩放后的图上点选的坐标不会偏。每步输入动作之后还可以自动附一张新截图(observeAfterAction,默认开),模型能立刻确认上一步有没有生效。
我实测跑了一遍完整流程
「你用我装好的 computer use 这个 skill。去查找 NBA 官网的首页。一边翻看它,一边跳到哈登的新闻,然后点开,从头翻到尾。」
后面又追加了两条:
「整个过程你用屏幕录制把它录下来,之后发给我的 DSH 飞书机器人。」
「你录制的视频,只保留 1 分钟以后的东西,然后重新发到 DSH 飞书 bot。」
它是真的在动桌面。我把那次会话的工具调用拉出来还原了一遍,一共 47 次调用,桌面操作部分是这么走的:
computer_screenshot ← 先看一眼当前屏幕
computer_click ×2 → computer_key ×2 ← 点地址栏进去、清空原内容
computer_type ← 输入网址
computer_key ×2 → type → key ×2 ← 回车、进入站点
computer_screenshot ← 确认页面真的加载出来了
computer_click ← 点进哈登那条新闻
computer_scroll ×4 ← 往下翻
computer_click ×2 → key → scroll ×4 ← 继续翻,一直翻到底
后面录屏那段更完整。它先自己探测了本机的录屏工具链(ffmpeg / x11grab / import 这些在不在),确认可用之后直接起了个后台录制:
ffmpeg -f x11grab -video_size 2560x1440 -framerate 25 -i :1 \
-c:v libx264 -preset veryfast ... rec/nba-harden.mkv
翻完之后停录、转成 mp4、裁掉前 60 秒,最后把 NBA官网-哈登新闻-浏览录屏-1分钟后.mp4 发回了飞书 bot。手机上收到的就是这个视频文件。
整个过程我没在电脑上点过任何一下。
诚实评价
先说好的:在 Linux X11 上操作起来还比较流畅,点击、输入、滚动都稳,不飘。它的每一步动作都会回报「系统实际注册到的原生坐标」,加上动作后自动补截图,所以基本不会点偏。
再说实话:翻网页的速度是老年人手速,比不上 Codex 的 computer use(人家在浏览器场景做了专门优化)。它是「截图 → 判断 → 动作 → 再截图」一步步走的,页面元素多、要看清楚再点的时候会明显慢。而且网页下页有cookie弹窗和小广告的遮挡关键位置的时候,computer-use 理解要叉掉小弹窗+操纵鼠标比较慢。
但是——它够用。凡是「只能用界面、没有 API」的活儿,比如登录态维护、看一眼某个站点的页面、点开某个东西翻一遍,它都能干。而且因为它每一步都截图确认,反而不容易点错。
五、三个串起来是什么效果
单看每个插件都只是「一个入口」,串起来才有意思:
用嘴说一句话 → 飞书 bot 收到 → DSH 在服务器上干活 → 需要操作界面的时候调 computer-use 动鼠标 → 结果(表格 / 图片 / 录屏文件)直接回到手机聊天窗口。
人到哪儿,agent 跟到哪儿。上面那个 NBA 的例子,从头到尾我没打开过电脑。
六、13 个活跃日的实测数据
从 8 月 30 日到 9 月 13 日,我把本机 ~/.dsh/sessions 里的记录全量统计了一遍,数字比主观感受更有说服力:
| 指标 | 数值 |
|---|---|
| 会话总数 | 145 个(主会话 98 / 子代理 47) |
| 真实用户输入 | 998 条 |
| 工具调用总数 | 14,564 次 |
| 经 IM 渠道下达的指令 | 87 条 |
| 经 IM 回传的文件 | 189 次 |
computer_* 桌面操作 |
86 次 |
| 活跃天数 | 13 个(08-30 → 09-13 这 15 天里) |

▲ 每天的输入条数与会话数。09-06 是 IM 渠道的爆发点,09-12 是多 agent 编排那天。
其中 computer_ 类的拆分:截屏 14 次、按键 28 次、滚动 18 次、点击 16 次、输入 7 次。量和前面那个「翻网页」的手感是对得上的——确实是一步一步挪出来的。
七、小结
三个插件里,只用得起一个的话选 dsh-im——它把「随时随地能给 agent 下指令、还能收到成品文件」这件事做得最完整,配合飞书 + 豆包语音那条链路,基本就是给服务器上的 agent 配了一部专线电话。
要盯着看就加 dsh-pocket,它解决的是「我要看那块屏幕本身」的场景,配置一次、命名隧道固定域名之后就不用再管了。
要操作没有 API 的东西就加 dsh-computer-use,在 Linux X11 上它是目前最省事的选择,慢是真慢,但那些只能靠界面点的活儿,它真能替你干完。
最后,三个插件都是社区作者的作品,用得上就去给个 Star。
