What is Owl and when to use it
mainOwl is a toolkit for writing command-line user interfaces (CLI) in Elixir. It is designed to enhance regular scripts and CLI tools with interactivity without turning them into full-screen terminal applications.
Use Owl when:
You want to enhance a standard top-to-bottom CLI tool with:
- Colored text using tags
- Input controls (with validation and type casting)
- Select/multi-select menus (AUR-inspired)
- Tables and ASCII boxes
- Progress bars and spinners (including simultaneous multiple bars)
- Live updating of multi-line blocks
- Running shell commands with secure logging and masked secrets
- True-color (24-bit) ANSI sequences and OSC 8 hyperlinks
Do NOT use Owl when:
You are building a full-screen terminal application (like htop or lazygit). For full-screen TUIs, consider libraries like TermUI, Ratatouille, or ExNcurses. For very complex interfaces, a Phoenix LiveView may be easier to maintain than a TUI.