Skip to content
Bootstrapping · · 8 min di lettura

Ho costruito un agente IA che controlla qualsiasi app del Mac

Le app desktop intrappolano il tuo tempo dietro moduli, dropdown e schede che clicchi centinaia di volte all'anno. mac-use permette a Claude Code di controllare qualsiasi applicazione macOS tramite le API di accessibilità — niente screenshot, niente coordinate pixel. L'ho usato per automatizzare la mia dichiarazione dei redditi.

Di Alex Diaz · Aggiornato 30 marzo 2026

In breve: mac-use è un server MCP open source che permette a Claude Code di controllare qualsiasi app macOS — cliccare pulsanti, compilare moduli, leggere valori, navigare nei menu — tramite l’API di Accessibilità di Apple. Niente screenshot. Niente coordinate pixel. L’ho costruito per automatizzare la mia dichiarazione dei redditi svizzera. Funziona con qualsiasi app desktop che sei stanco di usare manualmente.

Fare la dichiarazione dei redditi in Svizzera significa eTax — un’app desktop del 2003 che ne ha tutta l’aria. Decine di schede. Centinaia di campi. Dropdown che richiedono di scorrere tutti i comuni svizzeri. Ogni anno, stesso rituale: aprire l’app, digitare manualmente numeri da documenti che ho già in digitale, cliccare nelle stesse sequenze, perdere un pomeriggio intero con una GUI.

La Svizzera non è un caso speciale. Gli Stati Uniti hanno TurboTax. Il Regno Unito ha gli strumenti desktop di HMRC. La Francia ha il client impots.gouv. L’Italia ha Entratel. Ogni paese con un’autorità fiscale ha qualche app desktop legacy che non viene aggiornata in modo significativo dalla metà degli anni 2000. I moduli cambiano ogni anno. Il software no.

Quest’anno ho automatizzato l’intero processo con mac-use. Si aggiunge allo stack di skill IA che permette a un team di 5 persone di operare senza dipartimenti.

Punti chiave:

  • mac-use connette Claude Code a qualsiasi applicazione macOS tramite l’API di Accessibilità nativa di Apple
  • Legge gli elementi UI, clicca pulsanti, compila moduli, naviga nei menu — niente modelli di visione, niente screenshot
  • Le app desktop non scriptabili (software fiscale, strumenti enterprise legacy, moduli governativi) diventano automatizzabili
  • Installazione: pip install mac-use — una riga, zero configurazione oltre ai permessi di accessibilità macOS
  • Open source: funziona con qualsiasi app che renderizza elementi UI standard di macOS

Il problema di cui nessuno parla

Ogni founder ha almeno un’app desktop che divora ore e non si può automatizzare.

Portali bancari. Strumenti di presentazione governativa. Il software di contabilità su cui insiste il tuo commercialista. Moduli per i reclami assicurativi. App per le dichiarazioni doganali. Condividono tutte la stessa filosofia di design: l’informazione entra tramite un umano che clicca. Nessuna API. Nessuna CLI. Nessun pulsante di export che ti dia quello di cui hai bisogno.

Il web ha avuto le API. Il mobile ha avuto i deep link. Le app desktop sono rimaste indietro. I tuoi dati entrano dalla porta principale — la GUI — o non entrano affatto.

Le soluzioni standard:

ApproccioProblema
IA basata su screenshot (GPT-4V, ecc.)Lenta, costosa, dipendente dalla risoluzione, si rompe con dimensioni di schermo diverse
AppleScript / AutomatorRichiede conoscenza approfondita dello scripting macOS, fragile, difficile da debuggare
Keyboard Maestro / similiRegistra e riproduce — si rompe appena un pulsante si sposta
Strumenti RPA (UiPath, ecc.)Prezzi enterprise, complessità enterprise, ciclo di vendita enterprise
Inserimento manualeFunziona. Ti costa ore che non hai.

Ogni opzione è fragile, costosa, o richiede competenze che non c’entrano nulla con il compito reale.

Cosa fa di diverso mac-use

