
as of December 2025
Web Tools
“you can ask it questions about Shiny, or to create a Shiny application from scratch, or ask it to make changes to an existing application.” - Shiny Assistant, Winston Chang
Head over to Shiny Assistant and you will see the following:

Enter “Open the editor” and an IDE opens with a script editor, console, and viewer pane:

Shiny Assistant builds apps in R or Python.

Chat settings can be set to Verbose, Concise, or Code Only:

User’s can also enter an API key from a specific model provider:

Files can be uploaded and download into the UI.

Download all files by clicking on the cloud icon.
“ellmer makes it easy to use large language models (LLM) from R.”
chat_ functionschat_*() functions simplify connections to LLM providers
.Renviron and add ANTHROPIC_API_KEYmodel versionsystem_prompt argumentChat objectsView the demo prompts and responses in the GitHub repo.
Configuring LLM provider with ellmer:
.Rprofile.chores_chat with the proper ellmer::chat_*() functionUsers can create custom helpers (prompts) by writing instructions in Markdown files.
Helper prompts must be named either replace, prefix, or suffix.
replace: removes the highlighted text and replaces it with a response.
prefix: inserts a response above the highlighted text.
suffix: places the response below the highlighted text.
Add a custom helper to the chores addin with chores::prompt_new():
Or create and install a small chores extension package.
View the demo prompts and responses in the GitHub repo.
gander goes beyond ellmer and chores by extending the use of LLM models to,
“talk[ing] to the objects in your R environment.”
gander with ellmer.ANTHROPIC_API_KEY, OPENAI_API_KEY, etc. to .Renviron.gander_chat in .RprofileThe gander addin includes a text box and options for Prefix, Replace, or Suffix

View the background/context passed to the model using gander_peek()
The system portion provides the system prompt sent to the model, ‘shaping its responses to your needs.’1
── system ───────────────────────────────────────────────────────────────
You are a helpful but terse R data scientist. Respond only with valid R code:
no exposition, no backticks. Always provide a minimal solution and refrain
from unnecessary additions. Use tidyverse style and, when relevant, tidyverse
packages. For example, when asked to plot something, use ggplot2, or when
asked to transform data, using dplyr and/or tidyr unless explicitly
instructed otherwise. The user prompt section gives the model information on the R environment, file contents, etc.
The assistant is the response from the model (given the system and user prompts)
View the demo prompts and responses in the GitHub repo.
The btw package is fundamentally different than chores and gander because it,
“provides a default set of tools to to peruse the documentation of packages you have installed, check out the objects in your global environment, and retrieve metadata about your session and platform.”1
Set up btw like chores or gander
options(
btw.client = ellmer::chat_anthropic(
system_prompt =
"You are an expert R/Python programmer who loves explaining
complex topics to non-technical audiences.
- When writing R code, use base R functions, but follow the
tidyverse style guide.
- Avoid using `for` loops and prefer functional programming
patterns like `apply()` or `purrr`.
- When creating graphs/plots, use `ggplot2`.
- If writing R Shiny code, use `bslib` for all layout
functions (unless explicitly instructed otherwise).
- If writing Python Shiny code, use shiny core (not express)
to build apps and include explanations in comments. ",
model = "claude-sonnet-4-5-20250929"
)
)btw also provides the use_btw_md() function, which creates a project ‘context file.’
The btw.md file comes with some default content for project context:
“Use btw.md to inform the LLM of your preferred code style, to provide domain-specific terminology or definitions, to establish project documentation, goals and constraints, to include reference materials such or technical specifications, or more.”
Use btw to work interactively by creating a btw-enhanced chat client and passing messages directly:
# System and Session Context
Please account for the following R session and system
settings in all responses.
<system_info>
R_VERSION: R version 4.5.1 (2025-06-13)
OS: macOS Tahoe 26.1
SYSTEM: x86_64, darwin20
UI: Positron (a VS Code equivalent)
LANGUAGE: (EN)
LOCALE: en_US.UTF-8
ENCODING: en_US.UTF-8
TIMEZONE: America/Phoenix
DATE: Thursday, December 4, 2025 (2025-12-04)
</system_info>btw includes registered tools the model can use to explore the R session and environment
# Tools
You have access to tools that help you interact with the user's R session
and workspace. Use these tools when they are helpful and appropriate to
complete the user's request. These tools are available to augment your
ability to help the user, but you are smart and capable and can answer
many things on your own. It is okay to answer the user without relying on
these tools.btw also includes a project context in the system prompt:
The btw_task_create_btw_md() function opens a Shiny app in the Viewer to guide users through developing their btw.md file.

The context file starts by ‘exploring your project structure to understand what we're working with’, which aligns with the description for the btw_tool_files_list_files() tool:
This returns a markdown formatted table of the project contents (file/folder names, their size, and when they were last changed).

The tool outputs are sent to the LLM, which then provides a summary of the contents:

btw asks a series of questions to ensure it understands the project context properly:

Positron Assistant is an
“AI client that provides LLM integration within Positron, both for chat and for inline completions.”
Works with Anthropic for chat, GitHub Copilot for inline code completions, and GitHub Copilot for chat.
Follow the instructions for enabling and configuring Positron Assistant.

Databot is,
“an AI assistant designed to dramatically accelerate exploratory data analysis for data scientists fluent in Python or R, allowing them to do in minutes what might usually take hours. It’s a complement to the data scientist, not a replacement.”
Follow the instructions for installing and enabling Databot.

Databot will guide you through data exploration after allowing the tools to run on your machine.

Web Tools