CliClack Logo

Effortlessly build beautiful command-line apps with Rust 🦀✨

[![github.com](https://img.shields.io/badge/cliclack-blue?logo=github&labelColor=black)](https://github.com/fadeevab/cliclack) [![crates.io](https://img.shields.io/crates/v/cliclack.svg)](https://crates.io/crates/cliclack) [![docs.rs](https://docs.rs/cliclack/badge.svg)](https://docs.rs/cliclack/) [![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/fadeevab/cliclack/blob/main/LICENSE) Beautiful, minimal, opinionated CLI prompts inspired by the [@clack/prompts](https://www.npmjs.com/package/@clack/prompts) `npm` package. ```sh cargo add cliclack ```

cliclack in action

```sh cargo run --example basic cargo run --example log ```
CliClack Example
💎 Fancy minimal UI
✅ Simple API
🎨 Theme support
### Setup The `intro` and `outro`/`outro_cancel` functions will print a message to begin and end a prompt session respectively. ```rust use cliclack::{intro, outro}; intro("create-my-app")?; // Do stuff outro("You're all set!")?; ``` ### Input The input prompt accepts a single line of text trying to parse it into a target type. Multiline input can be enabled using the `multiline()` switch. ```rust use cliclack::input; let path: String = input("Where should we create your project?") .placeholder("./sparkling-solid") .validate(|input: &String| { if input.is_empty() { Err("Please enter a path.") } else if !input.starts_with("./") { Err("Please enter a relative path") } else { Ok(()) } }) .interact()?; ``` ### 🎨 Theme A custom theme can be applied for UI rendering. An example of theme customization: ```sh cargo run --example theme ```
CliClack Magenta Theme
### 🚥 Progress Bar Starting from `cliclack = "0.2.3"`, progress bars and multi-progress bars are supported.
CliClack Multi Progress Bar
### See more - [Documentation](https://docs.rs/cliclack) - [Examples](https://github.com/fadeevab/cliclack/tree/main/examples)