Desktop control CLI for AI agents https://deskctl.dev
Find a file
Harivansh Rathi d0220100ad merge main into rename, resolve conflicts in favor of deskctl rename
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 08:43:26 -04:00
.github/workflows rename from deskctl-cli to deskctl 2026-03-26 08:35:21 -04:00
assets Phase 3: screenshot annotation with bounding boxes and @wN labels 2026-03-24 21:28:10 -04:00
docker docker-compose build 2026-03-25 12:40:14 -04:00
docs align docs and contract 2026-03-26 08:37:52 -04:00
npm/deskctl rename from deskctl-cli to deskctl 2026-03-26 08:35:21 -04:00
site merge main into rename, resolve conflicts in favor of deskctl rename 2026-03-26 08:43:26 -04:00
skills/deskctl align docs and contract 2026-03-26 08:37:52 -04:00
src runtime contract enforcement (#6) 2026-03-25 22:00:16 -04:00
tests grouped runtime reads and waits selector modes (#5) 2026-03-25 21:11:30 -04:00
.dockerignore docker-compose build 2026-03-25 12:40:14 -04:00
.gitignore rename from deskctl-cli to deskctl 2026-03-26 08:35:21 -04:00
.pre-commit-config.yaml tests and tooling (#4) 2026-03-25 19:29:59 -04:00
AGENTS.md Phase 6: utility commands, SKILL.md, AGENTS.md, README.md 2026-03-24 21:40:29 -04:00
Cargo.lock release: v0.1.6 [skip ci] 2026-03-26 03:25:14 +00:00
Cargo.toml release: v0.1.6 [skip ci] 2026-03-26 03:25:14 +00:00
CONTRIBUTING.md rename from deskctl-cli to deskctl 2026-03-26 08:35:21 -04:00
flake.lock nix (#7) 2026-03-25 23:18:28 -04:00
flake.nix nix (#7) 2026-03-25 23:18:28 -04:00
LICENCE licence 2026-03-25 19:34:36 -04:00
Makefile rename from deskctl-cli to deskctl 2026-03-26 08:35:21 -04:00
README.md merge main into rename, resolve conflicts in favor of deskctl rename 2026-03-26 08:43:26 -04:00

deskctl

npm release runtime skill

Non-interactive desktop control for AI agents on Linux X11.

Install

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

One-shot execution also works:

npx deskctl --help

deskctl installs the command by downloading the matching GitHub Release asset for the supported runtime target.

Installable skill

npx skills add harivansh-afk/deskctl -s deskctl

The installable skill lives in skills/deskctl and is built around the same observe -> wait -> act -> verify loop as the CLI.

Quick example

deskctl doctor
deskctl snapshot --annotate
deskctl wait window --selector 'title=Firefox' --timeout 10
deskctl focus 'title=Firefox'
deskctl type "hello world"

Docs

Other install paths

Nix:

nix run github:harivansh-afk/deskctl -- --help
nix profile install github:harivansh-afk/deskctl

Source build:

cargo build

Support boundary

deskctl currently supports Linux X11. Use --json for stable machine parsing, use window_id for programmatic targeting inside a live session, and use deskctl doctor first when the runtime looks broken.