termdash alternatives and similar packages
Based on the "Advanced Console UIs" category.
Alternatively, view termdash alternatives based on common mentions on social networks and blogs.
-
Rich Interactive Widgets for Terminal UIs
Terminal UI library with rich, interactive widgets — written in Golang -
tcell
Tcell is an alternate terminal package, similar in some ways to termbox, but better in others. -
pterm
✨ #PTerm is a modern Go module to easily beautify console output. Featuring charts, progressbars, tables, trees, text input, select menus and much more 🚀 It's completely configurable and 100% cross-platform compatible. -
asciigraph
Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies. -
termtables
DISCONTINUED. A Go port of the Ruby library terminal-tables for simple ASCII table generation as well as providing markdown and HTML output -
chalk
Intuitive package for prettifying terminal/console output. http://godoc.org/github.com/ttacon/chalk -
yacspin
Yet Another CLi Spinner; providing over 80 easy to use and customizable terminal spinners for multiple OSes -
GCli
🖥 Go CLI application, tool library, running CLI commands, support console color, user interaction, progress display, data formatting display, generate bash/zsh completion add more features. Go的命令行应用,工具库,运行CLI命令,支持命令行色彩,用户交互,进度显示,数据格式化显示,生成bash/zsh命令补全脚本 -
ctc
Console Text Colors - The non-invasive cross-platform terminal color library does not need to modify the Print method -
crab-config-files-templating
Dynamic configuration file templating tool for kubernetes manifest or general configuration files
Nutrient – The #1 PDF SDK Library, trusted by 10K+ developers

Do you think we are missing an alternative of termdash or a related project?
Popular Comparisons
README
Termdash is a cross-platform customizable terminal based dashboard.
[](termdashdemo/termdashdemo.go)
The feature set is inspired by the gizak/termui project, which in turn was inspired by yaronn/blessed-contrib.
This rewrite focuses on code readability, maintainability and testability, see the [design goals](doc/design_goals.md). It aims to achieve the following [requirements](doc/requirements.md). See the [high-level design](doc/hld.md) for more details.
Public API and status
The public API surface is documented in the wiki.
Private packages can be identified by the presence of the /private/ directory in their import path. Stability of the private packages isn't guaranteed and changes won't be backward compatible.
There might still be breaking changes to the public API, at least until the project reaches version 1.0.0. Any breaking changes will be published in the [changelog](CHANGELOG.md).
Current feature set
- Full support for terminal window resizing throughout the infrastructure.
- Customizable layout, widget placement, borders, margins, padding, colors, etc.
- Dynamic layout changes at runtime.
- Binary tree and Grid forms of setting up the layout.
- Focusable containers and widgets.
- Processing of keyboard and mouse events.
- Periodic and event driven screen redraw.
- A library of widgets, see below.
- UTF-8 for all text elements.
- Drawing primitives (Go functions) for widget development with character and sub-character resolution.
Installation
To install this library, run the following:
go get -u github.com/mum4k/termdash
cd github.com/mum4k/termdash
Usage
The usage of most of these elements is demonstrated in [termdashdemo.go](termdashdemo/termdashdemo.go). To execute the demo:
go run termdashdemo/termdashdemo.go
Documentation
Please refer to the Termdash wiki for all documentation and resources.
Implemented Widgets
The Button
Allows users to interact with the application, each button press runs a callback function. Run the [buttondemo](widgets/button/buttondemo/buttondemo.go).
go run widgets/button/buttondemo/buttondemo.go
[](widgets/button/buttondemo/buttondemo.go)
The TextInput
Allows users to interact with the application by entering, editing and submitting text data. Run the [textinputdemo](widgets/textinput/textinputdemo/textinputdemo.go).
go run widgets/textinput/textinputdemo/textinputdemo.go
[](widgets/textinput/textinputdemo/textinputdemo.go)
Can be used to create text input forms that support keyboard navigation:
go run widgets/textinput/formdemo/formdemo.go
[](widgets/textinput/formdemo/formdemo.go)
The Gauge
Displays the progress of an operation. Run the [gaugedemo](widgets/gauge/gaugedemo/gaugedemo.go).
go run widgets/gauge/gaugedemo/gaugedemo.go
[](widgets/gauge/gaugedemo/gaugedemo.go)
The Donut
Visualizes progress of an operation as a partial or a complete donut. Run the [donutdemo](widgets/donut/donutdemo/donutdemo.go).
go run widgets/donut/donutdemo/donutdemo.go
[](widgets/donut/donutdemo/donutdemo.go)
The Text
Displays text content, supports trimming and scrolling of content. Run the [textdemo](widgets/text/textdemo/textdemo.go).
go run widgets/text/textdemo/textdemo.go
[](widgets/text/textdemo/textdemo.go)
The SparkLine
Draws a graph showing a series of values as vertical bars. The bars can have sub-cell height. Run the [sparklinedemo](widgets/sparkline/sparklinedemo/sparklinedemo.go).
go run widgets/sparkline/sparklinedemo/sparklinedemo.go
[](widgets/sparkline/sparklinedemo/sparklinedemo.go)
The BarChart
Displays multiple bars showing relative ratios of values. Run the [barchartdemo](widgets/barchart/barchartdemo/barchartdemo.go).
go run widgets/barchart/barchartdemo/barchartdemo.go
[](widgets/barchart/barchartdemo/barchartdemo.go)
The LineChart
Displays series of values on a line chart, supports zoom triggered by mouse events. Run the [linechartdemo](widgets/linechart/linechartdemo/linechartdemo.go).
go run widgets/linechart/linechartdemo/linechartdemo.go
[](widgets/linechart/linechartdemo/linechartdemo.go)
The SegmentDisplay
Displays text by simulating a 16-segment display. Run the [segmentdisplaydemo](widgets/segmentdisplay/segmentdisplaydemo/segmentdisplaydemo.go).
go run widgets/segmentdisplay/segmentdisplaydemo/segmentdisplaydemo.go
[](widgets/segmentdisplay/segmentdisplaydemo/segmentdisplaydemo.go)
Contributing
If you are willing to contribute, improve the infrastructure or develop a widget, first of all Thank You! Your help is appreciated.
Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for guidelines related to the Google's CLA, and code review requirements.
As stated above the primary goal of this project is to develop readable, well designed code, the functionality and efficiency come second. This is achieved through detailed code reviews, design discussions and following of the [design guidelines](doc/design_guidelines.md). Please familiarize yourself with these before contributing.
If you're developing a new widget, please see the [widget development](doc/widget_development.md) section.
Termdash uses this branching model. When you fork the repository, base your changes off the devel branch and the pull request should merge it back to the devel branch. Commits to the master branch are limited to releases, major bug fixes and documentation updates.
Similar projects in Go
Projects using Termdash
- datadash: Visualize streaming or tabular data inside the terminal.
- grafterm: Metrics dashboards visualization on the terminal.
- perfstat: Analyze and show tips about possible bottlenecks in Linux systems.
- gex: Cosmos SDK explorer in-terminal.
- ali: ALI HTTP load testing tool with realtime analysis.
Disclaimer
This is not an official Google product.
*Note that all licence references and agreements mentioned in the termdash README section above
are relevant to that project's source code only.