A Go library of ready-made interactive widgets (forms, tables, trees, lists, text areas) for building terminal user interfaces.
mum4k/termdash
A cross-platform Go library for building customizable, resizable dashboards and interactive widgets in the terminal.
- Stars
- 3,044
- Forks
- 150
- Open issues
- 49
- Last commit
- last month
What is it?
Termdash is a Go library for building terminal dashboards. It lays out widgets in a binary tree or grid, handles terminal window resizing, and redraws the screen periodically or in response to events. Developers can place widgets with custom borders, margins, padding and colors, and change the layout at runtime.
The library ships with a broad widget set covering charts (line, bar, pie, donut, sparkline, heat map), progress and status displays (gauge, text, timeline, segment display), and input controls (button, text input, checkbox, dropdown, radio, slider, tab, modal). Keyboard and mouse events are processed, and containers and widgets can receive focus.
The project is positioned as a readable, testable codebase. Public APIs may still change before version 1.0.0, and the project lists its breaking changes in a changelog.
Key features
- 01Binary tree and grid layouts with full terminal resize support.
- 02Dynamic layout changes at runtime, including focusable containers and widgets.
- 03Keyboard and mouse event handling.
- 04Wide widget library covering charts, progress displays and input controls.
- 05UTF-8 text support and drawing primitives for custom widget development.
Use cases
- Building live monitoring dashboards for servers, metrics or system resources in a terminal.
- Creating interactive terminal tools with forms, tabs and modal dialogs in Go.
- Visualizing streaming data such as logs, load test results or blockchain activity in the terminal.
Quick start
- 1
Install the library with go get
go get -u github.com/mum4k/termdash - 2
Run the demo application from the repository
go run termdashdemo/termdashdemo.go
Things to know
- Termdash is a Go library, so it is only useful to developers building Go terminal applications.
- The README says breaking changes to the public API are still possible until version 1.0.0.
Topics
FAQ
- What is termdash?
- A cross-platform Go library for building customizable, resizable dashboards and interactive widgets in the terminal. Termdash is a Go library for building terminal dashboards. It lays out widgets in a binary tree or grid, handles terminal window resizing, and redraws the screen periodically or in response to events. Developers can place widgets with custom borders, margins, padding and colors, and change the layout at runtime.
- Is termdash free to use? What license does it have?
- termdash is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is termdash still maintained?
- Updated within 6 months. The last commit to termdash was on Sep 14, 2026.
- What can I use termdash for?
- Building live monitoring dashboards for servers, metrics or system resources in a terminal. Creating interactive terminal tools with forms, tabs and modal dialogs in Go. Visualizing streaming data such as logs, load test results or blockchain activity in the terminal.
- How do I install termdash?
- Install the library with go get: go get -u github.com/mum4k/termdash Run the demo application from the repository: go run termdashdemo/termdashdemo.go
- Where can I get termdash?
- The source code and installation instructions are on GitHub: https://github.com/mum4k/termdash
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A terminal text editor and IDE with zero configuration, familiar keybindings, mouse support, LSP integration, and a command palette.
A Rust crate for building terminal user interfaces (TUIs) with reusable widgets and a simple rendering model.
A header-based C++ library for building terminal user interfaces with a functional, component-driven style, with no external dependencies.
A customizable terminal dashboard written in Go that shows your frequently checked stats and data in modules, such as GitHub, calendar, and DigitalOcean.
A config-driven terminal dashboard built on Bubble Tea, where one YAML file defines shell-command data sources and a grid of widgets.