给 AI 一张 Windows 桌面,把你的桌面留给自己。
A separate Windows workspace for AI agents.
使用场景 · 功能亮点 · 快速开始 · MCP 接入 · 兼容性
BackDesk 让 AI 通过 MCP 在单独的 Windows 子会话(Child Session) 中操作应用。你继续使用主桌面,需要时打开本机监视器查看进度、接管操作,再交还给 AI。
后台工作,随时可见;需要你时,随时接管。
Windows x64 · 当前版本 0.1.11(实验版) · AGPL-3.0-only
让 AI 操作电脑,常常意味着你要暂时把电脑让出来:应用窗口来回切换,鼠标和键盘被占用,想插手处理一步,又担心与 AI 的操作撞在一起。另起一个 Windows 会话后,登录、自启动软件和输入法又会增加准备工作。
BackDesk 把这些环节连起来:按需启动子桌面,准备运行环境,通过 MCP 交给 AI 使用。 你可以随时查看、接管,也可以把应用现场保留到下一次连接。
你正在写代码或处理消息,还有一项需要在 Windows 应用中反复录入信息的任务。你想把重复步骤交给 AI,手头的工作也能继续。
给已接入 BackDesk 的 AI 客户端布置任务,桌面工具在单独的子会话中执行。AI 的应用窗口与操作留在子桌面,你在主桌面继续工作,需要时打开监视器查看进度。
任务进行到需要你登录、确认信息或手动处理弹窗的一步。你希望处理好当前页面,就让 AI 接着做。
打开监视器,点击「接管」完成操作,再点击「交还」。人工接管期间,BackDesk 拒绝 AI 的桌面工具调用;交还后,AI 可以重新观察当前画面,从同一份应用现场继续任务。
AI 客户端需要重启或重连,子桌面里的工作还没结束。你希望连接恢复后,从当前进度接着做。
BackDesk 在 MCP 断开时保留宿主与子桌面,已打开的应用继续保留。重新连接后,让 AI 使用新的工具会话并重新观察窗口,就可以从当前应用现场继续操作。
按需打开监视器,以只读模式查看子桌面和运行状态。窗口缩放时保持画面比例,也可开启等比放大,让较小的桌面更容易看清;显示缩放保持子桌面的原有分辨率。
监视器关闭或最小化后回到只读,后台宿主与桌面继续运行。画面放大默认关闭,记住上次选择;系统不支持时,入口会显示为不可用。
将子会话登录、Cua Driver 启动、首帧检查和输入准备串成一次初始化流程,准备完成后再报告就绪。
连接 MCP 和发现工具时保持轻量。首次实际调用桌面工具,或显式调用 backdesk_start 时,才会尝试建立或复用受管理的子桌面;监视器可以随后按需打开。
新建子桌面时,默认尽量跳过 Explorer 的常规自启动程序,减少登录时额外打开的软件。需要的应用仍可主动启动,已有桌面在复用时保留现场。
初始化时优先选择当前语言下已启用的 Windows 系统输入法或键盘布局,帮助减少输入环境差异带来的干扰。已有合适配置时保留原选择,准备结果可通过状态查看,也支持手动重试。
通过「接管 / 交还」切换控制权。接管期间拒绝 AI 的桌面工具调用,交还后 AI 可重新观察并继续;桌面工具操作进行中时,接管入口暂不可用,避免同时操作。
提供 stdio MCP 服务,把桌面工具接入支持该协议的 AI 客户端。内置配置界面可复制 Codex TOML 或通用 JSON,应用观察、截图和输入等能力由固定版本的 Cua Driver 提供。
MCP 连接与子桌面的生命周期分别管理。客户端断开时释放该连接的代理与操作权,应用继续留在子桌面中;明确选择「结束」时,才注销受管理子桌面并关闭其中的应用。
当前尚未发布 GitHub Release,可先从源码构建生成便携包。完整包包含 .NET 运行时和固定版本的 Cua Driver,无需另外安装运行时。请保留 driver/ 和其他随附文件。
首次使用前,在便携包目录下以管理员身份打开 PowerShell,运行:
.\BackDesk.exe enable | Out-Host如果提示需要重新登录,请保存工作,完整注销 Windows 后再登录。锁屏或重启 AI 客户端不能替代注销。
双击 BackDesk.exe 打开监视器,在右上角的「MCP 配置」中选择格式并复制到客户端。也可以在 PowerShell 中生成配置:
# Codex TOML
.\BackDesk.exe config | Out-Host
# 通用 MCP JSON
.\BackDesk.exe config --json | Out-Host配置生效后,可以先给 AI 一个简单任务:
请通过 BackDesk 启动子桌面,打开记事本,输入一段测试文字,并截图确认结果。
需要查看进度时打开监视器,或让 AI 调用 backdesk_show。需要自己操作时,点击「接管」,处理完再「交还」。
若 Windows 无法自动登录,请在监视器内输入当前 Windows 账户的账户密码;PIN 不适用于该密码字段。登录与排障中说明了记住密码和重试方式。
| 操作 | 行为 |
|---|---|
查看状态 / backdesk_status |
读取状态,不启动宿主或子桌面 |
启动 / backdesk_start |
建立或复用受管理的子桌面 |
打开监视器 / backdesk_show |
打开或显示监视器,不创建子桌面 |
| 接管 / 交还 | 切换只读观看与人工输入;接管时拒绝 AI 的桌面工具调用 |
| 关闭或最小化监视器 | 回到只读,后台宿主和子桌面继续运行 |
| MCP 断开 | 释放该连接的代理与操作权,保留宿主和子桌面 |
结束 / backdesk_stop |
注销受管理子桌面,关闭其中的应用 |
托盘「结束桌面并退出」 / quit |
注销子桌面并退出宿主 |
结束桌面前请保存工作。 注销会丢失未保存的应用状态,保存到磁盘的文件仍保留。手动结束后,需显式调用 backdesk_start 或点击「启动」再次开始;当前不自动按空闲时间注销。
MCP 重连后,请使用新的 Cua 工具会话,重新观察窗口并刷新控件引用。旧控件索引与旧会话标签属于原连接,不能作为恢复凭证。
常用命令:
.\BackDesk.exe status | Out-Host
.\BackDesk.exe start | Out-Host
.\BackDesk.exe stop | Out-Host
.\BackDesk.exe quit | Out-Host
.\BackDesk.exe doctor | Out-Host
.\BackDesk.exe prepare-input | Out-HostBackDesk 关闭系统原生凭据弹窗。自动登录不可用时,在监视器内使用账户密码登录;后台请求不会主动弹出登录窗口,也不会在失败后循环尝试密码。
勾选「记住密码并自动登录」后,密码会在子桌面登录成功后由 Windows 凭据管理器保存在当前用户下,可在设置中「忘记密码」。不勾选时只用于本次登录。密码不会进入 MCP 请求、命令行、普通配置或日志。
登录后最多等待 15 秒取得首次画面。组件或画面暂不可用时,保留已完成的登录,可通过「启动」重试。监视器提供诊断入口,也可运行 doctor 查看状态与日志位置。
诊断和状态文件位于 %LOCALAPPDATA%\BackDesk\,包含按进程记录的日志和最近一次启动失败的阶段。
以下选项默认开启,可在当前环境的 settings.json 中按需关闭,并在下一次相应初始化时生效。当前环境目录可通过诊断中的日志路径找到。
| 选项 | 默认行为 | 关闭方式 |
|---|---|---|
skipStartupApps |
新建子桌面时,尽量跳过 Explorer 的常规自启动程序 | 设为 false,下次新建子桌面时生效 |
preferSystemInputMethod |
初始化时优先选择同语言、已启用的 Windows 系统输入法或键盘布局 | 设为 false,下次初始化时生效 |
自启动优化的作用范围
这是依赖 Windows 内部行为的实验性兼容处理,不能保证覆盖所有软件。它只创建目标子会话的临时状态标记,正常结束时清理本次创建且仍为空的标记,已有状态保持原样。进程被强制终止时,可能留下临时会话状态,直到对应用户注册表卸载。复用已有桌面时不补做自启动清理。
输入法准备与手动重试
输入法准备发生在首帧之后、报告就绪之前,只作用于子桌面的当前输入状态。它不会安装或启用输入法,也不修改账户的默认输入法配置。没有合适候选或切换未确认时,会保持或尝试恢复原输入法。
MCP 状态的 inputMethod 字段报告准备结果,无法确认恢复时会明确标记。相同子桌面的重连不会重复切换。可以在子桌面已就绪、处于只读模式时运行 prepare-input 重试,命令返回 JSON 结果,不会新建或注销桌面。
跨语言真实环境和新登录时的输入法回退仍需更多实测,切换输入法不能保证解决所有输入兼容问题。
当前为 0.1.11 实验版,聚焦单个桌面的连接与生命周期。
- 已验证环境:Windows 11 Pro(build 26300)。Windows 10 为兼容目标,尚未实测;不同 Windows 登录方式与账户组合仍需更多验证。
- 已验证流程:子桌面截图、临时测试窗口输入与点击、重复启动复用、MCP 断开重连保留现场,以及结束后注销和进程清理。输入样例中,主桌面的鼠标与前台窗口保持不变。
- 主会话锁屏:当前不支持锁屏期间的通用桌面交互,执行 GUI 任务时请保持主 Windows 会话已解锁。隐藏监视器与锁屏是不同状态;锁屏后仍能截图或完成个别控件操作,不代表通用键鼠输入可用。
- 并发范围:同一登录环境只管理一个子桌面,同时只接受一个桌面操作,冲突直接返回
busy。 - 隔离边界:子桌面共享 Windows 账号和系统配置,不提供虚拟机级隔离。
需要 Windows x64 和 .NET 10 SDK:
git clone https://github.com/sealpp/BackDesk.git
cd BackDesk
dotnet build BackDesk.slnx
dotnet run --project tests/BackDesk.Checks
.\scripts\package.ps1打包脚本校验锁定的 Cua 压缩包和可执行文件,生成包含运行时的目录、ZIP 和 SHA-256 文件。默认目录为 artifacts/BackDesk-0.1.11-win-x64/;输出目录必须尚不存在,可用 -OutputDirectory 指定新目录。
下载受限时,可仅为组件下载指定代理:
.\scripts\package.ps1 -ProxyUrl http://127.0.0.1:7890 -OutputDirectory artifacts\BackDesk-local欢迎通过 Issues 反馈使用场景、兼容性问题和功能建议。
感谢 cua-child-mcp 项目及其作者 LexaTang 的开源贡献与分享。
依赖与上游声明见 NOTICE 和 third-party/;Cua 固定版本见 component lock。
Created by seal++.
Licensed under GNU AGPL v3.0 only.