There are a number of global options that affect Shiny's behavior. These can be set with (for example) options(shiny.trace=TRUE).


A boolean which controls the default behavior when an app is run. See runApp for more information.

A port number that Shiny will listen on. See runApp for more information.

Print messages sent between the R server and the web browser client to the R console. This is useful for debugging. Possible values are "send" (only print messages sent to the client), "recv" (only print messages received by the server), TRUE (print all messages), or FALSE (default; don't print any of these messages).

If TRUE when a Shiny app is launched, the app directory will be continually monitored for changes to files that have the extensions: r, htm, html, js, css, png, jpg, jpeg, gif. If any changes are detected, all connected Shiny sessions are reloaded. This allows for fast feedback loops when tweaking Shiny UI.

Since monitoring for changes is expensive (we simply poll for last modified times), this feature is intended only for development.

You can customize the file patterns Shiny will monitor by setting the shiny.autoreload.pattern option. For example, to monitor only ui.R: options(shiny.autoreload.pattern = glob2rx("ui.R"))

The default polling interval is 500 milliseconds. You can change this by setting e.g. options(shiny.autoreload.interval = 2000) (every two seconds).

If TRUE, enable logging of reactive events, which can be viewed later with the showReactLog function. This incurs a substantial performance penalty and should not be used in production.

This is used to disable graphical rendering by the Cairo package, if it is installed. See plotPNG for more information.

This is a number which specifies the maximum web request size, which serves as a size limit for file uploads. If unset, the maximum request size defaults to 5MB.

Normally, invoking a reactive outside of a reactive context (or isolate()) results in an error. If this is TRUE, don't error in these cases. This should only be used for debugging or demonstrations of reactivity at the console.
The IP address that Shiny should listen on. See runApp for more information.

The number of digits to use when converting numbers to JSON format to send to the client web browser.

If this is TRUE or unset (the default), then Shiny will use minified JavaScript (shiny.min.js). If FALSE, then Shiny will use the un-minified JavaScript (shiny.js); this can be useful during development.

This can be a function which is called when an error occurs. For example, options(shiny.error=recover) will result a the debugger prompt when an error occurs.

CSS class names to use for tables.

This controls whether messages for deprecated functions in Shiny will be printed. See shinyDeprecated for more information.

Controls whether "pretty" or full stack traces are dumped to the console when errors occur during Shiny app execution. The default is FALSE (pretty stack traces).

If TRUE, then Shiny's printed stack traces will display srcrefs one line above their usual location. This is an arguably more intuitive arrangement for casual R users, as the name of a function appears next to the srcref where it is defined, rather than where it is currently being called from.

If TRUE, then normal errors (i.e. errors not wrapped in safeError) won't show up in the app; a simple generic error message is printed instead (the error and strack trace printed to the console remain unchanged). The default is FALSE (unsanitized errors).If you want to sanitize errors in general, but you DO want a particular error e to get displayed to the user, then set this option to TRUE and use stop(safeError(e)) for errors you want the user to see.

If TRUE, then enable features for testing Shiny applications. If FALSE (the default), do not enable those features.