- Notifications
You must be signed in to change notification settings - Fork82
Tools for making beautiful & useful command line interfaces
License
Unknown and 2 other licenses found
Licenses found
r-lib/cli
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Helpers for Developing Command Line Interfaces
A suite of tools to build attractive command line interfaces (CLIs),from semantic elements: headers, lists, alerts, paragraphs, etc.Supports theming via a CSS-like language. It also contains a number oflower level CLI elements: rules, boxes, trees, and Unicode symbols withASCII alternatives. It supports ANSI markup for terminal colors and fontstyles.
- Build a CLI using semantic elements: headings, lists, alerts,paragraphs.
- Theming via a CSS-like language.
- Terminal colors and font styles.
- All cli text can contain interpreted string literals, via theglue package.
- Progress bars from R and C code.
- Error and warning messages with rich text formatting.
- Support for pluralized messages.
- ANSI styled string manipulation.
Install the stable version from CRAN:
install.packages("cli")Install the development version from GitHub:
pak::pak("r-lib/cli")Some of the more commonly used cli elements, and features.
One liner messages to inform or warn.
pkgs <- c("foo", "bar", "foobar")cli_alert_success("Downloaded {length(pkgs)} packages.")db_url <- "example.com:port"cli_alert_info("Reopened database {.url {db_url}}.")cli_alert_warning("Cannot reach GitHub, using local database cache.")cli_alert_danger("Failed to connect to database.")cli_alert("A generic alert")Three levels of headings.
cli_h1("Heading 1")cli_h2("Heading 2")cli_h3("Heading 3")Ordered, unordered and description lists, that can be nested.
fun <- function() { cli_ol() cli_li("Item 1") ulid <- cli_ul() cli_li("Subitem 1") cli_li("Subitem 2") cli_end(ulid) cli_li("Item 2") cli_end()}fun()Theming via a CSS-like language.
fun <- function() { cli_div(theme = list(span.emph = list(color = "orange"))) cli_text("This is very {.emph important}") cli_end() cli_text("Back to the {.emph previous theme}")}fun()Automatic command substitution via theglue package.
size <- 123143123dt <- 1.3454cli_alert_info(c( "Downloaded {prettyunits::pretty_bytes(size)} in ", "{prettyunits::pretty_sec(dt)}"))Pluralization support.
nfiles <- 3ndirs <- 1cli_alert_info("Found {nfiles} file{?s} and {ndirs} director{?y/ies}.")clean <- function() { cli_progress_bar("Cleaning data", total = 100) for (i in 1:100) { Sys.sleep(5/100) cli_progress_update() }}clean()See athttps://cli.r-lib.org/and also in the installed package:help(package = "cli").
Please note that the cli project is released with aContributor Code ofConduct. Bycontributing to this project, you agree to abide by its terms.
MIT © Posit Software, PBC
About
Tools for making beautiful & useful command line interfaces
Topics
Resources
License
Unknown and 2 other licenses found
Licenses found
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.