Este artículo de Dave en su 'Virtual Box of Cards' propone una idea sencilla pero potente: usar archivos de texto plano como interfaz de usuario para programas de línea de comandos, en lugar de desarrollar costosas TUI (interfaces de usuario textuales) desde cero. La técnica se basa en lanzar el editor de texto preferido del usuario —definido en la variable de entorno $EDITOR— sobre un archivo temporal o persistente, leer su contenido y procesarlo desde un script.
El autor distingue su método del simple historial de comandos y de los plugins dentro del editor como los de Emacs o Vim. La clave está en usar un archivo de texto plano como único 'formulario' del programa: cada línea codifica un parámetro o acción, y se puede editar con toda la potencia del editor (búsqueda, macros, deshacer persistente, reutilización de valores anteriores). Programas clásicos como crontab -e, git commit, visudo o vipw ya aplican esta idea.
Como ejemplo mayor, Dave explica su herramienta 'gallery', un script en Ruby para catalogar fotos familiares: combina un directorio de entrada con un archivo inbox.txt cuyas líneas controlan el nombre, las etiquetas y otros metadatos del álbum. Mientras ve las miniaturas en un gestor de archivos, edita el texto en Vim y ejecuta el script con una secuencia de teclas; el programa genera miniaturas, mueve los archivos y deposita una copia del archivo como description.txt en el álbum final, conservando así el historial de ediciones.
El artículo cierra con un ejemplo más complejo: un script en Ruby que envuelve yt-dlp mediante un archivo download.txt con subdirectorio, nombre y URL como parámetros comentables. El enfoque es aplicable a cualquier CLI compleja como find, ffmpeg o rsync, y elimina la necesidad de aprender interfaces ad hoc para cada herramienta.
