• This repository has been archived on 13/Oct/2021
  • Stars
    star
    2,082
  • Rank 21,279 (Top 0.5 %)
  • Language
    Go
  • License
    MIT License
  • Created over 7 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A UI library for terminal applications.

tui: Terminal UI for Go

Build Status GoDoc Go Report Card License MIT

A UI library for terminal applications.

tui (pronounced tooey) provides a higher-level programming model for building rich terminal applications. It lets you build layout-based user interfaces that (should) gracefully handle resizing for you.

IMPORTANT: tui-go is still in an experimental phase so please don't use it for anything other than experiments, yet.

Update: I created tui-go as an experiment because I wanted a simpler way of creating terminal-based user interfaces. It has since then become a project, with all the work that comes with it. While it's been really fun, unfortunately I'm no longer able to maintain this project.

Since I started working on tui-go, a number of similar projects have popped up. One that I think shows great promise is rivo/tview, which embodies much of what I envisioned for tui-go. I highly recommend trying it out!

Thanks all of you who have contributed and supported tui-go!

Screenshot

Installation

go get github.com/marcusolsson/tui-go

Usage

package main

import "github.com/marcusolsson/tui-go"

func main() {
	box := tui.NewVBox(
		tui.NewLabel("tui-go"),
	)

	ui, err := tui.New(box)
	if err != nil {
		panic(err)
	}
	ui.SetKeybinding("Esc", func() { ui.Quit() })

	if err := ui.Run(); err != nil {
		panic(err)
	}
}

Getting started

If you want to know what it is like to build terminal applications with tui-go, check out some of the examples.

Documentation is available at godoc.org.

Make sure you check out some of the projects using tui-go.

Once you've gotten started developing your first application with tui-go, you might be interested in learning about common patterns or how you can debug your applications.

Related projects

tui-go is mainly influenced by Qt and offers a similar programming model that has been adapted to Go and the terminal.

For an overview of the alternatives for writing terminal user interfaces, check out this article by AppliedGo.

License

tui-go is released under the MIT License.

Contact

If you're interested in chatting with users and contributors, join #tui-go on the Gophers Slack. If you're not already a part of the Slack workspace, you can join here. If you prefer a lower-bandwidth interface, see this article on connecting to Slack via IRC or XMPP.

More Repositories

1

goddd

Exploring DDD in Go
Go
2,357
star
2

obsidian-projects

Plain text project planning in Obsidian
Svelte
1,058
star
3

gophers

Go Artwork
176
star
4

obsidian-plugin-docs

Unofficial documentation for Obsidian plugin development.
JavaScript
176
star
5

obsidian-vale

A Vale client for Obsidian.
TypeScript
85
star
6

pathfinder

Routing context for DDD Sample App, in Go.
HTML
57
star
7

dddelivery-angularjs

An AngularJS application for the DDD Sample App.
HTML
38
star
8

grafana-hourly-heatmap-panel

A panel plugin for Grafana to visualize hourly heatmaps.
TypeScript
34
star
9

edith

An open learning platform based on Gatsby
JavaScript
27
star
10

grafana-dynamictext-panel

A panel plugin for Grafana for dynamic, data-driven text.
TypeScript
27
star
11

grafana-gantt-panel

A panel plugin for Grafana to visualize Gantt charts.
TypeScript
25
star
12

obsidian-pipe-tricks

Adds support for Wikilink pipe tricks in Obsidian.
TypeScript
21
star
13

grafana-calendar-panel

A Calendar panel plugin for Grafana
TypeScript
19
star
14

grafana-hexmap-panel

A Grafana panel plugin for hexagonal tiling of data.
TypeScript
18
star
15

grafana-ynab-datasource

Go
16
star
16

gouk16-slides

The slides from my presentation at GolangUK 2016
14
star
17

json-schema-docs

A simple JSON Schema to Markdown generator.
Go
14
star
18

dts-docs

A command-line tool for generating Markdown documentation from .d.ts.
TypeScript
11
star
19

obsidian-svelte

A Svelte component library for Obsidian. Experimental.
Svelte
10
star
20

grafana-static-datasource

A data source plugin for Grafana for static data.
TypeScript
10
star
21

obsidian-creature-theme

A dark, minimal Obsidian theme for night dwellers.
9
star
22

vscode-theme-enough

A minimal theme for Visual Studio Code.
Jsonnet
7
star
23

go-workshop

Go
7
star
24

serialized-go

Go client for the Serialized.io REST API
Go
4
star
25

freq

Display frequency distributions from the command-line.
Go
4
star
26

marcusolsson

3
star
27

terraform-provider-serialized

Terraform Provider for Serialized.IO
Go
3
star
28

dotfiles

My config files
Vim Script
3
star
29

go-workshop-exercises

Exercises for go-workshop
Go
3
star
30

grafana-plugin-support

Helpers for Grafana plugin development
TypeScript
2
star
31

focus

Subscribe to window focus events.
Go
2
star
32

obsidian-instant-coffee

TypeScript
1
star
33

passtray

systray for the UNIX password manager
Go
1
star
34

obsidian-projects-sample-view

TypeScript
1
star
35

marcusolsson.github.io

HTML
1
star
36

gointro

Parse datsets from the DAT-o-MATIC.
Go
1
star