Présentation
bigarrow est un outil en ligne de commande pour macOS, distribué sous licence MIT. Il s’agit d’un unique binaire Swift, compilé avec Xcode 16 et ciblant macOS 14 ou version supérieure. Aucun démon, aucune icône de barre de menu, aucune collecte de télémétrie ne sont présents ; le programme se contente de dessiner une annotation visuelle au-dessus de toutes les fenêtres. L’objectif est de fournir aux agents d’intelligence artificielle (Claude Code, Codex) un moyen d’attirer l’attention humaine sur un élément d’interface sans prendre le focus.
Fonctionnement technique
Le binaire crée une couche d’affichage « click‑through », c’est‑à‑dire qu’il ne capture pas les événements de souris et ne bloque pas l’interaction avec les applications sous‑jacentes. Cette couche s’appuie sur les API graphiques de macOS pour rendre des formes (flèches, boîtes, spirales) et du texte sur chaque écran et chaque Space. Les options de ligne de commande permettent de spécifier l’élément ciblé (--element "Allow" --app "System Settings"), les coordonnées (--at 760,500), la couleur, la forme ou le style de la bordure. Le rendu est instantané, disparaît après un délai ou à la fermeture du processus, et ne nécessite aucune autorisation d’accessibilité.
bigarrow point --element "Allow" --app "System Settings" --text "Franz, click Allow"Cas d’usage concrets
Les agents IA peuvent ainsi guider un utilisateur à travers des dialogues d’autorisation, des fenêtres OAuth, des boîtes de confirmation de paiement ou des captures d’écran de documentation. En combinant --window "Google Chrome:Pull request" et --app "Google Chrome:Pull request", l’outil cible précisément une fenêtre ou un onglet, même lorsqu’ils sont multiples. L’option --dry-run --json renvoie les coordonnées prévues sans dessiner, ce qui facilite le débogage d’algorithmes de localisation d’éléments UI. Un mode --png génère une image statique utilisable dans des guides ou des screencasts.
Limites et perspectives
bigarrow ne réalise aucune interaction automatisée ; il ne clique, ne tape pas et ne capture pas d’écran. Cette contrainte volontaire évite les risques de sécurité liés à l’automatisation de tâches sensibles, mais impose à l’utilisateur de valider chaque action. Le fonctionnement dépend de la stabilité des API de rendu macOS ; toute évolution majeure du système d’affichage pourrait nécessiter une mise à jour du binaire. Enfin, l’outil est limité aux environnements macOS 14+ et requiert Swift 5.9 ou supérieur, ce qui restreint son adoption aux machines récentes.