Beautiful, minimal, opinionated CLI prompts inspired by the Clack NPM package
Rust
375
146 commits
updated Aug 10, 2026
Beautiful, minimal, opinionated CLI prompts inspired by the
@clack/prompts npm package.
cargo add cliclack
cliclack in actioncargo run --example basic
cargo run --example log
π Fancy minimal UI
β
Simple API
π¨ Theme support
The intro and outro/outro_cancel functions will
print a message to begin and end a prompt session respectively.
use cliclack::{intro, outro};
intro("create-my-app")?;
// Do stuff
outro("You're all set!")?;
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, and autocomplete
using autocomplete().
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()?;
A custom theme can be applied for UI rendering. An example of theme customization:
cargo run --example theme
Starting from cliclack = "0.2.3", progress bars and multi-progress bars are supported.
Starting from cliclack = "0.5.0", the input prompt supports autocompletion.
141 followers Β· starred Jun 2024
75 followers Β· starred Oct 2023
64 followers Β· starred May 2024
192 followers Β· starred May 2024
Beautiful, minimal, opinionated CLI prompts inspired by the Clack NPM package
Rust
375
146 commits
updated Aug 10, 2026
Beautiful, minimal, opinionated CLI prompts inspired by the
@clack/prompts npm package.
cargo add cliclack
cliclack in actioncargo run --example basic
cargo run --example log
π Fancy minimal UI
β
Simple API
π¨ Theme support
The intro and outro/outro_cancel functions will
print a message to begin and end a prompt session respectively.
use cliclack::{intro, outro};
intro("create-my-app")?;
// Do stuff
outro("You're all set!")?;
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, and autocomplete
using autocomplete().
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()?;
A custom theme can be applied for UI rendering. An example of theme customization:
cargo run --example theme
Starting from cliclack = "0.2.3", progress bars and multi-progress bars are supported.
Starting from cliclack = "0.5.0", the input prompt supports autocompletion.
141 followers Β· starred Jun 2024
75 followers Β· starred Oct 2023
64 followers Β· starred May 2024
192 followers Β· starred May 2024