前言¶
在 DSH 里做桌面自动化时,常见做法是让 Agent 调外部脚本或远程桌面 API,模型上下文里往往只有文字描述,缺少与真实 UI 同步的视觉反馈。若还要点按、输入、切窗口,往往又得单独拼一层桥接,安全和审批也很难统一。
下面介绍的 dsh-linux-desktop-use(维护者 sorchk)把截图、鼠标键盘、窗口与应用管理、可选的无障碍树读取等能力注册进 ctx.tools,模型可在一次对话里按「先观察、再操作」的节奏驱动本机 Linux 图形会话。插件当前版本为 1.9.0(见仓库 package.json),在 GitHub 上约有 1 个 star。社区目录页:skillhub.cn/plugins/sorchk/dsh-linux-desktop-use;源码与完整说明:github.com/sorchk/dsh-linux-desktop-use。
DSH 生态的理念是「一切皆插件」;SkillHub 等目录站由社区维护,与 DeepSeek / 幻方无官方从属关系。安装任何插件前,建议在目录页或 GitHub 查看许可证、PERMISSIONS.md 与源码,并牢记:插件以当前 DSH 宿主进程的权限在真实桌面上执行,误操作后果不可撤销。
这是什么¶
一句话定位:用 DeepSeek Harness 直接操控本机 Linux 桌面的 DSH 插件——在原生 X11 + XTEST 会话下工作(XFCE、GNOME、KDE 等;README 写明 Wayland 原生会话不适用)。它将一组桌面工具暴露给模型,并自带 Web 客户端半,用于依赖体检与配置编辑。
详情页的 docs/detail.md 为精简版;功能、风险与依赖的完整说明以 GitHub README 为准。
核心功能¶
注册给模型的工具¶
插件把下列能力挂到 DSH 工具列表(节选,类型见 README 表格):
| 类别 | 代表工具 | 作用 |
|---|---|---|
| 观察 | linux_screenshot、linux_windows、linux_desktop_status |
整屏/窗口/区域截图进上下文;列窗口与焦点;读屏参、指针、审批模式等 |
| 指针与输入 | linux_move_mouse、linux_click、linux_drag、linux_scroll、linux_type、linux_key |
移动、点击、拖拽、滚动、文本与组合键 |
| 窗口与应用 | linux_activate_window、linux_set_window_frame、linux_apps、linux_launch_app、linux_activate_app |
激活/摆放窗口;读 .desktop 与运行实例;启动应用 |
| 环境 | linux_check_env、linux_displays |
依赖与 X11 能力体检;枚举显示器 |
| 校验 | linux_verify_state |
断言标题、焦点、窗口数,并比对画面是否变化 |
| 无障碍(可选) | linux_app_state、linux_set_value |
读 AT-SPI 控件树;直接给可编辑控件写值(v1.7.0 起) |
写操作前先观察:任意写工具执行前需要一次新鲜的 linux_screenshot(默认快照 TTL 30 秒);写完成后快照作废,下一次写需重新截图。坐标可指定 space=screen(屏幕绝对像素)或 space=local(按截图局部像素换算)。
v1.6.0 起增强应用与窗口相关工具;v1.7.0 起在装好 AT-SPI 依赖且目标应用重启后,可用控件 box 坐标配合 linux_click,并用 linux_app_state 直读文本,无需 OCR。
详情页:体检与配置¶
客户端半在 DSH「插件 → Linux 电脑控制」详情页提供:
- 检查依赖:与模型侧
linux_check_env共用同一实现,逐条报告辅助程序、系统包、XTEST/EWMH、DISPLAY/XAUTHORITY、配置状态等。 - 一键安装缺失依赖(v1.8.0 起):仅安装依赖目录
lib/dependencies.js登记的包,需二次确认;无免密提权时不尝试输密码,而是给出可手动执行的命令。 - 桌面控制依赖与配置:可编辑并保存
DISPLAY、XAUTHORITY、审批策略、观察快照有效期、允许的窗口标题、命令超时等。
宿主暴露同源 HTTP 路由:/dsh-linux-desktop-use/check、/install、/config(GET/POST 语义见 README)。
安装与启用¶
运行环境¶
- Node.js
>=20(package.json→engines)。 - 图形会话:原生 X11 且具备 XTEST;README 建议在虚拟机、Docker + Xvfb、KasmVNC/Xvnc 独立会话等沙盒中试用。
系统依赖¶
README 给出的基础安装示例:
sudo apt-get install -y xdotool scrot wmctrl ffmpeg
启用无障碍树相关工具时,可额外安装:
sudo apt-get install -y at-spi2-core libatk-adaptor python3-gi gir1.2-atspi-2.0
安装 AT-SPI 后需重启目标 GUI 应用才会注册到无障碍总线;并需重新加载宿主(README 写明重装 bundle 以刷新模块)后模型侧才会看到新工具。缺项时可用详情页「检查依赖」或 linux_check_env 查看报告及推荐的 apt-get install 命令。
已抓取资料中未给出 DSH 本体添加该插件的固定 CLI 句式;请从 SkillHub 目录页 或仓库 README 跟随当前 DSH 版本的插件安装方式。改代码或换包名后需按 README / VERIFICATION.md 说明让宿主重新 reconcile 配置,否则磁盘改动不会自动生效。
典型用法¶
下面是一套与插件设计一致的、可复现的操作顺序(由 README 中的工具约束归纳,非虚构案例):
- 体检:对话中调用
linux_check_env,或在详情页点「检查依赖」,确认xdotool、DISPLAY、XTEST 等就绪。 - 观察:调用
linux_screenshot(必要时linux_windows/linux_app_state辅助定位)。 - 只读确认:用
linux_desktop_status、linux_verify_state核对焦点与画面是否与预期一致。 - 写操作:在快照未过期且通过审批时,依次使用
linux_click、linux_type、linux_key等;多窗口时先用linux_activate_window或linux_activate_app。 - 再次观察:每次写操作后重新截图,再进行下一步写操作。
若使用 linux_launch_app 启动 Terminal=true 的 .desktop 条目,插件会按环境选择 xfce4-terminal、gnome-terminal 或 xterm 等包装命令。
安全机制与使用注意¶
README 将风险等级等同于「让可能犯错的操作者坐在你的电脑前」。内置机制包括:观察门禁与快照 TTL(lib/observe.js)、危险语义分级审批(lib/guard.js,approvalMode 可为 all / dangerous / off)、截图坐标语义统一、以及 package.json → dsh.permissions 等可审计声明。这些只能降低误触概率,不能消除误删文件、覆盖文档、终端破坏性命令、凭据随截图进上下文、误发消息或误支付等后果。
建议:在隔离桌面中使用;沙盒内不放真实账号与生产数据;默认保持 approvalMode = all;用 allowedWindows 收窄可操作的窗口标题;必要时缩短观察 TTL。真实办公桌面若必须使用,优先只读工具,写操作逐次人工批准。
结尾¶
dsh-linux-desktop-use 把 Linux X11 桌面的看、点、输、窗、应用以及可选的无障碍树,收敛成 DSH 内一组可审批的工具,并用手势一致的体检与配置面板降低接入成本。完整工具表、权限说明与沙盒建议见 GitHub README;安装与发现入口见 SkillHub 插件页 与 sorchk/dsh-linux-desktop-use。