Skip to content
Bootstrapping · · 8 min de lectura

Desarrollé un agente de IA que controla cualquier app de Mac

Las apps de escritorio atrapan tu tiempo detrás de formularios, dropdowns y pestañas que clicas cientos de veces al año. mac-use permite que Claude Code controle cualquier aplicación de macOS a través de APIs de accesibilidad — sin capturas de pantalla, sin coordenadas de píxeles. Lo usé para automatizar mi declaración de impuestos.

Por Alex Diaz · Actualizado 30 de marzo de 2026

Resumen: mac-use es un servidor MCP open source que permite a Claude Code controlar cualquier app de macOS — hacer clic en botones, llenar formularios, leer valores, navegar menús — a través de la API de Accesibilidad de Apple. Sin capturas de pantalla. Sin coordenadas de píxeles. Lo desarrollé para automatizar mi declaración de impuestos suiza. Funciona para cualquier app de escritorio que estés cansado de manejar manualmente.

Declarar impuestos en Suiza significa eTax — una app de escritorio de 2003 que lo aparenta. Docenas de pestañas. Cientos de campos. Dropdowns que requieren hacer scroll por todos los municipios suizos. Cada año, el mismo ritual: abrir la app, teclear manualmente números de documentos que ya tengo en digital, hacer clic en las mismas secuencias, perder una tarde entera con una GUI.

Suiza no es especial en esto. Estados Unidos tiene TurboTax. Reino Unido tiene las herramientas de escritorio de HMRC. Francia tiene el cliente de impots.gouv. Italia tiene Entratel. Cada país con una autoridad tributaria tiene alguna app de escritorio legacy que no se ha actualizado significativamente desde mediados de los 2000. Los formularios cambian cada año. El software no.

Este año automaticé todo el proceso con mac-use. Se suma al stack de skills de IA que permite a un equipo de 5 personas operar sin departamentos.

Puntos clave:

  • mac-use conecta Claude Code a cualquier aplicación de macOS a través de la API de Accesibilidad nativa de Apple
  • Lee elementos de UI, hace clic en botones, llena formularios, navega menús — sin modelos de visión, sin capturas de pantalla
  • Apps de escritorio que no se pueden scriptar (software fiscal, herramientas enterprise legacy, formularios gubernamentales) se vuelven automatizables
  • Instalación: pip install mac-use — una línea, cero configuración más allá de los permisos de accesibilidad de macOS
  • Open source: funciona con cualquier app que renderice elementos estándar de UI de macOS

El problema del que nadie habla

Todo founder tiene al menos una app de escritorio que consume horas y no se puede automatizar.

Portales bancarios. Herramientas de presentación gubernamental. El paquete de contabilidad en el que insiste tu contador. Formularios de reclamos de seguros. Apps de declaración aduanera. Todas comparten la misma filosofía de diseño: la información entra a través de un humano haciendo clic. No hay API. No hay CLI. No hay botón de exportar que te dé lo que realmente necesitas.

La web consiguió APIs. El móvil consiguió deep links. Las apps de escritorio quedaron atrás. Tus datos entran por la puerta principal — la GUI — o no entran.

Las soluciones habituales:

EnfoqueProblema
IA basada en capturas (GPT-4V, etc.)Lenta, cara, dependiente de resolución, se rompe con diferentes tamaños de pantalla
AppleScript / AutomatorRequiere conocimiento profundo de scripting macOS, frágil, difícil de depurar
Keyboard Maestro / similarGraba y reproduce — se rompe en cuanto un botón se mueve
Herramientas RPA (UiPath, etc.)Precios enterprise, complejidad enterprise, ciclo de venta enterprise
Entrada manualFunciona. Te cuesta horas que no tienes.

Todas las opciones son frágiles, caras, o requieren expertise que no tiene nada que ver con la tarea real.

Qué hace mac-use diferente

