mcpField
D
deskctl

deskctl

github.com/harivansh-afkAgent 工作流1762 次安装1 周前更新
代码仓库

关于 deskctl

deskctl 是供 Linux X11 Agent 使用的非交互式桌面控制命令行工具。它采用观察、等待、操作、验证的循环,并提供稳定的 JSON 输出以供程序处理。

主要功能

  1. 01控制 Linux X11 桌面
  2. 02观察并标注屏幕快照
  3. 03等待窗口条件满足
  4. 04按标题、类名或 ID 选择窗口
  5. 05命令提供稳定的 JSON 输出

适用场景

  1. 01自动化 Agent 的桌面交互
  2. 02操作前等待指定窗口出现
  3. 03以程序方式解析命令结果

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/harivansh-afk/deskctl --skill deskctl

安装后在 Claude Code 中输入/deskctl确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
commands.md
runtime-contract.md
workflows/
observe-act.sh
poll-condition.sh

详细介绍

deskctl

适用于 Linux X11 Agent 的非交互式桌面控制 CLI。

所有输出均遵循 references/runtime-contract.md 中定义的运行时契约。使用 --json 调用时,每条命令都会返回稳定的 JSON 信封。需要以编程方式解析输出时,请使用 --json。

快速开始

npm install -g deskctl
deskctl doctor
deskctl snapshot --annotate

如果通过 npm 安装了 deskctl,之后可使用以下命令更新:

deskctl upgrade --yes

Agent 工作循环

每次桌面交互都遵循:观察 -> 等待 -> 操作 -> 验证。

deskctl snapshot --annotate        # observe
deskctl wait window --selector 'title=Chromium' --timeout 10  # wait
deskctl click 'title=Chromium'      # act
deskctl snapshot                   # verify

可复用的脚本请参见 workflows/observe-act.sh。轮询循环请参见 workflows/poll-condition.sh。

选择器

ref=w1          # snapshot ref (short-lived)
id=win1         # stable window ID (session-scoped)
title=Chromium   # match by title
class=chromium   # match by WM class
focused         # currently focused window

像 chromium 这样的裸字符串会进行模糊匹配,但遇到歧义时会失败。建议使用显式选择器。

参考资料

工作流

评论

支持 Markdown