Skip to content

Toolkit to create simple Terminal UIs using plain bash builtins

License

Notifications You must be signed in to change notification settings

timo-reymann/bash-tui-toolkit

Repository files navigation

Bash TUI Toolkit

LICENSE CircleCI GitHub Release Renovate pre-commit GitHub Downloads (all assets, all releases)


Toolkit to create interactive and shiny terminal UIs using plain bash builtins

Features

  • clean and standardized API
  • provide a simple and clear default set of elements to use creating an interactive terminal UI
  • clean and minimalistic design
  • zero dependencies to be installed
  • parts can be used modular

Requirements

Installation

  1. Download the bundle (entire lib) or single compoennt from releases
  2. Source the bundle in your script or embed

Usage

For a list of available modules and their documentation please check the docs/modules folder

For a complete playground demo check test.sh.

Motivation

Providing a clean bash UI sometimes becomes a mess and interactivity is hard to achieve especially when it should be portable.

The target is to provide a simple-to-use toolkit that can be dropped into any bash script and is compatible no matter the target system.

Documentation

  • Modules - Modules available and their usage
  • Compability table - Known combinations of OS/Bash Version/Terminal emulators that work guaranteed

Contributing

I love your input! I want to make contributing to this project as easy and transparent as possible, whether it's:

  • Reporting a bug
  • Discussing the current state of the configuration
  • Submitting a fix
  • Proposing new features
  • Becoming a maintainer

To get started please read the Contribution Guidelines.

Development

Requirements

Build

make build

Update documentation

To update the module documentation you just need to run

make generate-docs

This builds the documentation inside a docker container and updates the repo locally. Afterwards just commit the docs with your code changes

Credits

Alternatives