2 points par GN⁺ 2025-08-07 | 1 commentaires | Partager sur WhatsApp
  • J'ai découvert que le logiciel Claude Desktop d'Anthropic utilise ma bibliothèque open source de simulation d'entrée enigo
  • enigo fonctionne sous Windows, macOS, BSD et Linux et est utilisé de manière essentielle dans Claude Desktop, basé sur Electron
  • J'ai envoyé une candidature à Anthropic, mais j'ai reçu un refus en raison d'un manque de personnel dans l'équipe
  • enigo est sous licence MIT, donc disponible gratuitement pour tous ; je n'en retire donc aucun bénéfice financier direct
  • J'exprime à la fois de la frustration et de la fierté d'avoir donné des "bras et des jambes" à Claude, tout en étant refusé lors du processus de recrutement

Introduction

En octobre 2024, Anthropic a présenté la fonctionnalité "Claude Computer Use". Cette fonctionnalité permet à l'IA de contrôler un ordinateur, par exemple pour copier des données depuis un navigateur web vers un tableur. En tant que mainteneur d'une bibliothèque de contrôle d'ordinateur, j'ai été intéressé par l'approche d'Anthropic, et j'ai voulu l'analyser et apprendre comment elle fonctionne. En mars 2025, Anthropic est une entreprise leader du secteur de l'IA, valorisée à plus de 60 milliards de dollars.

La bibliothèque enigo et Claude Desktop

J'ai découvert qu'Anthropic utilisait la bibliothèque enigo que j'ai développée dans la version desktop de Claude. La présence d'enigo dans Claude Desktop sur MacOS peut être vérifiée avec la commande suivante :

$ 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

Exemple de sortie :

  • /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/enigo-0.2.1/src/macos/macos_impl.rs
  • La même méthode permet aussi de vérifier l'utilisation d'enigo dans la version Windows de Claude

enigo se caractérise par :

  • prise en charge de multiples plateformes : Windows, macOS, BSD, Linux (wayland, X11, libei)
  • écrit en Rust, offrant sûreté mémoire et performances élevées
  • pas besoin de privilèges root
  • plus de 300 000 téléchargements sur crates.io et plus de 1200 stars sur GitHub
  • la simulation d'entrée est un domaine plutôt complexe en raison des différences de gestion des entrées entre OS et d'une documentation limitée
  • pratiquement la seule bibliothèque Rust à implémenter une simulation d'entrée multiplateforme

Open source et modèle de rémunération

enigo est distribué sous licence MIT et peut être utilisé gratuitement par tous. Aucune rémunération directe n'est perçue ni par les entreprises, ni par les utilisateurs. En échange, on obtient uniquement une reconnaissance communautaire via le nombre d'étoiles GitHub et de téléchargements crates.io.

Electron, et l'ironie de l'absence de Linux

Bien que Claude Desktop soit basé sur Electron, il ne supporte officiellement que macOS et Windows. Malgré que l'atout d'Electron soit justement le support multiplateforme, il n'existe pas de version Linux. La communauté d'utilisateurs a tenté un portage vers Linux en utilisant des stubs personnalisés (par exemple : claude-desktop-linux-flake, etc.)
Il est d'ailleurs amusant de constater qu'une approche de contournement a été nécessaire, alors qu'enigo supporte bien Linux.

Candidature chez Anthropic, puis refus

J'ai appris par l'intermédiaire d'une connaissance qu'Anthropic recrutait un poste de développement de fonctionnalités inédites au sein de l'équipe Claude Desktop. Étant donné que cette équipe utilise enigo de manière centrale, j'ai jugé que c'était une opportunité adaptée et j'ai postulé.

  • Le courriel de réponse automatique indiquait que l'équipe n'avait pas les ressources suffisantes pour examiner des candidatures supplémentaires
  • Après quelques semaines, j'ai reçu un e-mail de refus, mettant fin au processus de recrutement

En cas de succès :

  • Je voulais faire évoluer une fonctionnalité proche de Computer Use de Claude Desktop
  • Je disposais d'une expertise qui aurait pu contribuer au portage de Claude Desktop vers Linux
  • Je pouvais aider de manière significative à améliorer enigo et à augmenter la qualité du projet

Conclusion et impressions

