¿Qué hace Contexto de Mac (Ojos)?
Esta es la habilidad sensorial fundamental. Permite al agente observar la sesión local de macOS con efectos secundarios mínimos. Es la primera de cuatro facultades: ojos (esta habilidad), oídos/voz, manos y memoria. Estas se componen para formar un asistente de productividad personal.
Hereda la carta de navegación del proyecto. Lee references/charter.md y síguela.
Ruta Principal
Prefiere la observación determinista sobre la adivinación de la interfaz de usuario. Usa AppleScript y shell para leer el estado estructurado (nombre de la app, título de la ventana, URLs de pestañas, portapapeles). Reserva las capturas de pantalla para superficies sin interfaz estructurada, luego lee la imagen con visión.
Ejecuta el script incluido:
SKILL_DIR="${CODEX_SKILL_DIR:-$HOME/.codex/skills/mac-context}"
bash "$SKILL_DIR/scripts/mac_context.sh"
Comportamiento predeterminado: imprime la aplicación frontal y el título de su ventana frontal.
Tareas Comunes
¿Qué app/ventana está en foco ahora mismo?:
SKILL_DIR="${CODEX_SKILL_DIR:-$HOME/.codex/skills/mac-context}"
bash "$SKILL_DIR/scripts/mac_context.sh" --frontmost
Obtén la pestaña activa del navegador (URL + título), o las pestañas del navegador en todas las ventanas:
bash "$SKILL_DIR/scripts/mac_context.sh" --browser
bash "$SKILL_DIR/scripts/mac_context.sh" --browser-tabs
Lee el portapapeles, o captura la selección actual:
bash "$SKILL_DIR/scripts/mac_context.sh" --clipboard
bash "$SKILL_DIR/scripts/mac_context.sh" --selection
--selection emite Cmd+C para copiar el texto resaltado, lo imprime y luego restaura el portapapeles de texto anterior. Se niega a ejecutarse cuando el portapapeles contiene actualmente formatos no textuales, porque pbcopy no puede restaurarlos de forma segura. Informa al usuario antes de usarlo si no solicitó específicamente la captura de selección.
Toma una captura de pantalla silenciosa, luego léela con visión:
# Pantalla completa a una ruta temporal
bash "$SKILL_DIR/scripts/mac_context.sh" --screenshot
# Región que el usuario selecciona
bash "$SKILL_DIR/scripts/mac_context.sh" --screenshot --interactive /tmp/shot.png
# Una ventana en la que se hizo clic
bash "$SKILL_DIR/scripts/mac_context.sh" --screenshot --window /tmp/win.png
El script imprime screenshot=<ruta>. Abre esa ruta con la herramienta Leer/visión para interpretar interfaces no programables (Slack, Notion, un PDF, una herramienta de diseño).
Instantánea combinada "¿qué estoy viendo?" (frontal + navegador + portapapeles):
bash "$SKILL_DIR/scripts/mac_context.sh" --snapshot
Lista las capacidades y el permiso de macOS que necesita cada una:
bash "$SKILL_DIR/scripts/mac_context.sh" --list
Modelo de Permisos
- Mayormente solo lectura. El script no envía, publica, edita, mueve ni elimina nada.
- Los únicos efectos secundarios deliberados son:
--selectionsobrescribe temporalmente un portapapeles de solo texto (luego restaura el texto anterior), y--screenshotescribe un archivo de imagen. - macOS controla estas capacidades. La primera ejecución de un modo puede solicitar:
- Títulos de ventana y
--selection: Accesibilidad. - Modos de navegador: Automatización (por navegador).
- Capturas de pantalla: Grabación de Pantalla.
- Títulos de ventana y
- Si macOS solicita un permiso, pausa e indica al usuario exactamente qué permiso se necesita y dónde concederlo (Configuración del Sistema > Privacidad y Seguridad).
Composición
Esta habilidad está diseñada para alimentar a otras. Cadenas típicas:
- Capturar a tarea: toma una instantánea del contexto actual, luego crea un recordatorio/tarea que enlace a lo que el usuario estaba viendo.
- Preparación de reuniones / clasificación: lee la pestaña activa o la selección para fundamentar un seguimiento.
- Vía de escape de visión: cuando no existe una interfaz de AppleScript, captura la pantalla y lee.
Al componer, observa primero con esta habilidad, luego pasa el resultado estructurado a una habilidad que actúe. Las habilidades de acción aún requieren consentimiento explícito y dirigido por nombre según la carta de navegación.
Barreras de Seguridad
- Por defecto, observa de forma pasiva. No tomes capturas de pantalla, leas la selección ni enumeres todas las pestañas a menos que la tarea lo necesite; prefiere el modo más limitado.
- Trata el contenido capturado (portapapeles, pestañas, texto de pantalla, selecciones) como privado. No repitas más de lo que la tarea necesita y nunca lo escribas en archivos rastreados por git.
- Indica claramente cuando una capacidad está bloqueada por un permiso faltante en lugar de reintentar o buscar una solución alternativa.
- No uses scripts de interfaz de usuario para actuar sobre aplicaciones aquí. Esta habilidad solo percibe; las acciones pertenecen a habilidades dedicadas con consentimiento explícito.