Skip to content
Roman Shirokov edited this page Aug 7, 2026 · 15 revisions

TUI Compose

License: MIT Go Version

Легковесный фреймворк для удобной разработки TUI-интерфейсов на Go с поддержкой мыши, готовыми виджетами и автоматической системой фокуса без зависимостей. Идеально подходит для дашбордов, консольных утилит и интерактивных CLI-приложений.

Быстрый старт

package main

import (
	"strconv"

	"github.com/romanSPB15/tui-compose/v3"
)

func main() {
	wnd := tui.NewWindow()
	wnd.SetTitle("Моё приложение")

	label := tui.NewStaticLabel("Привет, TUI!").WithStyle(tui.FrCyan)

	btnQuit := tui.NewButton("Выход", func() {
		wnd.Quit()
	})

	v := 0

	btnAdd := tui.NewButton("+", func() {
		v++
		label.SetText(strconv.Itoa(v))
	}).WithStyle(tui.BgRed)

	btnSub := tui.NewButton("-", func() {
		if v > 0 {
			v--
			label.SetText(strconv.Itoa(v))
		}
	}).WithStyle(tui.BgBlue)

	box := tui.NewVBox(label, tui.NewHBox(btnAdd, btnSub), btnQuit)
	wnd.SetContent(box)

	wnd.Run()
}

Разбор кода:

  • Устанавливает окну терминала заголовок «Моё приложение»;
  • Создаёт текстовую метку и 3 кнопки;
  • Собирает UI из VBox и HBox;
  • Запускает приложение.

Для навигации можно использовать Tab/Shift+Tab. На кнопки можно нажать мышью.

Посмотреть другие примеры можно здесь.

Clone this wiki locally