Awesome Open Source
Awesome Open Source

tml - Terminal Markup Language

Build Status GoDoc

A Go module (and standalone binary) to make the output of coloured/formatted text in the terminal easier and more readable.

You can use it in your Go programs, and bash etc. too.

Example screenshot

Usage in Go

The output of coloured/formatted text is easy using the following syntax:

package main

import ""

func main() {
    tml.Printf("<red>this text is <bold>red</bold></red> and the following is <green>%s</green>\n", "not red")

Usage in Bash

First, install tml:

go get -u

Then you can simply pipe text containing tags to tml:


echo "<red>this text is <bold>red</bold></red> and the following is <green>not red</green>" | tml


Each tag is enclosed in angle brackets, much like HTML.

You can nest tags as deeply as you like.

It's not required to close tags you've opened, though it can make for easier reading.

Available Tags

Foreground Colours

  • <red>
  • <green>
  • <yellow>
  • <blue>
  • <magenta>
  • <cyan>
  • <lightgrey>
  • <darkgrey>
  • <black>
  • <white>
  • <lightred>
  • <lightgreen>
  • <lightyellow>
  • <lightblue>
  • <lightmagenta>
  • <lightcyan>

Background Colours

  • <bg-red>
  • <bg-green>
  • <bg-yellow>
  • <bg-blue>
  • <bg-magenta>
  • <bg-cyan>
  • <bg-lightgrey>
  • <bg-darkgrey>
  • <bg-black>
  • <bg-white>
  • <bg-lightred>
  • <bg-lightgreen>
  • <bg-lightyellow>
  • <bg-lightblue>
  • <bg-lightmagenta>
  • <bg-lightcyan>


  • <bold>
  • <dim>
  • <underline>
  • <blink>
  • <reverse>
  • <hidden>

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
go (15,394
cli (1,847
terminal (753
tui (162
cli-app (109
colors (91