Shiny LLM Tools

Published

2025-05-29

The applications in Chapter 23 (golem) can be accessed with the launch() or get() functions from the shinypak R package:

# install.packages('pak')
pak::pak('mjfrigaard/shinypak')
library(shinypak)

Chapter 23 applications:

list_apps(regex = '^23')
## # A tibble: 1 × 2
##   branch   last_updated       
##   <chr>    <dttm>             
## 1 23_golem 2025-03-25 11:43:13

leprechaun covers:

The applications in Chapter 24 (leprechaun) can be accessed with the launch() or get() functions from the shinypak R package:

# install.packages('pak')
pak::pak('mjfrigaard/shinypak')
library(shinypak)

Chapter 24 applications:

list_apps(regex = '^24')
## # A tibble: 1 × 2
##   branch        last_updated       
##   <chr>         <dttm>             
## 1 24_leprechaun 2025-04-06 22:46:54

The rhino chapter includes three examples of CI/CD workflows:

The applications in Chapter 25 (rhino) can be accessed with the launch() or get() functions from the shinypak R package:

# install.packages('pak')
pak::pak('mjfrigaard/shinypak')
library(shinypak)

Chapter 25 applications:

list_apps(regex = '^25')
## # A tibble: 1 × 2
##   branch   last_updated       
##   <chr>    <dttm>             
## 1 25_rhino 2025-04-09 11:52:51

Since I began writing this book1, the number of AI tools for building Shiny apps has grown significantly. The chapters in this section introduce a few popular tools I’ve personally used to develop applications in Positron . For a comprehensive review of LLMs R packages, please checkout Large Language Model tools for R online resource by Luis D. Verde Arregoitia. For the most up-to-date information on LLMs and R, I recommend Simon Couch’s blog and Posit’s AI blog.

Given the rapidly evolving landscape and nature of these tools, I expect these chapters to change frequently. Please open a GitHub issue if there is anything outdated, incorrect, or missing.

Shiny Assistant

The Shiny Assistant is a browser-based LLM chat tool you can use to help build a Shiny app. The UI gives you the ability to submit prompts (questions or instructions), view the code, and launch the application. 26  Shiny Assistant covers:

ellmer

The ellmer package allows users to,

chat with large language models from a range of providers including Claude, OpenAI, and more. Supports streaming, asynchronous calls, tool calling, and structured data extraction easy access to many LLMs in the R environment (Positron or RStudio).

This chapter starts with setting up the ellmer package.

To demonstrate using ellmer chats during development, this chapter uses an application from the shiny-examples repository.

chores

The chores package was designed to,

help you complete repetitive, hard-to-automate tasks quickly.

The first portion of this chapter covers the updates to the movie review application:

I also cover how to write extension packages with custom helper (prompts) that can be used with the addin.

gander

The gander package is,

a higher-performance and lower-friction chat experience for data scientists in RStudio and Positron–sort of like completions with Copilot, but it knows how to talk to the objects in your R environment.

This chapter starts with configuring gander and a simple example:

The following sections cover the structure of gander prompts and chats:

I extend the use of the gander addin to help make adjustments to the plotly and ggplot2 visualizations, and to create a downloadable R markdown report module:


  1. I put the first ‘complete’ edition online in late 2023.↩︎