Like base::interactive(), is_interactive() returns TRUE when the function runs interactively and FALSE when it runs in batch mode. It also checks, in this order:

  • The rlang_interactive global option. If set to a single TRUE or FALSE, is_interactive() returns that value immediately. This escape hatch is useful in unit tests or to manually turn on interactive features in RMarkdown outputs.

  • Whether knitr, an RStudio notebook, or testthat is in progress.

with_interactive() and scoped_interactive() set the global option conveniently.

is_interactive()

scoped_interactive(value = TRUE, frame = caller_env())

with_interactive(expr, value = TRUE)

Arguments

value

A single TRUE or FALSE. This overrides the return value of is_interactive().

frame

The environment of a running function which defines the scope of the temporary options. When the function returns, the options are reset to their original values.

expr

An expression to evaluate with interactivity set to value.