Skip to content


Repository files navigation 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

You can install from CRAN repository:


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


How to use

Just add one of the 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.

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

Basic features

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

  • show information about git branch, commit and changes:

  • add “powered by” information with link:"Appsilon", link = "")

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

# in app ui

  • show a busy spinner when app is calculating:

  • group multiple messages in one panel:,"Appsilon", link = ""),
    position = "bottom left"

Advanced features

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

# in app server
some_value <- reactiveVal("a test value to display")
output$test_info_value <-

  • render information about the session:
# in app ui"session_info_value")

# in app server
output$session_info_value <-

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

# in app server

  • toggle display with a key shortcut:"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
    message = glue("I am running on repository {REPO}
    and this is version: {VERSION}"),
    position = "top right",
    type = "custom_message"

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

# in app server
a <- reactive({

output$test_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 is a Posit (formerly RStudio) Full Service Certified Partner.
Learn more at

Get in touch

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

We are hiring!