Claude Skill MartBrowse skillsQuick linesLearn by videoTerminal guideWhat is a Skill?
Back to list

Deploy to Posit Connect

A staged playbook for deploying Python and R apps, APIs, and documents to a Posit Connect server.

AutomationIntermediate47544AI 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 existing manifest.json (Shiny, Streamlit, Dash, Gradio, Panel, FastAPI, Flask, Plumber, Quarto…).
  • Tool inventory: probes for rsconnect, uv, Rscript, the R rsconnect package, and quarto, then fills gaps with uv tool run --from rsconnect-python or a fast P3M binary install.
  • Credential check: uses rsconnect list / rsconnect::accounts() and registers new servers via browser login. It explicitly forbids scavenging CONNECT_API_KEY, .env files, or keychains without being asked.
  • Failure handling: fixes for -n vs CONNECT_SERVER conflicts, missing requirements.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

  1. "Deploy this Streamlit app to dogfood" → detects the framework and runs rsconnect deploy streamlit ./my-app -n dogfood, unsetting CONNECT_SERVER for that command if it conflicts.
  2. "No R in this container but I need to publish a Shiny for R app" → deploys an existing manifest.json with rsconnect deploy manifest ./manifest.json, or clearly reports the blocker if none exists.
  3. "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)
  1. Download the ZIP with the button below.
  2. In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
  3. Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Download 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.

  1. Open a terminal and clone the skills repository:
    git clone https://github.com/posit-dev/skills.git
    
  2. Create the Claude skills directory if it doesn't exist:
    mkdir -p ~/.claude/skills
    
  3. Copy this skill into place:
    cp -r skills/connect/deploy-to-connect ~/.claude/skills/
    
  4. Check prerequisites: Python content needs uv or pip; R content needs Rscript plus the R rsconnect package.
    command -v uv; command -v Rscript
    
  5. Restart Claude Code, then ask something like "deploy this app to Posit Connect" to trigger the skill.
  6. For a brand-new server, run rsconnect login https://connect.example.com first so the browser login is already done.