deploy-shinyproxy

deploy-shinyproxy is a skill for Claude Code from pjt222/agent-almanac. It costs 90 tokens per session (2,391 once invoked), scanned D, original, MIT.

A deployment guide for ShinyProxy, a service that hosts multiple R Shiny applications in separate Docker containers behind one entry point.

In plain words
What is it for?
Use it to configure authentication, build app images, connect Docker or Kubernetes backends, and publish multiple Shiny apps under one service.
Why use it?
It helps teams host several apps with per-app access control, isolated containers, usage tracking, and room to scale.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter.

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is docker build -t myorg/dashboard:latest ./apps/dashboard/.

Part of the agent-almanac plugin — 122 skills, 76 agents shipped together

Good fit Use it to configure authentication, build app images, connect Docker or Kubernetes backends, and publish multiple Shiny apps under one service.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.

Clone the repo
git clone --depth 1 https://github.com/pjt222/agent-almanac
agentmods
npx agentmods add skills/pjt222/agent-almanac/deploy-shinyproxy

Made for: Claude Code.

Or install agent-almanac, the plugin that ships this one along with the rest of its 122 skills, 76 agents.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for deploy-shinyproxy

README.md
[![agentmods](https://agentmods.dev/badge/skills/pjt222/agent-almanac/deploy-shinyproxy.svg)](https://agentmods.dev/skills/pjt222/agent-almanac/deploy-shinyproxy)
Your own site
<a href="https://agentmods.dev/skills/pjt222/agent-almanac/deploy-shinyproxy"><img src="https://agentmods.dev/badge/skills/pjt222/agent-almanac/deploy-shinyproxy.svg" alt="Measured on agentmods" height="20"></a>
Per session 90 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,391 The whole file, excluding the scripts and references it only reads on demand.
Security scan D 3 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00090 $0.02391
Opus 5 $0.00045 $0.01196
Sonnet 5 $0.00018 $0.00478
Haiku 4.5 $0.00009 $0.00239

Measured 4d ago against content hash bc2e4ba1cc0a, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade D, and why

deploy-shinyproxy scanned grade D with 3 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Sends data to an external URLmediumData exfiltration

A POST to an outside endpoint may be telemetry or may be exfiltration; either way the mod talks to somewhere, and you should know where.

curl -s -c cookies.txt -d "username=admin&password=admin_password" \

Recursive force deletehighDestructive command

rm -rf with a variable or a broad path is one typo away from removing the wrong tree.

&& rm -rf /var/lib/apt/lists/*

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -s http://localhost:8080/actuator/health
i18n/caveman-lite/skills/deploy-shinyproxy/SKILL.md · 328 lines

How it starts

The opening of the file, as written. The whole thing — 328 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Deploy ShinyProxy

Deploy ShinyProxy to host multiple containerized Shiny applications with authentication and usage tracking.

When to Use

  • Hosting multiple Shiny apps behind a single entry point
  • Need per-app authentication and access control
  • Deploying Shiny apps as isolated Docker containers
  • Scaling beyond single-app deployment (shinyapps.io or standalone Docker)
  • Requiring usage analytics and audit logging

Inputs

  • Required: One or more Shiny apps to deploy
  • Required: Server with Docker installed
  • Optional: Authentication provider (LDAP, OpenID, social)
  • Optional: Domain name and SSL certificate
  • Optional: Container orchestrator (Docker or Kubernetes)

Procedure

Step 1: Create Shiny App Docker Images

Each Shiny app needs its own Docker image. Example Dockerfile for a Shiny app:

FROM rocker/shiny:4.5.0

RUN apt-get update && apt-get install -y \
    libcurl4-openssl-dev \
    libssl-dev \
    && rm -rf /var/lib/apt/lists/*

RUN R -e "install.packages(c('shiny', 'bslib', 'DT', 'dplyr'), \
    repos='https://cloud.r-project.org/')"

COPY app/ /srv/shiny-server/app/

RUN chown -R shiny:shiny /srv/shiny-server/app

USER shiny
EXPOSE 3838
CMD ["R", "-e", "shiny::runApp('/srv/shiny-server/app', host='0.0.0.0', port=3838)"]

Build and test each app:

docker build -t myorg/dashboard:latest ./apps/dashboard/
docker run --rm -p 3838:3838 myorg/dashboard:latest

Got: Each Shiny app runs independently in its own container.

Step 2: Configure ShinyProxy

application.yml:

proxy:
  title: "Shiny Applications"
  port: 8080
  container-backend: docker
  docker:
    internal-networking: true
  authentication: simple
  admin-groups: admins

  users:
    - name: admin
      password: admin_password
      groups: admins
    - name: analyst
      password: analyst_password
      groups: users

  specs:
    - id: dashboard
      display-name: "Analytics Dashboard"
      description: "Interactive data analysis dashboard"
      container-image: myorg/dashboard:latest
      container-cmd: ["R", "-e", "shiny::runApp('/srv/shiny-server/app', host='0.0.0.0', port=3838)"]
      container-network: shinyproxy-net
      port: 3838
      access-groups: [admins, users]

    - id: report-builder
      display-name: "Report Builder"
      description: "Generate custom reports"
      container-image: myorg/report-builder:latest
      container-cmd: ["R", "-e", "shiny::runApp('/srv/shiny-server/app', host='0.0.0.0', port=3838)"]
      container-network: shinyproxy-net
      port: 3838
      access-groups: [admins]

logging:
  file:
    name: /opt/shinyproxy/log/shinyproxy.log

server:
  forward-headers-strategy: native

Read the full file on GitHub · 328 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 328 lines · 90 tokens per session scan D bc2e4ba1cc0a

Subscribe to this mod's changes

deploy-shinyproxy is a skill published in the GitHub repository pjt222/agent-almanac (32 stars, last pushed today), licensed MIT. It adds 90 tokens to every session and 2,391 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it D with 3 findings (sends data to an external url, recursive force delete, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.

Related

Other skills, from other repositories

wrangler

Run or troubleshoot Wrangler CLI commands and configure Worker projects for local development, deployment, and Cloudflare resource management.

cloudflare/skills · 25 tokens

aws-cloudformation-ecs

Provides AWS CloudFormation patterns for ECS clusters, task definitions, services, container definitions, auto scaling, blue/green deployments, CodeDeploy integration, ALB integration, service discovery, monitoring, logging, template structure, parameters, outputs, and cross-stack references. Use when creating ECS…

giuseppe-trisciuoglio/developer-kit · 101 tokens

loom-kubernetes

Kubernetes deployment, cluster architecture, security, and operations.

cosmix/loom · 16 tokens

loom-karpenter

Kubernetes node autoscaling and cost optimization with Karpenter.

cosmix/loom · 18 tokens

northflank

Deploy, manage, and automate infrastructure on Northflank — a developer platform for building, deploying, and scaling services, jobs, databases, and release workflows on Kubernetes. Use when managing Northflank projects, services, jobs, addons (databases), secrets, domains, templates (IaC), environments, preview…

northflank/skills · 126 tokens

kubernetes

WHAT: Kubernetes manifest generation - Deployments, StatefulSets, CronJobs, Services, Ingresses, ConfigMaps, Secrets, and PVCs with production-grade security and health checks. WHEN: User needs to create K8s manifests, deploy containers, configure Services/Ingress, manage ConfigMaps/Secrets, set up persistent storage…

wpank/ai · 129 tokens