R CLI App
Build command-line apps in R using the Rapp package.
Install
npx skills add posit-dev/skills --skill r-cli-app -g -a claude-code -y- Repository
- posit-dev/skills551
- Category
- Design
- Updated
- 7d ago
- License
- MIT
- Context cost
- Mediumabout 2,743 tokens
- Runs scripts
- No, instructions only
What it does
Build command-line apps in R using the Rapp package. Use when creating a CLI tool in R, adding argument parsing to an R script, turning an R script into a command-line app, shipping CLIs in an R package, or using Rapp (the alternative Rscript front-end). Also use for shebang scripts, exec/ directory in R packages, or subcommand-based R tools.
Building CLI Apps with Rapp
Rapp (v0.3.0) is an R package that provides a drop-in replacement for Rscript
that automatically parses command-line arguments into R values. It turns simple
R scripts into polished CLI apps with argument parsing, help text, and subcommand
support, with zero boilerplate.
R ≥ 4.1.0 | CRAN: install.packages("Rapp") | GitHub: r-lib/Rapp
After installing, put the Rapp launcher on PATH:
Rapp::install_pkg_cli_apps("Rapp")
This places the Rapp executable in ~/.local/bin (macOS/Linux) or
%LOCALAPPDATA%\Programs\R\Rapp\bin (Windows).
Core Concept: Scripts Are the Spec
Rapp scans top-level expressions of an R script and converts specific patterns into CLI constructs. This means:
- The same script works identically via
source()and as a CLI tool. - You write normal R code, Rapp infers the CLI from what you write.
- Default values in your R code become the CLI defaults.
Only top-level assignments are recognized. Assignments inside functions, loops, or conditionals are not parsed as CLI arguments.
Pattern Recognition: R → CLI Mapping
This table is the heart of Rapp, each R pattern automatically maps to a CLI surface:


