Claude Code and Posit Assistant¶
This page describes the coding agents in the IDE sessions, what the hub gives them, and how a customer adds their own instructions. Every IDE session has Claude Code in the terminal, and RStudio also has Posit Assistant in its pane. Both get the same knowledge from the hub, so you can ask either one to start a project, deploy it, read a failed build or set up a schedule, and it knows the commands and conventions of this hub.
Accounts¶
The hub ships no AI credentials. Claude Code asks each user to sign in with their own Anthropic
account on first use: run claude in the terminal, sign in on the page it opens in the
browser, and paste the code shown there into the terminal. Posit Assistant asks in its pane
for a Posit AI login or an API key of a model provider, and keeps it in the user's home. If a
customer wants a central API key or Bedrock for Claude Code instead, it goes into the hub's
configuration, and we set this up with them.
Where your code and data go¶
A coding agent sends what it works with to the model behind it: your prompts, the files it reads, the output of the commands it runs, and, through btw, objects from your R session. With the default setup, that goes to Anthropic for Claude Code, and to Posit or the model provider whose key you entered for Posit Assistant. It is handled under the terms of the account the user signed in with. Nothing goes to us, and deployed apps do not run through the agents.
How much leaves your network is a choice of the agent and the model:
- A company account or a central key. For company code, let users sign in with your organisation's Anthropic account, or have Claude Code use one central API key or Amazon Bedrock in a region you choose. We set up the central options with you.
- A different agent or a model you host. The hub is not tied to Claude Code and Posit Assistant. On request we set up another coding agent, such as OpenCode, in the IDE images. With an agent that talks to a model you host yourself, nothing leaves your network.
- No AI. With
ai=falsethe hub has no coding agents at all, as described below.
What the agents get from the hub¶
Managed instructions. Every session loads a short text before the user's own CLAUDE.md.
It says where files persist, what the deploy command is and how projects are laid out. The
parts about R, Python and deploying are included only on a hub whose features setting
includes them.
Rules and skills. Rules apply when the agent works on matching files. They cover the R
conventions (code style, formatting with Air, how imports are declared) and tell Claude Code to
use the running R session through btw. Skills are loaded when a task needs them. The hub
skill is the full reference for hub deploy, hub.yaml, the kinds, pipelines and APIs, and
for reading and fixing a build log. The project-claude-md skill describes how to write a
project's own CLAUDE.md. At every session start, the hub links the rules and skills,
read-only, into the user's Claude Code configuration, and into Posit Assistant's skills
directory and its AGENTS.md.
Plugins. Posit's skills for Shiny, the r-lib packages and Quarto are installed into the user's Claude Code at session start. They come from a marketplace built into the image, so a session start does not need network access to install them. When an image update brings a new version of the marketplace, the next session start updates the plugins. A plugin that the hub drops from its list, for example because a feature was turned off, is uninstalled. A plugin that the user installed themselves stays installed.
Permissions. The agent runs the hub's own commands and air format, uv lock, uv sync,
uv add and uv run without asking. hub delete, hub owner, hub run, hub runs,
hub logs and hub git are deliberately left off that list. The default model is the newest
Opus. These are managed settings that a user cannot override. Posit Assistant gets the same commands in its
own settings at every session start. A rule that you add there yourself stays, and a rule that
the hub drops from its list is removed.
MCP servers. In RStudio, Claude Code talks to the user's R session through btw. It can
inspect objects, run code in the session and read help pages. The r-btw server also appears
in VS Code and JupyterLab, because the IDEs share the home directory, but it has no tools
there. In every IDE, the hub registers
each deployed MCP server that the user's groups have access
to, under the server's name, with the session as the identity. In RStudio, Posit Assistant
gets the same servers. A server of your own with the same name stays as it is.
Your own CLAUDE.md. The hub creates it once, with a short note on working style. After
that the file is yours to edit.
A setup step at session start does all of this. It never blocks the session, and it logs what
it did, or could not do, in ~/.claude/hub-setup.log.
Adding your own instructions¶
A customer's additions go into the claude-code/ directory of the
overlay:
| File | What it contains | Takes effect |
|---|---|---|
CLAUDE.md |
Text appended to the managed instructions of every session: your systems and data, naming conventions, what the agent must never do, whom to ask. Keep it short, because it uses context on every turn. | at the next apply |
plugins.txt |
Additional marketplaces and plugins, in the platform's format. | at the next apply |
rules/, skills/ |
Your rules and skills, linked into every session alongside the platform's. | at the next image build |
claude-marketplaces.txt next to hub.env |
Marketplaces to build into the images, so plugins install without network access. | at the next image build |
Each project template in the overlay carries its own project CLAUDE.md. Conventions for one
kind of project belong there rather than in the hub-wide file.
A hub without AI¶
With ai=false in hub.env, the hub builds the IDE images without Claude Code, Posit
Assistant and the R packages that drive them, and ships none of the content above. The tiles'
descriptions change accordingly. Everything else about the hub stays the same.