Skip to content

fuelen/owl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0ae928f · Jul 20, 2024
Jul 20, 2024
Mar 16, 2024
Jan 25, 2022
Jul 20, 2024
Jul 20, 2024
Oct 19, 2021
Oct 19, 2021
Dec 15, 2021
Jul 20, 2024
Sep 26, 2023
Jul 20, 2024
Jul 20, 2024

Repository files navigation

Owl

CI Status Hex.pm Coverage Status

   ,_,
  {o,o}
  /)  )
---"-"--

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

asciicast

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.10"},
    # ucwidth is an optional dependency, uncomment it for multibyte characters support (emoji, etc)
    # {:ucwidth, "~> 0.2"}
  ]
end

Documentation can be found at https://hexdocs.pm/owl.