phoenix-tui/phoenix
Elm Architecture 기반의 Go 터미널 UI 프레임워크로, Unicode를 고려한 레이아웃, 인라인 및 전체 화면 렌더링, 컴포넌트 라이브러리를 제공합니다.
- 스타
- 45
- 포크
- 1
- 열린 이슈
- 0
- 마지막 커밋
- 2개월 전
어떤 프로젝트인가요?
Phoenix는 터미널 사용자 인터페이스를 만들기 위한 Go 프레임워크입니다. 서로 독립적인 10개 모듈로 구성되어 함께 또는 개별적으로 가져다 쓸 수 있으며, Elm Architecture(Model, Update, View)를 따릅니다. 각 라이브러리는 도메인, 애플리케이션, 인프라, API로 이루어진 DDD 스타일 계층 구조로 구성됩니다.
텍스트 너비는 grapheme cluster와 East Asian Width 규칙을 사용해 계산하므로 이모지와 CJK 문자를 표시할 때도 레이아웃 정렬을 유지하도록 설계되었습니다. 렌더링은 줄별 diff를 적용하는 인라인 방식이나 전체 alt-screen 모드로 동작합니다. TTY 제어 API를 사용하면 TUI 내부에서 에디터나 셸 같은 외부 프로그램을 실행한 뒤 인터페이스를 복원할 수 있습니다.
컴포넌트 라이브러리에는 텍스트 입력, 목록, 테이블, 모달, 스피너가 포함된 진행률 표시줄, 폼, 선택 메뉴가 있습니다. 테마 프리셋, flexbox 및 grid 레이아웃을 지원하는 CSS 스타일의 스타일링 시스템, 마우스 이벤트 처리 기능도 제공하며, OSC 52를 통해 SSH에서도 사용할 수 있는 크로스 플랫폼 클립보드도 지원합니다. Bubbletea, Lipgloss, Bubbles에서 이전하는 방법은 마이그레이션 가이드에서 다룹니다.
핵심 기능
- 01제네릭 타입 안전 모델을 사용하는 Elm Architecture 상태 관리
- 02UAX #11 기반의 Unicode 및 이모지 너비 계산
- 03줄별 diff를 적용하는 인라인 렌더링 또는 전체 alt-screen 모드
- 04에디터나 셸 같은 외부 프로세스를 실행하는 TTY 제어
- 05텍스트 입력, 테이블, 모달, 폼, 진행률 표시줄이 포함된 컴포넌트 라이브러리
- 06TUI 테스트를 위한 모의 터미널 및 테스트 유틸리티
활용 사례
- 폼, 목록 또는 메뉴가 필요한 Go 대화형 CLI 도구 만들기
- 외부 프로그램으로 제어를 넘기는 셸형 또는 에디터형 애플리케이션 작성
- CJK 문자나 이모지를 올바르게 정렬해 표시해야 하는 TUI 만들기
- 기존 Bubbletea/Lipgloss 프로젝트를 DDD 구조의 코드베이스로 마이그레이션
빠른 시작
- 1
umbrella 모듈을 설치합니다
go get github.com/phoenix-tui/phoenix@latest - 2
README의 Quick Start 예제를 사용해 main.go를 만들고 실행합니다
사용 전 알아둘 점
- Go 1.25 이상이 필요합니다.
- 아직 초기 단계인 프로젝트로, 별이 45개뿐입니다. 따라서 커뮤니티 규모가 작고 검증된 실적도 제한적입니다.
토픽
자주 묻는 질문
- phoenix은(는) 무엇인가요?
- Elm Architecture 기반의 Go 터미널 UI 프레임워크로, Unicode를 고려한 레이아웃, 인라인 및 전체 화면 렌더링, 컴포넌트 라이브러리를 제공합니다. Phoenix는 터미널 사용자 인터페이스를 만들기 위한 Go 프레임워크입니다. 서로 독립적인 10개 모듈로 구성되어 함께 또는 개별적으로 가져다 쓸 수 있으며, Elm Architecture(Model, Update, View)를 따릅니다. 각 라이브러리는 도메인, 애플리케이션, 인프라, API로 이루어진 DDD 스타일 계층 구조로 구성됩니다.
- phoenix은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- phoenix은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- phoenix은(는) 아직 유지보수되고 있나요?
- 6개월 이내 업데이트. phoenix의 마지막 커밋은 2026년 8월 25일입니다.
- phoenix은(는) 어디에 사용할 수 있나요?
- 폼, 목록 또는 메뉴가 필요한 Go 대화형 CLI 도구 만들기 외부 프로그램으로 제어를 넘기는 셸형 또는 에디터형 애플리케이션 작성 CJK 문자나 이모지를 올바르게 정렬해 표시해야 하는 TUI 만들기 기존 Bubbletea/Lipgloss 프로젝트를 DDD 구조의 코드베이스로 마이그레이션
- phoenix는 어떻게 설치하나요?
- umbrella 모듈을 설치합니다: go get github.com/phoenix-tui/phoenix@latest README의 Quick Start 예제를 사용해 main.go를 만들고 실행합니다
- phoenix은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/phoenix-tui/phoenix
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
The Elm Architecture의 모델-업데이트-뷰 패턴을 사용해 터미널 UI를 만드는 Go 프레임워크입니다.
Go로 Bubble Tea 터미널 앱을 만들 때 사용하는 스피너, 텍스트 입력, 테이블, 목록, 뷰포트, 도움말 등의 재사용 가능한 TUI 컴포넌트 모음입니다.
Claude Code, OpenCode, Codex, Cursor 등 여러 코딩 에이전트의 스킬을 확인·설치·업데이트하는 터미널 UI입니다.
Bubble Tea로 만든 Go 기반의 현대적인 터미널 파일 관리자. 명령줄에서 파일을 탐색하고 관리할 수 있습니다.
터미널 UI를 만들 때 사용하는 Go 라이브러리로, 폼, 테이블, 트리, 목록, 텍스트 영역 등 바로 쓸 수 있는 대화형 위젯을 제공합니다.