enigo m'apporte une vraie fierté d'avoir été adopté par Anthropic Claude Desktop. En même temps, j'accepte avec humour d'avoir été refusé par la même entreprise dont on utilise mes 'bras et mes jambes'. Pour finir, je plaisante aussi en disant que, du moins pour moi, cela réduit les risques liés au Roko's Basilisk.

1 commentaires

 
GN⁺ 2025-08-07
Avis de Hacker News
  • Auteur de blog ici, merci pour la recommandation. Si vous avez des questions, n'hésitez pas à me les poser, et j'aimerais aussi avoir vos retours sur cet article. C'est l'un de mes tout premiers billets, donc j'aimerais améliorer ma manière d'écrire.
    • Je pense qu'il vaut mieux passer la licence à l'AGPL ou à une “licence personnalisée (à contacter pour les conditions de paiement)”, et il serait bon d'inclure également le raisonnement. Sans une licence copyleft “virale” comme la GPL, une entreprise peut tirer avantage des développeurs open source sans rien leur rendre. Les droits de la GPL ont été conçus pour les personnes, pas pour les entreprises (la métaphore des “3 avocats en trench-coat”), et quand une entreprise juge qu'un code est suffisamment bon pour être utilisé en entreprise, elle peut malgré tout ignorer le développeur. Lui aussi a choisi de gérer tous ses projets en AGPL pour cette raison et propose un contact si des conditions personnalisées sont nécessaires.
  • Je me demande quel sentiment Claptrap a ressenti (lien YouTube) ; bravo pour le travail accompli, je vous trouve sincèrement impressionné. Ce rejet est décevant, mais cela rappelle l'histoire du développeur de Homebrew refusé par Google (lien connexe).
  • Je veux saluer le travail réalisé ; en réalité beaucoup de développeurs open source ont une histoire très similaire. J'ai même eu l'expérience de voir Mojang utiliser mon moteur voxel.
  • Étant donné que ce post fait du bruit sur Hacker News, j'espère qu'un responsable d'Anthropic le lira un jour, s'excusera sincèrement et fera une offre d'embauche : j'espère une fin heureuse pour une issue positive.
  • Je me demande si le passage à l'AGPL ne lui apporterait pas plus de récompense, de reconnaissance ou d'opportunités d'embauche.
  • J'ai appris, par l'introduction d'un ami, qu'Anthropic cherchait quelqu'un pour intégrer une nouvelle fonctionnalité non publiée de Claude Desktop avec enigo, et j'ai postulé. Le mail automatique disait “nous ne contactons que les candidats retenus”, et après plusieurs semaines sans réponse, je pensais qu'ils avaient sans doute embauché quelqu'un d'autre. En réalité, cela fait 10 ans que je ne postule pas aux grandes entreprises ; je n'ai jamais eu de réponse. La seule exception était JaneStreet, où un simple court texte sur le sujet qui m'intéressait déclenchait un rappel immédiat. Par contre, avec la recommandation d'un ami, il est clairement plus facile d'obtenir un entretien chez Google ou Apple.
    • Au cours de ma carrière, j'ai travaillé dans 6 entreprises sans jamais recevoir une réponse grâce à une candidature envoyée sur un site de recrutement ; il faut toujours trouver un vrai contact humain pour obtenir une recommandation. Je recommande aussi cette approche ici. Anthropic n'a aucune raison de ne pas embaucher quelqu'un de votre calibre ; essayez de contacter un ami d'ami, puis échangez ensuite au téléphone.
  • Que JaneStreet ait été l'exception est intéressant ; lorsque les entreprises choisissent OCaml comme principal langage, elles semblent activement activer tous les canaux possibles pour attirer des développeurs.
  • Si l'on se demande pourquoi personne ne veut payer, c'est bien parce que ce développeur a déjà offert gratuitement la fonctionnalité demandée. Ignorer cela n'améliore pas non plus la réputation de l'entreprise.
    • Je proposerais une nouvelle licence : si une entreprise gagne plus de 100 millions de dollars de revenu annuel sans embaucher l'auteur alors qu'elle utilise une bibliothèque que j'ai créée, elle doit payer un coût commercial équivalent à la rémunération totale, au niveau salarial le plus élevé, d'un directeur ou d'un principal engineer supervisant 50 personnes au minimum. S'il s'agit de projets open source avec plusieurs auteurs principaux, les frais devraient revenir à la fondation qui gère le projet. Si ce modèle s'applique à des projets open source clés consommés par les big tech, comme ffmpeg, l'impact serait de centaines de milliers de dollars, et ce serait tout de même bien moins cher que de développer en interne.
    • Si l'entreprise l'embauche directement,
      • elle peut définir plus facilement quels travaux lui confier ;
      • elle obtient la garantie qu'il aime déjà ce travail et qu'il a les compétences requises ;
      • elle peut posséder ses livrables et en tirer un avantage concurrentiel ;
      • et, in fine, cela lui coûtera presque rien.
    • Pour l'instant, ce projet est un hobby et il reste de nombreux bugs. Sans revenus, je ne peux pas investir plus de temps, mais l'embaucher permettrait de se concentrer entièrement sur la correction de bugs et d'avancer beaucoup plus vite.
    • Si cet outil est vraiment central pour l'entreprise, pourquoi ne pas embaucher celui qui a le plus d'expérience sur ce sujet ? Surtout si le poste est ouvert pour lui. Si un concurrent l'embauche et verrouille la technologie, l'écart devient massif ; même si l'outil ne répond pas totalement aux attentes, il reste un ingénieur très compétent de plus.
    • Parce que l'entreprise peut faire prioriser par elle-même les fonctionnalités souhaitées, et c'est l'une des raisons pour lesquelles beaucoup d'entreprises recrutent des auteurs open source.
  • Je pense que l'OP aurait probablement obtenu un meilleur résultat en demandant une présentation directe par l'ami d'un ami plutôt qu'en passant par un processus de recrutement traditionnel ; c'est simplement la réalité des pratiques de recrutement dans l'IT.
    • Je pense pareil. Si l'OP avait publié tôt son billet en disant que sa bibliothèque était utilisée par Claude, en le présentant sur HN, Reddit et les communautés, cela aurait pu générer des intérêts croisés qui mènent à un recrutement. Même sans Anthropic, des concurrents auraient pu se montrer intéressés.
    • Finalement, si vous avez du réseau, ce n'est pas si mal : c'est beaucoup plus sûr. Recruter sur dossier + quelques heures d'entretien, c'est un gros pari ; si la personne ne correspond pas au rôle, il peut être difficile de s'en défaire.
    • D'après mon expérience chez Anthropic et OpenAI, les recommandations internes ne semblent pas être du tout un critère important. Les personnes embauchées étaient souvent des ingénieurs juniors, et tous les candidats devaient d'abord résoudre un problème très basique de code Python au premier tour, évalué par des ingénieurs juniors de 1 à 2 ans. S'ils ne réussissaient pas immédiatement, ils étaient rejetés sans discussion. Ce format désavantage fortement les seniors, ce qui diffère de Meta : chez Meta, plus on monte en séniorité, plus les questions deviennent pointues et la présence de managers est systématique. Le processus d'embauche d'Anthropic s'apparente à une approche amateur qui rejette les seniors, et même avec des recommandations internes, le passage du test de code reste essentiel.
  • Franchement, je pense qu'une époque arrive où le choix de la licence aura moins de poids. Quand une entreprise technologique convoite une bibliothèque open source, elle peut demander à une IA de “la réécrire à la façon de Guerre et Paix”. Comme dans l'affaire Cheatingdaddy/Pickle, il existe aussi des cas de simple copie sans réécriture.
    • Je me demande si vous avez déjà demandé à une IA de concevoir un projet complexe de A à Z.
    • Je me demande s'il existe des preuves que les grandes entreprises ont réellement fait ce type de “copie en ne changeant que le style”, et si cela peut passer juridiquement. Même si le training AI peut être considéré comme fair use, je ne pense pas qu'elle soit une boîte magique supprimant les droits d'auteur.
    • Si c'était techniquement possible, le coût de création des bibliothèques open source serait fortement réduit, au point que les mainteneurs n'auraient plus besoin d'un investissement énorme.
  • À mon sens, c'est le reflet exact des pratiques de recrutement de l'été 2025 : la candidature et la lettre de motivation ont très probablement été automatiquement éliminées sans lecture. “L'équipe n'a pas la capacité de revoir d'autres candidatures” signifie en réalité aucun effort ; il est difficile de croire qu'ils n'ont même pas perçu combien le poste et le candidat étaient alignés.
    • En réalité, une réponse du type “nous n'avons pas même examiné votre dossier” paraîtrait presque plus positive, car elle laisse la porte ouverte à plusieurs versions de CV à tester, ce qui peut vous aider.
    • Du point de vue d'Anthropic, il est plausible qu'ils reçoivent un volume énorme de candidatures venant du monde entier. C'est une entreprise très demandée ; des dizaines de milliers de personnes peuvent candidater, et les médias ne cessent d'évoquer des contrats de 100 millions de dollars par ingénieur IA, ce qui alourdit la structure.
    • Une autre tendance de recrutement de cet été dans l'IA, c'est Mark Zuckerberg qui propose plus de 100 millions à des développeurs très connus. L'OP aurait déjà un garage rempli de Ferrari s'il ajoutait “auteur de la bibliothèque d'interaction ordinateur utilisée par Anthropic” sur son profil LinkedIn.
    • Le moment où une contribution open source significative conduisait à être recruté comme ingénieur “à la mode” par une startup tech est, selon moi, largement révolu. Sans parrainage interne, même après avoir écrit du code central, un responsable de recrutement ne prête pas attention ; maintenant, le fait de passer du temps sur l'open source me motive de moins en moins : il faut s'occuper de sa maison et payer des factures, et consacrer son temps à une big tech pour ensuite être trahi n'est pas un bon investissement. Parfois, je me sens mélancolique de voir à quel point le monde a changé.
    • Anthropic est une entreprise d'IA, donc elle devrait filtrer les CV par IA ; si elle peut passer à côté d'un candidat comme celui-ci, c'est une preuve que son filtre IA ne sert à rien.
  • Je me demande si la question ne tient pas à la géographie : Anthropic est basée à San Francisco et l'auteur vit à Munich, et il se peut qu'ils veuillent pour l'instant éviter les embauches hors des États-Unis. Vu la situation des visas, c'est une possibilité plausible.
    • Notre entreprise est bien plus petite et pourtant recrute dans plusieurs pays ; un bureau physique n'est pas indispensable, et je pense que la plupart des pays n'ont pas cette contrainte.
    • C'est la même chose à Londres.
  • Je trouve le recrutement IT paradoxal aujourd'hui : les entreprises demandent un portfolio développé pour recruter, mais dès qu'un projet GitHub accumule quelques stars, elles l'utilisent déjà, puis répondent “pas intéressées par l'embauche”.
    • J'ai l'impression de m'inventer ce scénario pour me convaincre que mon parcours de recherche d'emploi difficile était “rationnel”.
    • Pour ma part, c'est en éliminant proprement le portfolio et en valorisant uniquement mon expérience que les résultats ont été beaucoup meilleurs.
  • Je ne suis pas sûr d'avoir raison, mais je pense qu'un développeur indépendant ne devrait pas trop être généreux avec la licence open source. Les entreprises utilisent ces logiciels sans payer ni contribuer ; sans ce logiciel, elles auraient embauché ou externalisé, mais grâce à l'open source elles économisent de la main-d'œuvre, ce qui finit par dévaloriser la place de l'ingénieur en big tech. Il n'existe pas de données historiques prouvant que la publication open source mène à un recrutement.
    • J'approuve ce point : si votre objectif est de contribuer à l'open source “de façon pure”, une licence contraignante comme la GPL est la bonne voie ; sinon, il faut accepter que vous donnez gratuitement aux boîtes riches sans aucune attente. Les licences n'incluent pas de mécanisme garantissant une compensation de l'auteur.
  • Après avoir lu que vous avez appris le poste ouvert d'Anthropic par un “ami d'un ami”, je pense qu'il serait plus efficace d'en parler directement autour d'un café que d'envoyer une cover letter. Dans un processus de recrutement, il faut d'abord prouver qu'on veut réellement travailler ensemble ; avoir simplement les qualités minimales ne garantit pas l'embauche.
    • L'important est d'éviter, autant que possible, que votre nom entre dans la file de candidatures officielle. Faites en sorte que les RH fassent une revue manuelle interne. Si l'entreprise a besoin de vous, elle prendra contact en premier, et vous éviterez ainsi une procédure de recrutement lourde.