mac-use è un server MCP — un ponte tra Claude Code e l’API di Accessibilità del tuo Mac. Invece di fare screenshot e indovinare dove sono i pulsanti, legge l’albero reale degli elementi UI. Lo stesso albero che VoiceOver usa per aiutare gli utenti non vedenti a navigare in macOS.

Questo significa che Claude Code può:

  • Vedere ogni pulsante, campo di testo, dropdown, scheda ed elemento di menu — per nome, ruolo e stato
  • Cliccare sugli elementi per nome, non per posizione sullo schermo
  • Leggere i valori di qualsiasi elemento UI — campi di testo, etichette, indicatori di stato
  • Digitare in campi specifici senza dover tabulare attraverso l’intero modulo
  • Compilare più campi del modulo in un’unica operazione
  • Navigare nei menu per percorso: File > Esporta > PDF
  • Premere scorciatoie da tastiera — Cmd+S, Cmd+P, qualsiasi cosa l’app supporti

Nessun modello di visione nel processo. Nessuna chiamata API per azione a GPT-4V a 0,01 $/immagine. Interazioni puramente testuali con il livello di accessibilità che Apple ha integrato in ogni app Mac.

La differenza conta:

Basato su screenshotmac-use (API di Accessibilità)
Velocità3-5s per azione (modello di visione)Istantaneo (chiamata API diretta)
PrecisioneDipendente dai pixel, si rompe con lo scalingBasato sugli elementi, indipendente dalla scala
Costo0,01-0,03 $ per screenshotZero costo marginale
RisoluzioneFallisce Retina vs. non-RetinaIrrilevante la risoluzione
AffidabilitàSi rompe quando la UI si sposta di 10pxFunziona se l’elemento esiste

Come ho automatizzato eTax

Ecco come appare il workflow della dichiarazione dei redditi nella pratica:

  1. Claude Code legge i miei documenti di reddito (PDF, CSV dal mio software contabile)
  2. Apre eTax e naviga alla prima sezione
  3. Per ogni sezione — redditi, deduzioni, attivi, passivi — identifica i campi del modulo per nome, li compila con i valori corretti e passa alla scheda successiva
  4. Gestisce i dropdown (selezione del comune, codici del cantone, categorie professionali) leggendo le opzioni disponibili e selezionando quella giusta
  5. Quando incontra un campo che non può compilare con certezza, si ferma e chiede

Il tutto gira in Claude Code. Descrivo quello che voglio: “Compila la mia dichiarazione dei redditi cantonale svizzera usando i dati di questi documenti.” Claude Code orchestra il resto — legge documenti, controlla eTax tramite mac-use, valida man mano.

Tempo totale: meno di 10 minuti per quello che prima richiedeva un pomeriggio. E la precisione è maggiore perché non c’è trascrizione manuale — i numeri vanno direttamente dai documenti sorgente ai campi del modulo.

Oltre le dichiarazioni dei redditi

Il software fiscale è stato il trigger. Ma una volta che hai un agente IA che può controllare qualsiasi app desktop, i casi d’uso si moltiplicano:

Estrazione dati da app chiuse. Quel CRM legacy che usa la tua azienda? Quello senza funzione di export? mac-use può leggere ogni campo, ogni tabella, ogni record — e scaricarlo nel formato che ti serve. Niente screen scraping. Niente OCR su screenshot. Lettura diretta degli elementi.

Workflow cross-applicazione. Copiare dati dal software contabile al portale bancario. Trasferire voci da un sistema all’altro. Il tipo di lavoro che farebbe un assistente — aprire due app, leggere da una, digitare nell’altra — tranne che l’assistente è Claude Code e non fa errori di trascrizione.

Invio automatico di moduli. Reclami assicurativi. Domande governative. Rinnovi di permessi. Dichiarazioni doganali. Qualsiasi app desktop ricca di moduli dove digiti le stesse categorie di informazioni da documenti che hai già in digitale.

