Los códigos de escape ANSI son un estándar de casi 50 años que continúa controlando cómo los terminales muestran formato de texto, colores y movimientos del cursor. Surgido en 1979, el estándar nació como respuesta a las limitaciones de los primeros terminales "tontos": monitores CRT conectados a mainframes mediante cables serie, capaces únicamente de procesar flujos de texto plano carácter a carácter.
La base técnica es sencilla. Cada secuencia de escape arranca con el carácter ESC (ASCII 27, o \x1b) seguido de un corchete izquierdo, que en conjunto forman el Control Sequence Introducer (CSI). Tras este prefijo llega el comando en cuestión. Ejemplos habituales son \x1b[31m para texto rojo, \x1b[1m para negrita, \x1b[0m para restablecer el formato, \x1b[2J para borrar la pantalla y \x1b[H para situar el cursor en la esquina superior izquierda. Varios atributos se combinan con punto y coma, de modo que \x1b[1;31m produce texto rojo en negrita. La letra "m" final designa el comando Select Graphic Rendition (SGR), responsable de todas las operaciones de estilo. La especificación original definía 8 colores, pero los terminales modernos la han ampliado: el modo de 256 colores recurre a códigos como \x1b[38;5;208m, mientras que el soporte RGB real de 24 bits adopta la forma \x1b[38;2;255;128;0m.
A pesar de su antigüedad, el estándar sigue siendo la columna vertebral de la interacción con la CLI. La salida coloreada de los comandos, los indicadores de progreso y los prompts de shell personalizados dependen de los códigos ANSI. Bibliotecas como Spectre.Console en .NET y chalk en Node exponen utilidades que se apoyan en el estándar y permiten patrones sofisticados como spinners y edición de contenido en sitio mediante manipulación del cursor. El comando aspire deploy ilustra cómo componer esos elementos en interfaces vistosas. Aplicaciones a pantalla completa como Vim y htop llevan el estándar más lejos, empleando secuencias de posicionamiento como \x1b[10;20H para construir interfaces sorprendentemente elaboradas únicamente a partir de flujos de texto.
El artículo incluye un widget interactivo para experimentar con distintas secuencias y observar su renderizado en tiempo real. La autora, Safia Abdalla, explica que el widget fue desarrollado en gran parte con ayuda de IA, y que su aportación principal se centró en el diseño de la experiencia.
