# Owl
[![CI Status](](
[![Coverage Status](](
  /)  )
Owl is a toolkit for writing command-line user interfaces in Elixir.

It provides a convenient interface for

* colorizing text using tags
* input control with validations and casting to various data types
* select/multiselect controls, inspired by AUR package managers
* tables
* editing text in `ELIXIR_EDITOR`
* wrapping multiline colorized data into ASCII boxes
* printing palette colors
* progress bars and spinners, multiple bars/spinners at the same time are supported as well
* live-updating of multiline blocks
* working with virtual device which partially implements
[The Erlang I/O Protocol]( and doesn't conflict with live blocks.

## Demo

The code can be found  in [examples]( directory.

## Installation

The package can be installed by adding `owl` to your list of dependencies in `mix.exs`:

def deps do
    {:owl, "~> 0.9"},
    # ucwidth is an optional dependency, uncomment it for multibyte characters support (emoji, etc)
    # {:ucwidth, "~> 0.2"}
Documentation can be found at [](