mac-use es un servidor MCP — un puente entre Claude Code y la API de Accesibilidad de tu Mac. En vez de tomar capturas de pantalla y adivinar dónde están los botones, lee el árbol de elementos de UI real. El mismo árbol que usa VoiceOver para ayudar a usuarios ciegos a navegar macOS.

Esto significa que Claude Code puede:

  • Ver cada botón, campo de texto, dropdown, pestaña y elemento de menú — por nombre, rol y estado
  • Hacer clic en elementos por su nombre, no por su ubicación en pantalla
  • Leer valores de cualquier elemento de UI — campos de texto, etiquetas, indicadores de estado
  • Escribir en campos específicos sin necesidad de tabular por todo el formulario
  • Llenar múltiples campos de formulario en una sola operación
  • Navegar menús por ruta: Archivo > Exportar > PDF
  • Presionar atajos de teclado — Cmd+S, Cmd+P, lo que la app soporte

Sin modelo de visión en el proceso. Sin llamadas a API por acción a GPT-4V a $0.01/imagen. Interacciones solo de texto con la capa de accesibilidad que Apple integró en cada app de Mac.

La diferencia importa:

Basado en capturasmac-use (API de Accesibilidad)
Velocidad3-5s por acción (modelo de visión)Instantáneo (llamada directa a API)
PrecisiónDependiente de píxeles, se rompe con escaladoBasado en elementos, independiente de escala
Costo$0.01-0.03 por capturaCero costo marginal
ResoluciónFalla con Retina vs. no-RetinaIrrelevante la resolución
FiabilidadSe rompe cuando la UI se mueve 10pxFunciona si el elemento existe

Cómo automaticé eTax

Así es como se ve el flujo de la declaración de impuestos en la práctica:

  1. Claude Code lee mis documentos de ingresos (PDFs, CSVs de mi software contable)
  2. Abre eTax y navega a la primera sección
  3. Para cada sección — ingresos, deducciones, activos, pasivos — identifica los campos del formulario por nombre, los llena con los valores correctos y pasa a la siguiente pestaña
  4. Maneja los dropdowns (selección de municipio, códigos de cantón, categorías de profesión) leyendo las opciones disponibles y seleccionando la correcta
  5. Cuando encuentra un campo que no puede llenar con certeza, se detiene y pregunta

Todo corre en Claude Code. Yo describo lo que quiero: “Llena mi declaración de impuestos cantonal suiza usando los datos de estos documentos.” Claude Code orquesta el resto — lee documentos, controla eTax a través de mac-use, valida sobre la marcha.

Tiempo total: menos de 10 minutos para lo que antes tomaba una tarde. Y la precisión es mayor porque no hay transcripción manual — los números van directo de los documentos fuente a los campos del formulario.

Más allá de las declaraciones de impuestos

El software fiscal fue el detonante. Pero una vez que tienes un agente de IA que controla cualquier app de escritorio, los casos de uso se multiplican:

Extracción de datos de apps cerradas. ¿Ese CRM legacy que usa tu empresa? ¿El que no tiene función de exportar? mac-use puede leer cada campo, cada tabla, cada registro — y volcarlo en el formato que necesites. Sin scraping de pantalla. Sin OCR de capturas. Lectura directa de elementos.

Flujos entre aplicaciones. Copiar datos de tu software contable a tu portal bancario. Transferir registros de un sistema a otro. El tipo de trabajo que haría un asistente — abrir dos apps, leer de una, teclear en la otra — excepto que el asistente es Claude Code y no comete errores de transcripción.

Envío automatizado de formularios. Reclamos de seguros. Solicitudes gubernamentales. Renovaciones de permisos. Declaraciones aduaneras. Cualquier app de escritorio intensiva en formularios donde tecleas las mismas categorías de información de documentos que ya tienes en digital.

Testing y QA. Si construyes apps para macOS, mac-use le da a tu agente de IA la capacidad de navegar tu app, verificar estados de elementos, validar formularios y reportar lo que encuentra. Las pruebas de cumplimiento de accesibilidad se vuelven triviales — si mac-use no encuentra un elemento, VoiceOver tampoco.

Configuración

Una línea:

pip install mac-use

Agrega a tu configuración de Claude Code (~/.claude.json):

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

Otorga permisos de accesibilidad a tu terminal (Ajustes del Sistema > Privacidad y Seguridad > Accesibilidad). Eso es todo.

Luego dile a Claude Code lo que quieres: “Abre eTax y llena mis ingresos de este PDF.” Él se encarga del resto — identifica ventanas, lee elementos de UI, hace clic, teclea, navega.

Requisitos: macOS Ventura o posterior. Python 3.10+. La app objetivo debe renderizar elementos estándar de UI de macOS (la mayoría lo hace — incluso las apps Electron exponen árboles de accesibilidad).

Cómo funciona por dentro

mac-use se comunica con macOS a través de osascript y System Events — el mismo mecanismo que alimenta VoiceOver, Switch Control y cada función de accesibilidad del Mac.

Cuando Claude Code llama a get_ui_elements(), mac-use devuelve el árbol completo de elementos: nombres de botones, valores de campos de texto, opciones de dropdown, etiquetas de pestañas, estructuras de menú. Claude Code usa este árbol para decidir con qué interactuar. No adivina desde píxeles. Lee la descripción real de la interfaz que la app provee al sistema operativo.

Por eso funciona de manera fiable. Apple requiere que las apps expongan información de accesibilidad. Es un requisito de la plataforma desde hace años. mac-use simplemente usa esa información para automatización en vez de asistencia por discapacidad. Misma API, diferente propósito.

Preguntas frecuentes

¿Funciona con cualquier app de macOS?

Cualquier app que exponga elementos de accesibilidad estándar — que son la mayoría. Las apps nativas de macOS (Swift/AppKit/SwiftUI) funcionan mejor. Las apps Electron funcionan. Las apps Java funcionan. Algunas UIs con renderizado muy personalizado (juegos, algunas herramientas creativas) pueden no exponer árboles de elementos.

¿En qué se diferencia de Keyboard Maestro o Automator?

Esas herramientas graban y reproducen secuencias fijas. mac-use le da a un agente de IA comprensión dinámica de la interfaz. Lee el estado actual, decide qué hacer, maneja variaciones y se recupera de estados inesperados. Es la diferencia entre un script y un agente.

¿Es seguro para datos sensibles como declaraciones de impuestos?

Todo corre localmente. mac-use es un servidor MCP en tu máquina — se comunica con tus apps a través de tu SO. Ningún dato sale de tu Mac (más allá de lo que Claude Code envía a la API para razonamiento). Tus datos fiscales se quedan en local.

¿Puedo usarlo sin Claude Code?

mac-use es un servidor MCP, así que funciona con cualquier cliente compatible con MCP. Claude Code es el encaje más natural porque puede orquestar flujos de trabajo multi-paso, pero cualquier cliente que hable MCP puede usarlo.

¿Y Windows o Linux?

En camino. Windows tiene UI Automation y Linux tiene AT-SPI — mismo concepto, diferentes implementaciones. Envíame un mensaje si lo necesitas cuanto antes.


Las apps de escritorio eran el último bastión — el software que no se podía automatizar porque nunca fue diseñado para ello. mac-use cambia eso. Clónalo, apúntalo a la app que te roba tiempo, y deja que Claude Code haga los clics.

Artículos relacionados

Lo que nadie les dice a los founders

Flag theory, playbooks para bootstrappers y lecciones de primera mano sobre negocios independientes de ubicación. Sin cursos de "hazte rico rápido" — solo un founder compartiendo lo que funcionó y buscando a otros en el mismo camino.

Sin spam. Sin basura de afiliados. Cancela cuando quieras. O sigue el feed RSS.