
Very meta, I know
In October 2024, Anthropic released “Claude
Computer Use”. It allows an AI to control a computer and for example copy data from a
browser to a spreadsheet. It’s a really cool feature and since I am the maintainer of a library
that allows controlling a computer, I was curious to find out how they do it and learn from
them. I didn’t have time to look into it until this spring. Anthropic is one of the leaders in
AI and was valued
at a cool 60+ billion dollars in March 2025, so I was surprised to learn that
Anthropic is actually using my library enigo for
it.

You can confirm that enigo is used in Claude Desktop for macOS by running the following two
commands:
$ 7z x Claude.dmg
$ perl -nle 'print $& while /.{0,67}enigo.{0,30}/g' Claude/Claude.app/Contents/Resources/app.asar.unpacked/node_modules/claude-native/claude-native-binding.node
/Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/enigo-0.2.1/src/macos/macos_impl.rs
/Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/enigo-0.2.1/src/macos/macos_impl.rs
It is also used in Claude Desktop for Windows. You can confirm it by running:
$ 7z x Claude-Setup-x64.exe
$ 7z x AnthropicClaude-0.11.6-full.nupkg
$ perl -nle 'print $& while /.{0,75}enigo.{0,26}/g' Claude-Setup-x64/AnthropicClaude-0.11.6-full/lib/net45/resources/app.asar.unpacked/node_modules/claude-native/claude-native-binding.node
C:\Users\runneradmin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\enigo-0.2.1\src\win\win_impl.rs
In the output, you can see that on both platforms enigo version
0.2.1 is used (you might have to scroll right to see it).
I am very proud that enigo matured enough for a company with a seemingly infinite development
budget to choose it for their commercial project. Input simulation is surprisingly difficult due
to little documentation
and a lot of OS-specific quirks and warrants its own blog post. In my (admittedly not
completely
objective) opinion enigo is a great
choice for the job. As far as I know, it is the only library that works on Windows, macOS,
*BSD and Linux (Wayland, X11 and libei) without root. It is written in Rust and thus is mostly
memory safe
while being very fast. It is the most popular choice on crates.io
with almost 300,000 downloads and 1,200+ stars on Github. And yet it makes me a little nervous
knowing that my hobby project is used by Claude Desktop and deployed to thousands of devices.
If you’re not familiar with open-source software, you might wonder how much money I made from
them — and how many Ferraris I’m going to buy. If you are
familiar with
open-source software, it will come as no surprise to you that I am not earning any money from
it.
enigo is published under the MIT
license. That means everyone can use it free of charge. The only thing I
get in return is more stars on GitHub and higher download counts on crates.io (the nerd
equivalent of street creds).
Interestingly, although Claude Desktop is an Electron app, it’s only available on
macOS and Windows. The benefit of Electron applications is that they work on all platforms.
Other people found ways to run Claude Desktop on Linux as well (1, 2, 3). They had to replace the
code that uses enigo with stubs. This is very curious, because enigo is also cross-platform.
Through a friend of a friend, I found out that Anthropic had an open position in the team
implementing the secret, unreleased feature of Claude Desktop using enigo. I wrote a cover
letter and sent out my application. An automatic reply informed me that they might take some
time to respond and that they only notify applicants if they made it to the next round. After a
few weeks without an answer, I had assumed they chose other applicants. I already forgot about
the
application when I received an e-mail from Anthropic. I excitedly opened it. Unfortunately they
thanked me for my application but said the team doesn’t have the capacity to review additional
applications.
I would have loved working at Anthropic, implementing a feature similar to Computer Use and
bringing Claude Desktop to Linux. I thought I had a pretty good shot to get the position,
considering some of my code is already
part of their software. Through the years I accumulated a lot of knowledge in the niche that is
input simulation that I would have brought to the table. Working full-time on enigo for a few
months could lift the project to a whole different level of polish and professionalism and would
have helped Anthropic to be able to focus on their AI models and not input quirks.
Overall I am overjoyed enigo is used in Claude Desktop and I tell everyone who listens to me
about it :P.
It’s so cool to think that I metaphorically created the arms and legs for Claude AI, but I can’t
help but wonder if the rejection letter was written by a human or Claude AI. Did the very AI I
helped equip with new capabilities just reject my application? On the bright side, I should now
be
safe
from Roko’s Basilisk.