Emulador de terminal multiplataforma basado en tecnologías web, ampliable mediante plugins y temas.
vadimdemedes/ink
Un renderizador de React para crear aplicaciones interactivas de línea de comandos con componentes y diseños Flexbox en la terminal.
- Estrellas
- 40,136
- Forks
- 1,062
- Issues abiertos
- 33
- Último commit
- hace 19 días
¿Qué es?
Ink permite crear interfaces de línea de comandos del mismo modo que se crean interfaces web con React: mediante componentes, props y hooks. Cada elemento se distribuye como un contenedor Flexbox con el motor de diseño Yoga, por lo que funcionan en la terminal propiedades similares a las de CSS, como padding, margin, flexGrow y justifyContent.
El paquete incluye componentes como Text, Box, Newline, Spacer, Static y Transform, además de hooks para la entrada del teclado (useInput), el ciclo de vida de la aplicación (useApp), el acceso a stdin/stdout y la gestión del foco. Como Ink es un renderizador de React, están disponibles todas las funciones estándar de React, y la documentación solo cubre la API propia de Ink.
Ink se usa en varias herramientas de programación con agentes, CLI de proveedores de servicios en la nube y herramientas interactivas para desarrolladores, como la salida de progreso de Gatsby y Tap.
Funciones clave
- 01Renderiza componentes de React en la terminal.
- 02Admite diseños Flexbox mediante Yoga, con propiedades similares a las de CSS.
- 03Permite aplicar estilos al texto, como colores, negrita, cursiva y truncamiento.
- 04Incluye hooks para la entrada del teclado, la gestión del foco y el tamaño de la ventana.
- 05Ofrece renderizado Static para registros y elementos completados que permanecen por encima de la salida en vivo.
Casos de uso
- Crear herramientas CLI interactivas con vistas de progreso que se actualizan en tiempo real.
- Crear paneles para la terminal que responden a la entrada del teclado.
- Escribir ejecutores de pruebas o herramientas de compilación que muestran el estado a medida que se actualiza.
- Desarrollar interfaces para agentes de IA o chats que se ejecutan en la terminal.
Inicio rápido
- 1
Instala Ink y React con npm
npm install ink react - 2
Crea la estructura inicial de un nuevo proyecto de Ink CLI con create-ink-app
npx create-ink-app my-ink-cli
Antes de usarlo
- El README documenta la próxima versión, no la última versión estable disponible en npm.
Temas
Preguntas frecuentes
- ¿Qué es ink?
- Un renderizador de React para crear aplicaciones interactivas de línea de comandos con componentes y diseños Flexbox en la terminal. Ink permite crear interfaces de línea de comandos del mismo modo que se crean interfaces web con React: mediante componentes, props y hooks. Cada elemento se distribuye como un contenedor Flexbox con el motor de diseño Yoga, por lo que funcionan en la terminal propiedades similares a las de CSS, como padding, margin, flexGrow y justifyContent.
- ¿ink es gratuito? ¿Qué licencia tiene?
- ink es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿ink sigue mantenido?
- Mantenimiento activo. El último commit de ink fue el 3 oct 2026.
- ¿Para qué puedo usar ink?
- Crear herramientas CLI interactivas con vistas de progreso que se actualizan en tiempo real. Crear paneles para la terminal que responden a la entrada del teclado. Escribir ejecutores de pruebas o herramientas de compilación que muestran el estado a medida que se actualiza. Desarrollar interfaces para agentes de IA o chats que se ejecutan en la terminal.
- ¿Cómo se instala ink?
- Instala Ink y React con npm: npm install ink react Crea la estructura inicial de un nuevo proyecto de Ink CLI con create-ink-app: npx create-ink-app my-ink-cli
- ¿Dónde consigo ink?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/vadimdemedes/ink
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Biblioteca para crear interfaces de terminal, escrita en Zig y con bindings para TypeScript, React y Solid.
Un crate de Rust para crear interfaces de usuario de terminal (TUI) con widgets reutilizables y un modelo de renderizado sencillo.
Un visor y procesador de JSON para la terminal que permite explorar, plegar y transformar JSON de forma interactiva desde el shell.
Un gestor de archivos de terminal pequeño y rápido, escrito en C, para explorar archivos, renombrarlos por lotes, analizar el uso del disco y abrir aplicaciones.
Monitor gráfico personalizable de procesos y recursos del sistema para terminal, multiplataforma y compatible con Linux, macOS y Windows.