Emulador de terminal multiplataforma desenvolvido com tecnologias web, extensível por meio de plugins e temas.
vadimdemedes/ink
Renderer React para criar aplicativos de linha de comando interativos com componentes e layouts Flexbox no terminal.
- Estrelas
- 40,136
- Forks
- 1,062
- Issues abertas
- 33
- Último commit
- há 19 dias
O que é?
Com o Ink, desenvolvedores podem criar interfaces de linha de comando do mesmo jeito que criam interfaces web com React, usando componentes, props e hooks. Cada elemento é organizado como um contêiner Flexbox pelo mecanismo de layout Yoga, então propriedades semelhantes às do CSS, como padding, margin, flexGrow e justifyContent, funcionam no terminal.
O pacote inclui componentes como Text, Box, Newline, Spacer, Static e Transform, além de hooks para entrada do teclado (useInput), ciclo de vida do app (useApp), acesso a stdin/stdout e gerenciamento de foco. Como é um renderer React, todos os recursos padrão do React estão disponíveis, e a documentação aborda apenas a API própria do Ink.
O Ink é usado por várias ferramentas de programação com agentes, CLIs de provedores de nuvem e ferramentas interativas para desenvolvedores, como a saída de progresso do Gatsby e do Tap.
Recursos principais
- 01Renderiza componentes React na saída do terminal.
- 02Oferece suporte a layouts Flexbox por meio do Yoga, com propriedades semelhantes às do CSS.
- 03Permite estilizar Text com recursos como cores, negrito, itálico e truncamento.
- 04Inclui hooks para entrada do teclado, gerenciamento de foco e tamanho da janela.
- 05Oferece renderização Static para logs e itens concluídos que permanecem acima da saída ao vivo.
Casos de uso
- Criar ferramentas CLI interativas com visualizações de progresso que se atualizam ao vivo.
- Criar dashboards de terminal que respondem à entrada do teclado.
- Desenvolver executores de testes ou ferramentas de build que exibem o status em tempo real.
- Desenvolver interfaces de agentes de IA ou chat que funcionam no terminal.
Início rápido
- 1
Instale Ink e React com npm
npm install ink react - 2
Crie a estrutura inicial de um novo projeto Ink CLI com create-ink-app
npx create-ink-app my-ink-cli
Antes de usar
- O README documenta a próxima versão, não a versão estável mais recente disponível no npm.
Tópicos
Perguntas frequentes
- O que é ink?
- Renderer React para criar aplicativos de linha de comando interativos com componentes e layouts Flexbox no terminal. Com o Ink, desenvolvedores podem criar interfaces de linha de comando do mesmo jeito que criam interfaces web com React, usando componentes, props e hooks. Cada elemento é organizado como um contêiner Flexbox pelo mecanismo de layout Yoga, então propriedades semelhantes às do CSS, como padding, margin, flexGrow e justifyContent, funcionam no terminal.
- ink é gratuito? Qual é a licença?
- ink é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- ink ainda é mantido?
- Manutenção ativa. O último commit de ink foi em 3 de out. de 2026.
- Para que posso usar ink?
- Criar ferramentas CLI interativas com visualizações de progresso que se atualizam ao vivo. Criar dashboards de terminal que respondem à entrada do teclado. Desenvolver executores de testes ou ferramentas de build que exibem o status em tempo real. Desenvolver interfaces de agentes de IA ou chat que funcionam no terminal.
- Como instalar ink?
- Instale Ink e React com npm: npm install ink react Crie a estrutura inicial de um novo projeto Ink CLI com create-ink-app: npx create-ink-app my-ink-cli
- Onde consigo ink?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/vadimdemedes/ink
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Biblioteca para criar interfaces de terminal, escrita em Zig e com bindings para TypeScript, React e Solid.
Uma crate Rust para criar interfaces de usuário no terminal (TUIs), com widgets reutilizáveis e um modelo de renderização simples.
Um visualizador e processador de JSON no terminal para navegar, recolher e transformar JSON de forma interativa no shell.
Um gerenciador de arquivos de terminal pequeno e rápido, escrito em C, para navegar, renomear arquivos em lote, analisar o uso do disco e abrir aplicativos.
Monitor gráfico personalizável de processos e recursos do sistema, multiplataforma e executado no terminal, para Linux, macOS e Windows.