OSC 7501 es una nueva secuencia de escape de terminal propuesta por Mitchell Hashimoto que permite que cualquier programa le indique a la terminal qué está haciendo: inactivo, trabajando, esperando la entrada del usuario, finalizado o fallido, y por qué. El protocolo surgió del trabajo en los proyectos Superlogical y Ghostty, pero está diseñado como una especificación nativa de terminal genérica que no depende de ningún producto o lenguaje particular. Aborda la frustración común de los trabajos prolongados en terminal, como compilaciones, despliegues, actualizaciones de paquetes, procesamiento de datos y agentes de codificación, donde los usuarios a menudo pierden la noción de si un programa sigue ejecutándose, está bloqueado esperando entrada o ha finalizado.

El protocolo utiliza el introducer de comando del sistema operativo (OSC) ESC ] 7501 ; seguido por pares clave=valor separados por dos puntos y terminado por ESC [[backslash]]. La única clave requerida es state, que puede ser inactivo, trabajando, completado, bloqueado o error. Las claves opcionales incluyen app para un nombre de programa legible por máquina estable (por ejemplo, terraform o claude‑code), msg para una línea legible por humanos codificada en base64 UTF‑8, y kind para aclarar por qué un programa está bloqueado (permiso, pregunta, auth). Los programas que gestionan múltiples actividades concurrentes pueden informar IDs jerárquicos separados por barras inclinadas; por ejemplo, una herramienta de despliegue puede estar trabajando en la raíz mientras us‑east/push muestra trabajando con un 40 % de progreso y eu‑west está bloqueado esperando aprobación. Un informe cuyo ID no coincide con la gramática se ignora, y las claves desconocidas se omite de forma segura, lo que hace que el protocolo sea robusto y extensible.

Ilustración de la sintaxis del protocolo OSC 7501 y ejemplos de uso de la documentación de Rex
El protocolo OSC 7501 utiliza ESC ] 7501 ; pares clave=valor para informar el estado del programa, tal como se documenta en Rex.www.superlogical.com

Esta imagen ilustra el formato del protocolo OSC 7501, descrito en el artículo como una secuencia de escape de terminal para informar el estado del programa (inactivo, trabajando, completado, bloqueado, error) con claves opcionales para el nombre de la aplicación, el mensaje y la razón del bloqueo.

Debido a que OSC 7501 se emite a través del pseudo‑terminal existente, funciona sobre SSH, dentro de contenedores y en cualquier lugar donde esté disponible un PTY, evitando la fragilidad de las heurísticas que analizan los títulos de ventana o el contenido de la pantalla y eliminando la necesidad de que cada programa se integre con cada API específica de bandeja de entrada. En comparación con el antiguo indicador de progreso OSC 9;4, que solo puede transmitir ocupado/no ocupado, OSC 7501 proporciona estados y mensajes detallados. Ya existen implementaciones en libghostty, el emulador de terminal Rex, y se han añadido a proyectos como Terraform, Claude Code, Codex y Homebrew mediante pequeños plugins o bifurcaciones. Si bien la especificación define el mecanismo, deja la presentación a cada terminal, por lo que la forma exacta en que se muestra el estado—ya sea como un girador, un icono o una bandeja de entrada dentro de la aplicación—sigue siendo una pregunta abierta para los desarrolladores que adopten el estándar.