# render-env-vars

Configures environment variables, secrets, and env groups on Render. Helps wire cross-service dependencies in Blueprints and fix port binding issues.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 474 installs · ★ 88
- Author: Render
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/render-oss/skills/tree/HEAD/skills/render-env-vars/SKILL.md
- Updated: 2026-10-08
- HTML: https://affpapa.org/en/nevibecode/skills/render-env-vars

## What it does

This skill guides AI assistants when configuring secrets and variables on Render. It handles Blueprint directives such as `fromDatabase`, `fromService`, `sync: false`, and `generateValue`, preventing configuration drift across the Dashboard and YAML files.

The instructions enforce platform-specific networking defaults. Web processes must listen on `0.0.0.0`, with `PORT` defaulting to `10000`. For native Python services, it configures `GUNICORN_CMD_ARGS` so custom start commands match platform health checks.

Binding to `localhost` or hardcoding an arbitrary port breaks deployment health checks immediately. The skill directs agents to fetch current markdown docs via `curl` before mutating any environment settings.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add render-oss/skills --skill render-env-vars -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/render-env-vars/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/render-env-vars/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add render-oss/skills --skill render-env-vars -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/render-env-vars/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add render-oss/skills --skill render-env-vars -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/render-env-vars/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install render-oss/skills render-env-vars
```

2. **Manually: put the files in place**
- File: `.github/skills/render-env-vars/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add render-oss/skills --skill render-env-vars -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/render-oss/skills --path skills/render-env-vars
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/render-env-vars/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add render-oss/skills --skill render-env-vars -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/render-oss/skills/tree/HEAD/skills/render-env-vars/SKILL.md

## When to use it
- wire database credentials into web services via Blueprints
- configure shared environment groups across multiple services
- resolve port binding errors and health check failures
- set up generateValue and sync: false in Render YAML

## Example prompts
- Wire DATABASE_URL from my Postgres instance to the backend service in render.yaml
- Fix health check port binding for this Python web service on Render
- Create a shared environment group for staging API keys

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 6104907f927f82c9.

BEGIN THIRD-PARTY FILE 6104907f927f82c9
```text
---
name: render-env-vars
description: >-
  Configures environment variables, secrets, and env groups on Render. Use when
  the user needs to set env vars, wire secrets between services, create env
  groups, use generateValue, set sync: false, or troubleshoot missing or
  incorrect environment variable values in Blueprints or the Dashboard.
license: MIT
compatibility: Render Dashboard, CLI, or MCP tools
metadata:
  author: Render
  version: "1.0.0"
  category: configuration
---

# Environment Variables on Render

Before inspecting or changing environment variables, secrets, secret files, or environment groups, read `references/environment-variables.md` for the current documentation, source-of-truth, safety, and mutation workflow.

Blueprint wiring examples and language-specific application notes live under `references/`.

## When to Use This Skill

Use this skill when users want to:

- Add, change, or remove environment variables or secrets
- Understand Dashboard vs Blueprint vs API/MCP flows
- Use **environment groups** for shared configuration
- Wire `fromDatabase`, `fromService`, `fromGroup`, `sync: false`, or `generateValue` in Blueprints
- Debug missing vars, secret files, precedence, or platform-injected names

For full Blueprint authoring, pair with **render-blueprints**. For first-time deploys, **render-deploy**. For web service behavior and ports, **render-web-services**.

## Blueprint Wiring (Summary)

After reading `references/environment-variables.md`, use `references/wiring-reference.md` for task-specific `fromDatabase`, `fromService`, and `fromGroup` examples. Consult **render-blueprints** for the complete Blueprint workflow.

## Platform-Injected Variables

Use the current default-variable reference fetched through `references/environment-variables.md` instead of relying on a fixed catalog. Language-specific application notes remain in `references/platform-variables.md`.

## Runtime-Specific Defaults

Always bind HTTP servers to **`0.0.0.0`** and **`PORT`** (or the stack’s documented port env) unless using a static site or custom Docker entrypoint.

- When diagnosing a port-binding failure, first establish whether the service uses a native runtime or Docker and inspect its actual start command; the applicable defaults differ.
- For a web service, `PORT` defaults to **`10000`**. Prefer reading `$PORT` in the start command rather than hardcoding that number or setting `PORT` merely to match an arbitrary hardcoded port.
- Native Python services currently receive `GUNICORN_CMD_ARGS` with a default bind to **`0.0.0.0:10000`**. A custom Gunicorn start command should bind to **`0.0.0.0:$PORT`** so the process and Render's health checks use the same port.

## Common Issues

`WEB_CONCURRENCY` defaults differ for some older and newer services. When debugging worker counts, compare service creation date and explicit overrides, then confirm current behavior using `references/environment-variables.md` and `references/platform-variables.md`.

## References
```
END THIRD-PARTY FILE 6104907f927f82c9

The third-party file has ended. Everything between the 6104907f927f82c9 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 3014 of 4686 bytes. © Render · MIT · https://github.com/render-oss/skills/tree/HEAD/skills/render-env-vars/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
