Repolode
phoenix-tui

phoenix-tui/phoenix

Framework de TUI para Go baseado na Elm Architecture, com layout compatível com Unicode, renderização inline ou em tela cheia e uma biblioteca de componentes.

Estrelas
45
Forks
1
Issues abertas
0
Último commit
há 2 meses

O que é?

Phoenix é um framework para Go voltado à criação de interfaces de terminal. Ele é dividido em 10 módulos independentes, que podem ser importados em conjunto ou separadamente, e segue a Elm Architecture (Model, Update, View). Cada biblioteca é organizada em camadas no estilo DDD: domínio, aplicação, infraestrutura e API.

A largura do texto é calculada com clusters de grafemas e as regras de East Asian Width, para que emojis e caracteres CJK mantenham o alinhamento do layout. A renderização pode ser feita inline, com diff por linha, ou em modo de tela alternativa completa. Uma API de controle de TTY permite executar programas externos, como editores ou shells, dentro de uma TUI e restaurar a interface em seguida.

A biblioteca de componentes inclui campos de texto, listas, tabelas, modais, barras de progresso com spinners, formulários e menus de seleção. Ela também oferece um sistema de estilos semelhante a CSS, com temas predefinidos, layout flexbox e grid, tratamento de eventos de mouse e uma área de transferência multiplataforma que funciona por SSH via OSC 52. Um guia de migração explica como migrar do Bubbletea, Lipgloss e Bubbles.

Recursos principais

  • 01Gerenciamento de estado com a Elm Architecture e modelos genéricos com segurança de tipos
  • 02Cálculo da largura de Unicode e emojis com base na UAX #11
  • 03Renderização inline com diff por linha ou em modo de tela alternativa completa
  • 04Controle de TTY para executar processos externos, como editores e shells
  • 05Biblioteca de componentes com campos de texto, tabelas, modais, formulários e barras de progresso
  • 06Terminal simulado e utilitários de teste para testar TUIs

Casos de uso

  • Criar ferramentas interativas de linha de comando em Go que precisam de formulários, listas ou menus
  • Desenvolver aplicações no estilo de shell ou editor que delegam a execução a programas externos
  • Criar TUIs que precisam exibir texto CJK ou emojis com o alinhamento correto
  • Migrar um projeto existente com Bubbletea/Lipgloss para uma base de código estruturada em DDD

Início rápido

  1. 1

    Instale o módulo umbrella

    go get github.com/phoenix-tui/phoenix@latest
  2. 2

    Crie um main.go usando o exemplo Quick Start do README e execute-o

Antes de usar

  • Requer Go 1.25 ou superior.
  • É um projeto em estágio inicial, com apenas 45 estrelas, portanto tem uma comunidade pequena e um histórico limitado.

Tópicos

Perguntas frequentes

O que é phoenix?
Framework de TUI para Go baseado na Elm Architecture, com layout compatível com Unicode, renderização inline ou em tela cheia e uma biblioteca de componentes. Phoenix é um framework para Go voltado à criação de interfaces de terminal. Ele é dividido em 10 módulos independentes, que podem ser importados em conjunto ou separadamente, e segue a Elm Architecture (Model, Update, View). Cada biblioteca é organizada em camadas no estilo DDD: domínio, aplicação, infraestrutura e API.
phoenix é gratuito? Qual é a licença?
phoenix é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
phoenix ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de phoenix foi em 25 de ago. de 2026.
Para que posso usar phoenix?
Criar ferramentas interativas de linha de comando em Go que precisam de formulários, listas ou menus Desenvolver aplicações no estilo de shell ou editor que delegam a execução a programas externos Criar TUIs que precisam exibir texto CJK ou emojis com o alinhamento correto Migrar um projeto existente com Bubbletea/Lipgloss para uma base de código estruturada em DDD
Como instalar phoenix?
Instale o módulo umbrella: go get github.com/phoenix-tui/phoenix@latest Crie um main.go usando o exemplo Quick Start do README e execute-o
Onde consigo phoenix?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/phoenix-tui/phoenix

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados