deskctl
Original:🇺🇸 English
Translated
2 scripts
Non-interactive X11 desktop control for AI agents. Use when the task involves controlling a Linux desktop - clicking, typing, reading windows, waiting for UI state, or taking screenshots inside a sandbox or VM.
2installs
Sourceharivansh-afk/deskctl
Added on
NPX Install
npx skill4agent add harivansh-afk/deskctl deskctlTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →deskctl
Non-interactive desktop control CLI for Linux X11 agents.
All output follows the runtime contract defined in references/runtime-contract.md. Every command returns a stable JSON envelope when called with . Use whenever you need to parse output programmatically.
--json--jsonQuick start
bash
npm install -g deskctl
deskctl doctor
deskctl snapshot --annotateIf was installed through npm, refresh it later with:
deskctlbash
deskctl upgrade --yesAgent loop
Every desktop interaction follows: observe -> wait -> act -> verify.
bash
deskctl snapshot --annotate # observe
deskctl wait window --selector 'title=Chromium' --timeout 10 # wait
deskctl click 'title=Chromium' # act
deskctl snapshot # verifySee workflows/observe-act.sh for a reusable script. See workflows/poll-condition.sh for polling loops.
Selectors
bash
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 windowBare strings like do fuzzy matching but fail on ambiguity. Prefer explicit selectors.
chromiumReferences
- references/runtime-contract.md - output contract, stable fields, error kinds
- references/commands.md - all available commands
Workflows
- workflows/observe-act.sh - main observe-act loop
- workflows/poll-condition.sh - poll for a condition on screen