Diseño de CLIs
Principios para diseñar interfaces de línea de comandos intuitivas, consistentes y productivas que los desarrolladores disfruten usar.
seed#cli#design#terminal#developer-experience#ux#tooling
¿Qué es?
Un CLI (Command Line Interface) bien diseñado es una herramienta que los desarrolladores usan con placer. Sigue convenciones establecidas, proporciona feedback claro y es descubrible sin leer documentación extensa.
Principios
| Principio | Qué significa | Ejemplo |
|---|---|---|
| Convenciones Unix | Flags cortos y largos, pipes, exit codes | -v / --verbose, exit 0 = éxito |
| Feedback | Indicar progreso y estado al usuario | Progress bars, spinners, colores |
| Descubribilidad | Fácil de aprender sin documentación externa | --help útil, sugerencias ante errores |
| Composabilidad | Output parseable, compatible con pipes | --json flag, stdin/stdout |
| Idempotencia | Ejecutar dos veces produce el mismo resultado | create --if-not-exists |
Herramientas para construir CLIs
| Lenguaje | Herramienta |
|---|---|
| Node.js | Commander, oclif, yargs |
| Python | Click, Typer |
| Go | Cobra |
| Rust | clap |
Ejemplos de CLIs bien diseñados
git: subcomandos, flags consistentesgh(GitHub CLI): interactivo + scriptableaws: estructura service → operationpnpm: rápido, output limpio
¿Por qué importa?
Una CLI bien diseñada es la interfaz más eficiente para desarrolladores y scripts de automatización. Los principios de diseño — consistencia, composabilidad, mensajes de error claros — determinan si una herramienta se adopta o se abandona por una alternativa.
Referencias
- CLI Guidelines — Guía de diseño de CLIs.
- 12 Factor CLI Apps — Heroku, 2012. Principios aplicables al diseño de CLIs.
- oclif — Salesforce, 2024. Framework para construir CLIs en Node.js.