---
source: crates/arf-console/src/cli/mod.rs
expression: help
---
A cross-platform R console written in Rust
Usage: arf [OPTIONS] [COMMAND]
Commands:
completions Generate shell completion scripts
config Configuration management
history History management
ipc Interact with a running arf session via IPC
headless Run R with IPC server only (no interactive REPL)
r R source resolution commands
help Print this message or the help of the given subcommand(s)
Options:
-e, --eval <EVAL>
Evaluate R expression and exit
-f, --file <FILE>
[R] Take input from FILE
--reprex <MODE>
Set reprex mode (off, on, or format).
Config: startup.reprex
Possible values:
- off: Evaluate normally
- on: Evaluate and show reprex output
- format: Format code with the configured formatter before reprex evaluation
-c, --config <CONFIG>
Path to configuration file
--r-home <R_HOME>
Highest-priority R source: use this explicit R_HOME path
Mutually exclusive with --with-r-version and ARF_R_VERSION.
Takes precedence over ARF_R_HOME, r_source_overrides and startup.r_source, which are not consulted at all when this is set.
Config: startup.r_source
[env: ARF_R_HOME=]
--with-r-version <R_VERSION>
Highest-priority R source: use this R version via rig
Accepts a rig alias (e.g. "release"), "default", a rig-assigned name, a full version ("4.4.1"), a partial version ("4.4" or "4", matching the latest release in that series), or a version range in the style Cargo and npm use ("^4.4", ">=4.3, <5.0").
Requires rig. Candidates are limited to R versions rig has installed (from `rig list --json`); the version string is never passed to rig.
Takes precedence over ARF_R_VERSION, r_source_overrides and startup.r_source, which are not consulted at all when this is set.
Config: startup.r_source
[env: ARF_R_VERSION=]
--no-r-source-overrides
Disable experimental directory-level R source overrides
This only disables r_source_overrides. An R source given by --r-home, --with-r-version, ARF_R_HOME or ARF_R_VERSION still applies.
Config: [experimental].r_source_overrides
--no-banner
Suppress the startup banner
Config: show_banner
--vanilla
Start R in vanilla mode (no init files, no save/restore)
--no-environ
[R] Don't read the site and user environment files
--no-site-file
[R] Don't read the site-wide Rprofile
--no-init-file
[R] Don't read the user's .Rprofile
-q, --quiet
[R] Don't print R startup message
--no-save
[R] Don't save workspace at end of session (default)
--save
[R] Save workspace at end of session
--no-restore
[R] Don't restore previously saved objects (default)
--no-restore-data
[R] Don't restore previously saved objects
--restore-data
[R] Restore previously saved objects
--no-echo
[R] Don't echo input (no-op, arf controls its own echo)
--with-ipc
Enable IPC server for external tool access (AI agents, vscode-R, etc.)
Starts the IPC server alongside the interactive REPL, allowing external tools to call `arf ipc eval`, `arf ipc send`, etc. For headless (no REPL) usage, see `arf headless` instead.
--ipc-bind <IPC_BIND>
Bind IPC socket to a specific path instead of the default (requires --with-ipc)
Unix: filesystem path (e.g. /tmp/my-arf.sock) Windows: named pipe path (e.g. \\.\pipe\my-arf)
--ipc-pid-file <IPC_PID_FILE>
Write server PID to a file on startup (requires --with-ipc)
The file is removed when the REPL exits. Startup fails if the file cannot be written, so the editor is guaranteed to own the session or get an error — there is no silent fallback.
--ipc-eval-allow-function <IPC_EVAL_ALLOW_FUNCTION>
Add an exact function target to the IPC evaluate allowlist. May be repeated; package-qualified targets use `package::function`
--ipc-eval-unrestricted
Disable the IPC evaluate allowlist for this server startup only
--history-dir <HISTORY_DIR>
Custom history directory (overrides default XDG location)
R history is stored at `{dir}/r.db`. The interactive console also stores shell history at `{dir}/shell.db`.
Config: history.mode = { dir = "..." }
[env: ARF_HISTORY_DIR=]
--no-history
Keep history only in memory for this session (no history loaded or saved)
Overrides config: history.mode = "volatile"
-h, --help
Print help (see a summary with '-h')
-V, --version
Print version