shiny.info icon indicating copy to clipboard operation
shiny.info copied to clipboard

Display simple diagnostic info of your Shiny app

shiny.info Rhino logo

Display simple information of the shiny project in the user interface of the app.

CRAN
status R build
status Codecov test
coverage

How to install shiny.info?

You can install shiny.info from CRAN repository:

install.packages("shiny.info")

You can get the most recent version from this repo using remotes.

remotes::install_github("Appsilon/shiny.info")

How to use shiny.info?

Just add one of the shiny.info functions to the UI of your app (some features require also adding a little bit of code to the server function). Check features section and documentation for more details.

See live demo.

An example of a shiny app that uses shiny.info can be found in ./examples directory.

Basic features

  • display a simple text message:
shiny.info::display("Hello user!", position = "top right")

  • show information about git branch, commit and changes:
shiny.info::git_info()

  • add “powered by” information with link:
shiny.info::powered_by("Appsilon", link = "appsilon.com")

  • show app version:
# global variable:
VERSION <- "1.2.2"

# in app ui
shiny.info::version()

  • show a busy spinner when app is calculating:
shiny.info::busy()

  • group multiple messages in one panel:
shiny.info::info_panel(
    shiny.info::git_info(),
    shiny.info::powered_by("Appsilon", link = "appsilon.com"),
    position = "bottom left"
)

Advanced features

  • render value (eg. input, reactive value) from the server:
# in app ui
shiny.info::info_value("test_info_value")

# in app server
some_value <- reactiveVal("a test value to display")
output$test_info_value <- shiny.info::render_info_value(some_value())

  • render information about the session:
# in app ui
shiny.info::info_value("session_info_value")

# in app server
output$session_info_value <- shiny.info::render_session_info()

  • debug app using browser() function just by clicking a button:
# in app ui
shiny.info::inspect_btn_ui()

# in app server
shiny.info::inspect_btn_server(input)

  • toggle display with a key shortcut:
shiny.info::toggle_info("Ctrl+Shift+K")

  • show custom message using global variables:
# in app global
VERSION = "1.2.2"
REPO = git2r::repository_head(repository("."))[[1]]
GIT_COMMIT_MESSAGE = git2r::commits(repository("."))[[1]]$message
GIT_COMMIT_HASH = git2r::commits(repository("."))[[1]]$sha

# in app ui
shiny.info::display(
    message = glue("I am running on repository {REPO}
    from [{GIT_COMMIT_HASH}]: {GIT_COMMIT_MESSAGE},
    and this is version: {VERSION}"),
    position = "top right",
    type = "custom_message"
)

  • show custom message using reactive variables:
# in app ui
shiny.info::info_value("test_info_value", position = "top right")

# in app server
a <- reactive({
  input$xcol
  rnorm(1,1)
})

output$test_info_value <- shiny.info::render_info_value(
  glue("a: {a()}, X Variable: {input$xcol}"),
  add_name = FALSE
)

How can I contribute?

If you want to contribute to this project please submit a regular PR once you’re done with your new feature or bug fix.

Appsilon

Appsilon is a Posit (formerly RStudio) Full Service Certified Partner.
Learn more at appsilon.com.

Get in touch [email protected]

Explore the Rhinoverse - a family of R packages built around Rhino!

We are hiring!