Desktop control CLI for AI agents https://deskctl.dev
Find a file
2026-03-24 22:00:27 -04:00
assets Phase 3: screenshot annotation with bounding boxes and @wN labels 2026-03-24 21:28:10 -04:00
src Phase 6: utility commands, SKILL.md, AGENTS.md, README.md 2026-03-24 21:40:29 -04:00
.gitignore gitignore 2026-03-24 22:00:27 -04:00
AGENTS.md Phase 6: utility commands, SKILL.md, AGENTS.md, README.md 2026-03-24 21:40:29 -04:00
Cargo.lock Phase 5: window management via x11rb 2026-03-24 21:36:56 -04:00
Cargo.toml Phase 5: window management via x11rb 2026-03-24 21:36:56 -04:00
README.md Phase 6: utility commands, SKILL.md, AGENTS.md, README.md 2026-03-24 21:40:29 -04:00
SKILL.md Phase 6: utility commands, SKILL.md, AGENTS.md, README.md 2026-03-24 21:40:29 -04:00

desktop-ctl

Desktop control CLI for AI agents on Linux X11. A single installable binary that gives agents full desktop access: screenshots with window refs, mouse/keyboard input, and window management.

Inspired by agent-browser - but for the full desktop.

Install

cargo install desktop-ctl

System dependencies (Debian/Ubuntu):

sudo apt install libxcb-dev libxrandr-dev libclang-dev

Quick Start

# See the desktop
desktop-ctl snapshot

# Click a window
desktop-ctl click @w1

# Type text
desktop-ctl type "hello world"

# Focus by name
desktop-ctl focus "firefox"

Architecture

Client-daemon architecture over Unix sockets (NDJSON wire protocol). The daemon starts automatically on first command and keeps the X11 connection alive for fast repeated calls.

Agent -> desktop-ctl CLI (thin client) -> Unix socket -> desktop-ctl daemon -> X11

Requirements

  • Linux with X11 session
  • Rust 1.75+ (for building)

Wayland Support

Coming in v0.2. The trait-based backend design means adding Hyprland/Wayland support is a single trait implementation with zero refactoring of the core.

License

MIT OR Apache-2.0