An AI generated image in a cyberpunk style of an AI using it's hands to reject me. The AI looks humanoid and is sitting in front of a computer.
An AI generated image of an AI using its hands to reject me. Very meta, I know

I gave the AI arms and legs — then it rejected me

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.

My reaction to the finding represented by the 'white guy blinking' meme.
My reaction to the finding

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.