View Source 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.



The code can be found in examples directory.


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

def deps do
    {:owl, "~> 0.11"},
    # ucwidth is an optional dependency, uncomment it for multibyte characters support (emoji, etc)
    # {:ucwidth, "~> 0.2"}

Documentation can be found at