Testing e QA. Se sviluppi app macOS, mac-use dà al tuo agente IA la capacità di navigare nella tua app, verificare gli stati degli elementi, validare i moduli e riportare ciò che trova. I test di conformità all’accessibilità diventano banali — se mac-use non trova un elemento, nemmeno VoiceOver lo trova.

Configurazione

Una riga:

pip install mac-use

Aggiungi alla tua config di Claude Code (~/.claude.json):

{
  "mcpServers": {
    "mac-use": {
      "command": "mac-use"
    }
  }
}

Concedi i permessi di accessibilità al tuo terminale (Impostazioni di Sistema > Privacy e Sicurezza > Accessibilità). Fatto.

Poi dì a Claude Code cosa vuoi: “Apri eTax e compila i miei redditi da questo PDF.” Si occupa del resto — identifica le finestre, legge gli elementi UI, clicca, digita, naviga.

Requisiti: macOS Ventura o successivo. Python 3.10+. L’app target deve renderizzare elementi UI standard di macOS (la maggior parte lo fa — anche le app Electron espongono alberi di accessibilità).

Come funziona sotto il cofano

mac-use comunica con macOS tramite osascript e System Events — lo stesso meccanismo che alimenta VoiceOver, Switch Control e ogni altra funzione di accessibilità del Mac.

Quando Claude Code chiama get_ui_elements(), mac-use restituisce l’albero completo degli elementi: nomi dei pulsanti, valori dei campi di testo, opzioni dei dropdown, etichette delle schede, strutture dei menu. Claude Code usa questo albero per decidere con cosa interagire. Non indovina dai pixel. Legge la descrizione reale dell’interfaccia che l’app fornisce al sistema operativo.

Ecco perché funziona in modo affidabile. Apple richiede che le app espongano informazioni di accessibilità. È un requisito della piattaforma da anni. mac-use usa semplicemente quelle informazioni per l’automazione invece che per l’assistenza alla disabilità. Stessa API, scopo diverso.

Domande frequenti

Funziona con qualsiasi app macOS?

Qualsiasi app che espone elementi di accessibilità standard — la maggior parte. Le app native macOS (Swift/AppKit/SwiftUI) funzionano meglio. Le app Electron funzionano. Le app Java funzionano. Alcune UI con rendering molto personalizzato (giochi, alcuni strumenti creativi) potrebbero non esporre alberi di elementi.

Come si differenzia da Keyboard Maestro o Automator?

Quegli strumenti registrano e riproducono sequenze fisse. mac-use dà a un agente IA una comprensione dinamica dell’interfaccia. Legge lo stato attuale, decide cosa fare, gestisce le variazioni e si riprende da stati inattesi. È la differenza tra uno script e un agente.

È sicuro per dati sensibili come le dichiarazioni dei redditi?

Tutto gira in locale. mac-use è un server MCP sulla tua macchina — comunica con le tue app tramite il tuo OS. Nessun dato esce dal tuo Mac (a parte quello che Claude Code invia all’API per il ragionamento). I tuoi dati fiscali restano in locale.

Posso usarlo senza Claude Code?

mac-use è un server MCP, quindi funziona con qualsiasi client compatibile MCP. Claude Code è la scelta più naturale perché può orchestrare workflow multi-step, ma qualsiasi client che parla MCP può usarlo.

E per Windows o Linux?

In arrivo. Windows ha UI Automation e Linux ha AT-SPI — stesso concetto, implementazioni diverse. Mandami un messaggio se lo vuoi il prima possibile.


Le app desktop erano l’ultimo bastione — il software che non si poteva automatizzare perché non era mai stato progettato per esserlo. mac-use cambia le cose. Clonalo, puntalo verso l’app che ti ruba tempo, e lascia che Claude Code faccia i clic.

Articoli correlati

Le cose che nessuno dice ai founder

Flag theory, playbook per bootstrapper e lezioni duramente imparate sulla costruzione di business indipendenti dalla posizione. Nessun corso "diventa ricco subito" — solo un founder che condivide cosa ha funzionato e cerca altri sulla stessa strada.

Niente spam. Niente spazzatura da affiliati. Cancellati quando vuoi. Oppure segui il feed RSS.