skills/render-cli/SKILL.md
Installs and uses the Render CLI for deploys, logs, SSH, psql, Blueprint validation, and automation. Use when the user needs to run Render CLI commands, script deploys in CI/CD, authenticate with an API key, query services non-interactively, or troubleshoot CLI auth issues. Trigger terms: render CLI, render login, render deploys, render logs, render ssh, render psql, render blueprints validate, render skills, RENDER_API_KEY, non-interactive, CI/CD deploy.
npx skillsauth add render-oss/skills render-cliInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The Render CLI manages services, databases, and deployments from the terminal. Supports interactive use, non-interactive scripting, and CI/CD automation.
render.yaml Blueprint| Method | Command |
|--------|---------|
| Homebrew | brew update && brew install render |
| Linux/macOS | curl -fsSL https://raw.githubusercontent.com/render-oss/cli/refs/heads/main/bin/install.sh \| sh |
| Direct download | GitHub releases |
| Build from source | git clone [email protected]:render-oss/cli.git && cd cli && go build -o render |
After install, run render with no arguments to confirm.
render login
Opens the browser to generate a CLI token. Token is saved to ~/.render/cli.yaml. Tokens expire periodically—re-run render login when prompted.
export RENDER_API_KEY=rnd_...
API keys do not expire. Generate one from Account Settings > API Keys in the Dashboard. The API key takes precedence over CLI tokens when set.
Set the active workspace:
render workspace set
| Command | Purpose | Key flags |
|---------|---------|-----------|
| render login | Authenticate via browser | — |
| render workspace set | Set active workspace | — |
| render services | List all services and datastores | -o json for scripting |
| render deploys create [SVC] | Trigger a deploy | --wait, --commit SHA, --image URL |
| render deploys list [SVC] | List deploys for a service | -o json |
| render logs -r [SVC] | View logs | --tail for streaming |
| render psql [DB] | Open psql session | -c "SQL", -o json, -- --csv |
| render ssh [SVC] | SSH into running instance | --ephemeral / -e for isolated shell |
| render blueprints validate | Validate render.yaml | Defaults to ./render.yaml |
| render skills [install\|update\|list] | Manage agent skills | — |
| render workspaces | List workspaces | -o json |
For CI/CD and scripts, always set:
| Flag | Purpose |
|------|---------|
| -o json (or yaml, text) | Machine-readable output |
| --confirm | Skip confirmation prompts |
Output format precedence: --output flag > RENDER_OUTPUT env var > auto-detect (TTY → interactive, pipe → text).
export RENDER_OUTPUT=json
render services --confirm
# Deploy and wait for completion (exits non-zero on failure)
render deploys create srv-xxx --wait --confirm -o json
# Deploy a specific commit
render deploys create srv-xxx --commit abc123 --wait --confirm
# Deploy a specific Docker image
render deploys create srv-xxx --image ghcr.io/org/app:v1.2.3 --wait --confirm
# Single query, JSON output
render psql db-xxx -c "SELECT NOW();" -o json
# CSV output via psql passthrough
render psql db-xxx -c "SELECT id, email FROM users;" -o text -- --csv
name: Deploy to Render
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Install Render CLI
run: |
curl -L https://github.com/render-oss/cli/releases/download/v1.1.0/cli_1.1.0_linux_amd64.zip -o render.zip
unzip render.zip
sudo mv cli_v1.1.0 /usr/local/bin/render
- name: Deploy
env:
RENDER_API_KEY: ${{ secrets.RENDER_API_KEY }}
run: render deploys create ${{ secrets.RENDER_SERVICE_ID }} --wait --confirm -o json
Pin to a specific CLI version in CI to avoid breaking changes.
Config file: ~/.render/cli.yaml
Override with RENDER_CLI_CONFIG_PATH env var.
| Mistake | Fix |
|---------|-----|
| Token expired | Re-run render login |
| Wrong workspace | Run render workspace set to switch |
| Missing --confirm in CI | Add --confirm to skip interactive prompts |
| Using --output interactive in CI | Use -o json or -o text in non-TTY environments |
| Deploying without --wait in CI | Add --wait so the job fails on deploy failure |
| Document | Contents |
|----------|----------|
| references/command-cheatsheet.md | Full command list with flags, output examples, and scripting patterns |
render.yaml authoring and validationrender psql usagerender logs and render ssh for troubleshootingdevelopment
Configures Render web services—port binding, TLS, health checks, custom domains, auto-deploy, PR previews, persistent disks, and deploy lifecycle. Use when the user needs to set up a web service, fix health check failures, add a custom domain, configure zero-downtime deploys, or troubleshoot port binding issues.
development
Deploys and configures static sites on Render's global CDN—build commands, publish paths, SPA routing, redirects, custom headers, and PR previews. Use when the user needs to deploy a static site, set up a React/Vue/Hugo/Gatsby frontend, configure SPA fallback routing, add redirect rules, customize response headers, or choose between a static site and a web service for their frontend. Trigger terms: static site, CDN, SPA, single-page app, React deploy, Vue deploy, Hugo, Gatsby, Docusaurus, Jekyll, staticPublishPath.
tools
Scales Render services—configures autoscaling targets, chooses instance types, sets manual instance counts, and optimizes cost. Use when the user needs to handle more traffic, set up autoscaling, pick the right instance type, reduce costs, or troubleshoot scaling behavior like slow scale-down or stuck instances.
development
Configures Render private services—internal-only apps that accept traffic exclusively from other Render services over the private network. Use when the user needs an internal API, microservice, gRPC server, sidecar, or any service that should not be publicly accessible. Also use when choosing between a private service and a background worker. Trigger terms: private service, pserv, internal service, internal API, microservice, gRPC, not public, private network service.