SHell Markup Language | Style Framework for The Terminal
Clone or download
Latest commit e0a6b80 Apr 21, 2018


SHML v.1.1.0

Build Status

SHML is a shell framework for faster and easier script development.


HTML has CSS, terminals have "ANSI/VT100 Control Sequences". SHML makes is easy to apply some style to your shell scripts without trying to remember that Yellow = \033[33m instead Yellow is $(color yellow).

1-liner Install

# Unix-like
$ sudo bash -c 'curl -L -o /usr/local/bin/shml && chmod +x /usr/local/bin/shml'

# Homebrew
$ brew install shml

# npm
$ npm install -g shml


You can just download SHML without installing it...


$ git clone


$ wget


In order to use SHML you must tell your shell environment where it is located. Lets assume that we are writing a BASH script and want to use SHML.

If you installed in using the 1-liner above you would do:

#!/usr/bin/env bash
source $(which shml)

If you downloaded SHML using git or wget you would do:

#!/usr/bin/env bash
source ./


#!/usr/bin/env bash
source "$(which shml)"

echo "
$(fgcolor red)
This will make the text red...
$(fgcolor end)

View all examples:


Contributions are more than welcome. Before submitting ANY new features please read the Contribution Guidelines.

To report any bugs or if you have a feature request feel free to open an issue.

Updating The Docs

Updating the docs requires Ruby/Jekyll to generate & view locally.

Run once:

$ cd docs/
$ gem install bundler
$ bundle install

Generate and serve:

$ bundle exec jekyll s --watch

Then go to: http://localhost:4000/shml/