Thanks to visit codestin.com
Credit goes to github.com

Skip to content

fuelen/owl

Repository files navigation

Owl

CI Status Hex.pm Hex.pm Downloads 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 controls with validation and casting to various data types
  • select/multi-select controls, inspired by AUR package managers
  • tables
  • editing text in the ELIXIR_EDITOR
  • wrapping multi-line, colorized data into ASCII boxes
  • printing palette colors
  • progress bars and spinners, with support for multiple bars/spinners simultaneously
  • live updating of multi-line blocks
  • capturing :stdio output and printing it above LiveScreen blocks
  • working with a virtual device that partially implements The Erlang I/O Protocol and does not conflict with live blocks.
  • running shell commands and daemons with secure logging and masked secrets
  • rendering hyperlinks (OSC 8) in supported terminals
  • true-color (24‑bit) ANSI sequences
  • word wrapping and truncation utilities for colorized multi-line text

Demo

asciicast

The code can be found in the examples directory.

Installation

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

def deps do
  [
    {:owl, "~> 0.13"},
    # 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.

About

A toolkit for writing command-line user interfaces.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 6

Languages