Conceptos

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

PrincipioQué significaEjemplo
Convenciones UnixFlags cortos y largos, pipes, exit codes-v / --verbose, exit 0 = éxito
FeedbackIndicar progreso y estado al usuarioProgress bars, spinners, colores
DescubribilidadFácil de aprender sin documentación externa--help útil, sugerencias ante errores
ComposabilidadOutput parseable, compatible con pipes--json flag, stdin/stdout
IdempotenciaEjecutar dos veces produce el mismo resultadocreate --if-not-exists

Herramientas para construir CLIs

LenguajeHerramienta
Node.jsCommander, oclif, yargs
PythonClick, Typer
GoCobra
Rustclap

Ejemplos de CLIs bien diseñados

  • git: subcomandos, flags consistentes
  • gh (GitHub CLI): interactivo + scriptable
  • aws: estructura service → operation
  • pnpm: 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.
Conceptos