qlinter deskcrew
GitHub crates.io

deskcrew 0.1.2 · Windows · MIT

Nobody touched the mouse.

Every coding agent gets its own cursor on your Windows desktop, works in the background, and costs very few tokens. You keep working, even in fullscreen.

Download for Windows
or with Rust
cargo install deskcrew
  • Claude Code
  • Cursor
  • Codex

Your cursor: untouched

The recording

The real thing, 11 seconds.

Three agents draw in Photon Studio, use Calculator and type a note at the same time. Calculator’s title and mode label were overlaid in English in the video.

Why it is cheap

A window is read once.

811

characters to know the result of every press of 1 + 2 = on Calculator

agent-desktop, reading after each press48,570
deskcrew811
  • One short line each

    Each control is one line, and refs stay valid, so nothing is read twice.

  • Only what changed

    Every action replies with what changed, so there is nothing to read again.

  • Many steps, one call

    click e1 e2 e3 and do run many steps at once.

  • Pictures stay files

    They are only sent if the agent opens them. An unchanged one is reported as unchanged.

What an agent sees
$ deskcrew see Calculator
w2 "Calculator" 37 controls, 1 off screen
e12 button "One"
...
$ deskcrew click e12
ok invoke
~ e4 "Display is 1"
Characters an agent has to read to see one window
WindowControlsCharacters readagent-desktop deskcrewTime
Test form42
10,138
1,047
191 ms74 ms
Character Map11
3,603
260
177 ms24 ms
Calculator37
9,350
689
175 ms25 ms
File Explorer121
39,595
3,375
296 ms62 ms

Measured on 2026-11-01 against agent-desktop 1.0.2 on throwaway windows at 150% scaling, using its snapshot -i --compact. These are characters, not tokens, and agent-desktop’s --skeleton mode reads less by leaving detail out.

How actions reach an app

Your cursor stays yours.

Agents act through Windows accessibility, window messages and a synthetic pen. Each reply names the route it took. deskcrew has no real-mouse route at all.

RouteUsed forYour cursorYour focus
invoke toggle select expand value range scrollthe app’s own accessibility actionsuntouchedsome apps take it for a moment, and it is handed straight back
command messageclassic controls and menus, plus browsers and Electron appsuntoucheduntouched in classic apps, and a Chromium window can take it for a moment
pendrag, draw and --real in apps that draw themselves, such as Paintuntouchedborrowed for the action
keyboardkey, type and set with --realuntouchedborrowed for the action
  • Nothing moves your cursor

    A control that only answers the real mouse is refused with a message, so an agent has to find another way.

  • Cursors can be covered

    They sit directly above the window they work on, not on top of everything. Put another window over that app and it covers the cursor and the effect too.

  • Focus is a last resort

    Every action tries a background route first. Only --real, down, notifications and launch --front take focus on purpose.

Anything that borrows focus waits for a pause in your own typing, is one agent at a time, and gives focus back afterwards.

One shortcut stops every agent.

Reading still works, and work resumes with deskcrew resume. Shortcuts such as Alt+F4 and Win+R are refused without --force.

Press it now, or click the keys. It stops the cursors on this page.

Works with your agents

One cursor each.

Each coding agent is recognised and gets its own name and colour. It is a single command, so any agent that can run a shell command on this computer can use it. There is no MCP server and no tool schema loaded into every conversation.

Point at one to borrow its cursor. Click to press.

3.5–3.9 s
three agents at once, each typing, pressing and drawing in its own visible Edge window
~3 s
one agent alone
~100 ms
focus away from the person’s window each round, in total

Tested on 2026-11-01 over three rounds with separate browser profiles. Agents running in the cloud, or in a sandbox without access to your desktop, cannot reach it.

Get it

Start with the fake crew.

  1. Install

    Use the setup, or build it with Rust. The setup can also do step 3 for you.

    cargo install deskcrew
  2. Watch the demo

    It moves three pretend agents around the screen and clicks nothing.

    deskcrew demo --seconds 12
  3. Give it to your agents

    Puts deskcrew on PATH and gives the skill to each agent it finds.

    deskcrew setup
For any other agent, add this line to its rules
To operate Windows apps on this computer, run the deskcrew command. Start with: deskcrew help
Download for Windows

Setup · 0.1.2 · 2.4 MB · Windows x64

The installer isn’t code-signed yet, so Windows may show “Windows protected your PC”. Click More info, then Run anyway.

SHA-256deskcrew-setup-0.1.2.exe
035bd87d7cb9e075d8ba02a48ba156e78cd671e30dcc8e967cc4666382efa758

What it can’t do yet

  • Windows only. macOS and Linux are not written.
  • Tested on one monitor at 150% scaling.
  • Apps running as administrator can be read but not driven, unless deskcrew also runs as administrator.
  • Agents sharing one window take turns. Different windows run at the same time.
  • Classic popup menus and some other classic controls only answer the real mouse. deskcrew refuses those rather than touch your cursor.
  • A cursor working in a covered window stays hidden until that window shows, even though the work carries on.
  • Pictures are saved in %LOCALAPPDATA%\deskcrew\shots and can show private content.
All limits in the README

agent-desktop inspired this project and reaches further. Pick it if you need macOS or Linux, or want it as a library. Pick deskcrew on Windows if you want several agents on screen for fewer tokens.