https://github.com/sha1n/termite
A library of rich terminal app utilities and visual elements such as progress indicators, cursor control and APIs for rendering and updating content in-place.
https://github.com/sha1n/termite
cli go golang progress-bar terminal terminal-based termite
Last synced: about 1 year ago
JSON representation
A library of rich terminal app utilities and visual elements such as progress indicators, cursor control and APIs for rendering and updating content in-place.
- Host: GitHub
- URL: https://github.com/sha1n/termite
- Owner: sha1n
- License: mit
- Created: 2020-09-24T21:11:42.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2025-04-01T18:00:44.000Z (over 1 year ago)
- Last Synced: 2025-04-12T04:52:08.728Z (about 1 year ago)
- Topics: cli, go, golang, progress-bar, terminal, terminal-based, termite
- Language: Go
- Homepage: https://sha1n.github.io/termite
- Size: 838 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/sha1n/termite/actions/workflows/go.yml)

[](https://goreportcard.com/report/github.com/sha1n/termite)
[](https://coveralls.io/github/sha1n/termite?branch=master)
[](https://github.com/sha1n/termite/releases)
[](https://opensource.org/licenses/MIT)
[](https://github.com/sha1n/termite/actions/workflows/go-report-card.yml)
[](https://github.com/sha1n/termite/actions/workflows/release-drafter.yml)

- [TERMite](#termite)
- [Install](#install)
- [Examples](#examples)
- [Spinner](#spinner)
- [Progress Bar](#progress-bar)
- [Showcase](#showcase)
# TERMite
Termite is my playground for terminal app utilities and visual elements such as progress bars and indicators, cursor control and screen updates.
## Install
```bash
go get github.com/sha1n/termite
```
## Examples
### Spinner
```go
refreshInterval := time.Millisecond * 100
spinner := termite.NewSpinner(termite.StdoutWriter, "Processing...", refreshInterval, termite.DefaultSpinnerFormatter())
if _, e := spinner.Start(); e == nil {
doWork()
_ = spinner.Stop("Done!")
}
```
### Progress Bar
```go
termWidth, _, _ := termite.GetTerminalDimensions()
progressBar := termite.NewProgressBar(termite.StdoutWriter, tickCount, width, termWidth, termite.DefaultProgressBarFormatter())
if tick, cancel, err := progressBar.Start(); err == nil {
defer cancel()
doWork(tick)
}
```
## Showcase
The code for this demo can be found in [internal/main.go](https://github.com/sha1n/termite/blob/bd468fd578e96f32392d5e6abd0412b1dfd9edfa/internal/main.go) (`go run internal/main.go`).
