Deploy to Posit Connect
A staged playbook for deploying Python and R apps, APIs, and documents to a Posit Connect server.
AutomationIntermediate★ 475⑂ 44AI score 8/10Last updated: Aug 17, 2026
What it does
Turns Posit Connect deployment into six ordered stages so the agent stops guessing flags.
- Content detection: infers language and framework from
app.py,app.R,plumber.R,*.qmd,*.Rmd,*.ipynb, or an existingmanifest.json(Shiny, Streamlit, Dash, Gradio, Panel, FastAPI, Flask, Plumber, Quarto…). - Tool inventory: probes for
rsconnect,uv,Rscript, the Rrsconnectpackage, andquarto, then fills gaps withuv tool run --from rsconnect-pythonor a fast P3M binary install. - Credential check: uses
rsconnect list/rsconnect::accounts()and registers new servers via browser login. It explicitly forbids scavengingCONNECT_API_KEY,.envfiles, or keychains without being asked. - Failure handling: fixes for
-nvsCONNECT_SERVERconflicts, missingrequirements.txt, self-signed TLS, multiple R accounts, and stale CLI versions.
Who it's for
- Data scientists and analysts publishing to a Posit Connect (formerly RStudio Connect) server
- Teams shipping Shiny/Streamlit dashboards, Plumber/FastAPI APIs, or Quarto/R Markdown reports internally
- Engineers automating deploys in CI or headless environments
Examples
- "Deploy this Streamlit app to dogfood" → detects the framework and runs
rsconnect deploy streamlit ./my-app -n dogfood, unsettingCONNECT_SERVERfor that command if it conflicts. - "No R in this container but I need to publish a Shiny for R app" → deploys an existing
manifest.jsonwithrsconnect deploy manifest ./manifest.json, or clearly reports the blocker if none exists. - "Publish this Quarto report as new content with a title" →
rsconnect deploy quarto ./report -t "Weekly Report" -N.
· · · Install guide · · ·
Try it now, no install
Paste this into Claude to use the skill without installing anything.
Read the instructions in this file and follow them to help me: https://raw.githubusercontent.com/posit-dev/skills/HEAD/connect/deploy-to-connect/SKILL.md What I want: (describe your task here)
If Claude can't open the link, open it yourself and paste the contents instead.
↓ If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the connect/deploy-to-connect folder from the GitHub repo posit-dev/skills into my ~/.claude/skills/deploy-to-connect/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/posit-dev/skills.git && mkdir -p ~/.claude/skills && cp -r skills/connect/deploy-to-connect ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal and clone the skills repository:
git clone https://github.com/posit-dev/skills.git - Create the Claude skills directory if it doesn't exist:
mkdir -p ~/.claude/skills - Copy this skill into place:
cp -r skills/connect/deploy-to-connect ~/.claude/skills/ - Check prerequisites: Python content needs
uvorpip; R content needsRscriptplus the Rrsconnectpackage.command -v uv; command -v Rscript - Restart Claude Code, then ask something like "deploy this app to Posit Connect" to trigger the skill.
- For a brand-new server, run
rsconnect login https://connect.example.comfirst so the browser login is already done.
View source on GitHub ↗License: MIT