• This repository has been archived on 13/Oct/2021
  • Stars
    star
    2,093
  • Rank 22,070 (Top 0.5 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 8 years ago
  • Updated about 3 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,400
star
2

obsidian-projects

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

gophers

Go Artwork
223
star
4

obsidian-plugin-docs

Unofficial documentation for Obsidian plugin development.
JavaScript
183
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
35
star
9

grafana-dynamictext-panel

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

edith

An open learning platform based on Gatsby
JavaScript
27
star
11

grafana-gantt-panel

A panel plugin for Grafana to visualize Gantt charts.
TypeScript
26
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

json-schema-docs

A simple JSON Schema to Markdown generator.
Go
16
star
17

obsidian-svelte

A Svelte component library for Obsidian. Experimental.
Svelte
14
star
18

gouk16-slides

The slides from my presentation at GolangUK 2016
14
star
19

dts-docs

A command-line tool for generating Markdown documentation from .d.ts.
TypeScript
12
star
20

grafana-static-datasource

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

vscode-theme-enough

A minimal theme for Visual Studio Code.
Jsonnet
9
star
22

obsidian-creature-theme

A dark, minimal Obsidian theme for night dwellers.
9
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
3
star
31

focus

Subscribe to window focus events.
Go
2
star
32

resume-template

CSS
1
star
33

obsidian-instant-coffee

TypeScript
1
star
34

obsidian-spooky

TypeScript
1
star
35

passtray

systray for the UNIX password manager
Go
1
star
36

obsidian-projects-sample-view

TypeScript
1
star
37

marcusolsson.github.io

HTML
1
star
38

gointro

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