| [ Web Proxy ] |
| Viewing: https://render.com/docs/cli-reference | [Back] [Original] |
This reference is automatically generated from the Render CLI source.
View documentation for any command in the CLI itself by running the following:
| Option | Description |
|---|---|
|
|
Skip all confirmation prompts |
|
|
Set output format to interactive, json, yaml, or text. Auto-switches to text on non-TTY |
List environments for a specified project in the active workspace. In interactive mode you can view each environment's individual services.
Usage:
Examples:
Options:
Global options only
Open a redis-cli or valkey-cli session for a Render Key Value instance. This command only supports interactive mode.
You can optionally pass the key value ID or name as an argument. To pass arguments to redis-cli or valkey-cli, use: render kv-cli [keyValueID|keyValueName] -- [redis-cli args]
Usage:
Examples:
Options:
Global options only
View logs for services and datastores.
Use flags to filter logs by resource, instance, time, text, level, type, host, status code, method, or path. Unlike in the Render Dashboard, you can view logs for multiple resources at once.
In interactive mode you can update the filters and view logs in real time, or set --tail=true to stream new logs.
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Set log query direction (backward or forward) |
|
|
Filter logs at or before the specified end time |
|
|
Filter logs by comma-separated host values |
|
|
Filter logs by comma-separated instance IDs |
|
|
Filter logs by comma-separated log levels |
|
|
Limit the number of logs returned |
|
|
Filter logs by comma-separated HTTP methods |
|
|
Filter logs by comma-separated request paths |
|
|
Filter logs by comma-separated resource IDs (Required in non-interactive mode) |
|
|
Filter logs at or after the specified start time |
|
|
Filter logs by comma-separated status codes |
|
|
Stream new logs |
|
|
Filter logs by comma-separated task IDs |
|
|
Filter logs by comma-separated task run IDs |
|
|
Filter logs by comma-separated text values |
|
|
Filter logs by comma-separated log types |
Open a pgcli session to a Render Postgres database instance. This command only supports interactive mode.
You can optionally pass a database ID or name as an argument. To pass arguments to pgcli, use: render pgcli [postgresID|postgresName] -- [pgcli args]
Usage:
Examples:
Options:
Global options only
Browse projects in the active workspace. In interactive mode, select a project to view its environments.
Usage:
Examples:
Options:
Global options only
Open a psql session to a Render Postgres database.
Optionally pass the database ID or name as an argument. To pass arguments to psql, use: render psql [postgresID|postgresName] -- [psql args]
For non-interactive usage, use the --command flag:
render psql [postgresID|postgresName] -c "SELECT * FROM users;" -o text
Additional psql flags can be passed after --:
render psql [postgresID|postgresName] -c "SELECT 1;" -o json -- --csv -q
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Execute a SQL command in non-interactive mode |
SSH into a service instance. This command only supports interactive mode.
You can specify the service ID, service name, or specific instance ID as an argument. To pass arguments to ssh, use: render ssh [serviceID|serviceName|instanceID] -- [ssh args]
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Connect to an ephemeral instance |
|
|
Plan name to use for the ephemeral instance (e.g. 0.5c-512mb, 1c-2g, 2c-4g). Only valid with |
Validate a Blueprint file for errors before committing.
Validates:
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Validate against the specified workspace ID (defaults to current workspace) |
Trigger a service deploy and stream logs in real time
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Clear build cache before deploying |
|
|
Deploy the specified commit ID |
|
|
Deploy the specified Docker image URL |
|
|
Wait for deploy completion and exit non-zero if deploy fails |
Create a new job for a service
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Set the plan ID for the job (Optional) |
|
|
Set the job start command |
Create a new Render Key Value instance.
In interactive mode, a prompt guides you through each option one at a time.
In non-interactive mode (--output text/json/yaml), flags use defaults if not supplied.
Use --confirm to skip all prompts (including final confirmation) and create immediately.
Output will be human-readable; use --output json/yaml/text for machine-readable output.
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Set the environment to create the Key Value in (ID or name, optional). Example: Production or evm-abc123def456 |
|
|
Restrict inbound traffic to specific IP ranges (format: |
|
|
Set the eviction policy used when the instance runs out of memory. Accepts a friendly alias cache (= allkeys_lru, for caching) or queue (= noeviction, for job queues) or any raw policy: noeviction | allkeys_lru | allkeys_lfu | allkeys_random | volatile_lru | volatile_lfu | volatile_random | volatile_ttl |
|
|
Set the Key Value instance name (generated if not provided) |
|
|
Set the on-disk persistence mode: journal_snapshot | snapshot | off (off loses data on restart; omit to use the plan default). |
|
|
Set the plan to one of: free | 256mb | 1g | 5g | 10g | 20g | 40g. Custom enterprise plan names are also accepted. |
|
|
Scope environment lookup to a project (ID or name, optional); if the project has exactly one environment it is used automatically. |
|
|
Set the region: frankfurt | ohio | oregon | singapore | virginia |
|
|
Set the workspace to create the Key Value in (ID or name). Defaults to the active workspace (set via 'render workspace set'). |
Delete a Render Key Value instance.
Without --confirm, this command previews what would be deleted and makes no
changes. Pass --confirm to actually delete the instance.
The positional argument accepts either a Key Value ID (red-...) or a name.
If the name matches more than one instance, narrow the search with
--environment <id|name>, or pass the Key Value ID directly.
Name lookup is scoped to your active workspace. If a name isn't found, switch workspaces with 'render workspace set <name|ID>' and try again, or pass the Key Value ID instead (which works across workspaces).
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Narrow lookup to an environment (ID or name, optional) when the same Key Value name exists in multiple environments. |
Get details and connection info for a Render Key Value instance.
The positional argument accepts either a Key Value ID (red-...) or a name.
If the name matches more than one instance, narrow the search with
--project <id|name>, --environment <id|name>, or pass the Key Value ID
directly.
Name lookup is scoped to your active workspace. If a name isn't found, switch workspaces with 'render workspace set <name|ID>' and try again, or pass the Key Value ID instead (which works across workspaces).
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Narrow lookup to an environment (ID or name, optional) when the same Key Value name exists in multiple environments. |
|
|
Include connection strings and credentials in the output |
|
|
Narrow lookup to a project (ID or name, optional) within the active workspace. |
List Render Key Value instances in the active workspace.
Use --project to narrow results to a single project, --environment to narrow
to a single environment, or both when both are supplied, the environment is
resolved within that project.
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Narrow results to a single environment (ID or name, optional). |
|
|
Narrow results to environments in a project (ID or name, optional). |
Resume a suspended Render Key Value instance.
The positional argument accepts either a Key Value ID (red-...) or a name.
If the name matches more than one instance, narrow the search with
--environment <id|name>, or pass the Key Value ID directly.
Name lookup is scoped to your active workspace. If a name isn't found, switch workspaces with 'render workspace set <name|ID>' and try again, or pass the Key Value ID instead (which works across workspaces).
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Narrow lookup to an environment (ID or name, optional) when the same Key Value name exists in multiple environments. |
Suspend a Render Key Value instance.
Without --confirm, this command previews what would be suspended and makes no
changes. Pass --confirm to actually suspend the instance.
The positional argument accepts either a Key Value ID (red-...) or a name.
If the name matches more than one instance, narrow the search with
--environment <id|name>, or pass the Key Value ID directly.
Name lookup is scoped to your active workspace. If a name isn't found, switch workspaces with 'render workspace set <name|ID>' and try again, or pass the Key Value ID instead (which works across workspaces).
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Narrow lookup to an environment (ID or name, optional) when the same Key Value name exists in multiple environments. |
Update an existing Render Key Value instance.
The positional argument is the target Key Value (ID red-... or name). At least
one mutating flag must be supplied. Use --name to rename the instance; the
positional argument always identifies the target and is never the new name.
Environment, project, workspace, and region are immutable. A Key Value instance
cannot be moved between them; the --environment flag is for name disambiguation
only.
Name lookup is scoped to your active workspace. If a name isn't found, switch
workspaces with 'render workspace set <name|ID>' and try again, or pass the
Key Value ID instead (which works across workspaces). If a name matches more
than one instance, narrow the search with --environment <id|name>.
The --ip-allow-list flag replaces the server-side list; pass it once per entry.
To remove all allow-list entries, pass --clear-ip-allow-list. The two flags are
mutually exclusive.
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Remove all IP allow-list entries. Mutually exclusive with |
|
|
Narrow lookup to an environment (ID or name, optional) when the same Key Value name exists in multiple environments |
|
|
Replace the IP allow-list with the supplied entries (format: |
|
|
Set the eviction policy used when the instance runs out of memory. Accepts a friendly alias cache (= allkeys_lru, for caching) or queue (= noeviction, for job queues) or any raw policy: noeviction | allkeys_lru | allkeys_lfu | allkeys_random | volatile_lru | volatile_lfu | volatile_random | volatile_ttl |
|
|
Rename the Key Value instance |
|
|
Set the on-disk persistence mode: journal_snapshot | snapshot | off (off loses data on restart). |
|
|
Set the plan to one of: free | 256mb | 1g | 5g | 10g | 20g | 40g. Custom enterprise plan names are also accepted. |
Create a new Render Postgres database.
In interactive mode, a wizard guides you through the core choices for the
database. The wizard owns those prompted values. Flag-only settings, such as
--disk-size-gb, --database-name, --database-user, --ip-allow-list, and --read-replica,
are still included in the create request.
Use --confirm to skip the wizard and create immediately from flags and defaults.
When --confirm is used with the default interactive output mode, output is
printed as text. Use --output json, yaml, or text for non-interactive output.
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Set the Postgres database name (server generates one if unset) |
|
|
Set the Postgres database user (server generates one if unset) |
|
|
Set the Datadog API key for monitoring |
|
|
Set the Datadog region/site (e.g. US1, US3, EU). Server default is US1. |
|
|
Enable disk autoscaling |
|
|
Set the disk size in GB. Must be 1 or a multiple of 5. Server picks a sensible default based on compute size if unset. |
|
|
Set the environment to create the database in (ID or name, optional). Example: Production or evm-abc123def456 |
|
|
Enable high availability (available for plans with at least 1 CPU) |
|
|
Restrict inbound traffic to specific IP ranges (format: |
|
|
Set the database name (generated if not provided) |
|
|
Set the plan to one of: free | 0.1c-256mb | 0.5c-1g | 1c-2g | 1c-4g | 2c-4g | 2c-8g | 2c-16g | 4c-16g | 4c-32g | 8c-32g | 8c-64g | 16c-64g | 16c-128g | 32c-128g | 32c-256g | 48c-192g | 48c-384g | 64c-256g | 64c-512g | 96c-384g | 96c-768g | 128c-512g | 128c-1024g. Custom enterprise plan names are also accepted. |
|
|
Scope environment lookup to a project (ID or name, optional); if the project has exactly one environment it is used automatically. |
|
|
Create a read replica with the given name alongside the primary. Repeat the flag for multiple replicas. |
|
|
Set the region: frankfurt | ohio | oregon | singapore | virginia (server picks if unset) |
|
|
Set the Postgres major version. Defaults to 18. |
|
|
Set the workspace to create the database in (ID or name). Defaults to the active workspace (set via 'render workspace set'). |
Delete a Render Postgres database.
Without --confirm, this command previews what would be deleted and makes no
changes. Pass --confirm to actually delete the database.
The positional argument accepts either a Postgres ID (dpg-...) or a name.
If the name matches more than one database, narrow the search with
--project <id|name>, --environment <id|name>, or pass the Postgres ID directly.
Name lookup is scoped to your active workspace. If a name isn't found, switch workspaces with 'render workspace set <name|ID>' and try again, or pass the Postgres ID instead (which works across workspaces).
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Narrow lookup to an environment (ID or name, optional) when the same Postgres database name exists in multiple environments. |
|
|
Narrow lookup to a project (ID or name, optional) when the same Postgres database name exists in multiple projects. |
Get details and connection info for a Render Postgres database.
The positional argument accepts either a Postgres ID (dpg-...) or a name.
If the name matches more than one database, narrow the search with
--project <id|name>, --environment <id|name>, or pass the Postgres ID directly.
Name lookup is scoped to your active workspace. If a name isn't found, switch workspaces with 'render workspace set <name|ID>' and try again, or pass the Postgres ID instead (which works across workspaces).
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Narrow lookup to an environment (ID or name, optional) when the same Postgres database name exists in multiple environments. |
|
|
Include connection strings and credentials in the output |
|
|
Narrow lookup to a project (ID or name, optional) within the active workspace. |
List Render Postgres databases in the active workspace.
Use --project to narrow results to a single project, --environment to narrow
to a single environment, or both when both are supplied, the environment is
resolved within that project.
Usage:
Aliases: ls
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Narrow results to a single environment (ID or name, optional). |
|
|
Narrow results to environments in a project (ID or name, optional). |
Resume a suspended Render Postgres database.
The positional argument accepts either a Postgres ID (dpg-...) or a name.
If the name matches more than one database, narrow the search with
--project <id|name>, --environment <id|name>, or pass the Postgres ID directly.
Name lookup is scoped to your active workspace. If a name isn't found, switch workspaces with 'render workspace set <name|ID>' and try again, or pass the Postgres ID instead (which works across workspaces).
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Narrow lookup to an environment (ID or name, optional) when the same Postgres database name exists in multiple environments. |
|
|
Narrow lookup to a project (ID or name, optional) when the same Postgres database name exists in multiple projects. |
Suspend a Render Postgres database.
Without --confirm, this command previews what would be suspended and makes no
changes. Pass --confirm to actually suspend the database.
The positional argument accepts either a Postgres ID (dpg-...) or a name.
If the name matches more than one database, narrow the search with
--project <id|name>, --environment <id|name>, or pass the Postgres ID directly.
Name lookup is scoped to your active workspace. If a name isn't found, switch workspaces with 'render workspace set <name|ID>' and try again, or pass the Postgres ID instead (which works across workspaces).
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Narrow lookup to an environment (ID or name, optional) when the same Postgres database name exists in multiple environments. |
|
|
Narrow lookup to a project (ID or name, optional) when the same Postgres database name exists in multiple projects. |
Update an existing Render Postgres database.
The positional argument is the target database (ID dpg-... or name). At least
one mutating flag must be supplied. Use --name to rename the database; the
positional argument always identifies the target and is never the new name.
Environment, project, workspace, and region are immutable. A database cannot be
moved between them; the --project and --environment flags are for name
disambiguation only.
Only the fields you pass are changed; everything else is left untouched.
Name lookup is scoped to your active workspace. If a name isn't found, switch
workspaces with 'render workspace set <name|ID>' and try again, or pass the
Postgres ID instead (which works across workspaces). If a name matches more
than one database, narrow the search with --project <id|name> or
--environment <id|name>.
The --ip-allow-list flag replaces the server-side list; pass it once per entry.
To remove all allow-list entries, pass --clear-ip-allow-list. The two flags are
mutually exclusive.
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Remove all IP allow-list entries. Mutually exclusive with |
|
|
Set the Datadog API key for monitoring. Pass an empty string to remove. |
|
|
Set the Datadog region/site (e.g. US1, US3, EU) |
|
|
Enable disk autoscaling. Pass |
|
|
Set the disk size in GB. Must be 1 or a multiple of 5. |
|
|
Narrow lookup to an environment (ID or name, optional) when the same Postgres database name exists in multiple environments. |
|
|
Enable high availability (available for plans with at least 1 CPU). Pass |
|
|
Replace the IP allow-list with the supplied entries (format: |
|
|
Rename the database |
|
|
Set the plan to one of: free | 0.1c-256mb | 0.5c-1g | 1c-2g | 1c-4g | 2c-4g | 2c-8g | 2c-16g | 4c-16g | 4c-32g | 8c-32g | 8c-64g | 16c-64g | 16c-128g | 32c-128g | 32c-256g | 48c-192g | 48c-384g | 64c-256g | 64c-512g | 96c-384g | 96c-768g | 128c-512g | 128c-1024g. Custom enterprise plan names are also accepted. |
|
|
Narrow lookup to a project (ID or name, optional) when the same Postgres database name exists in multiple projects. |
Lists all services and datastores for the active workspace. In interactive mode, you can view logs, restart services, trigger deploys, SSH into instances, and connect to Render Postgres databases and Render Key Value instances.
Usage:
Aliases: service
Available commands:
| Command | Description |
|---|---|
|
Create a new service or clone an existing one | |
|
Delete a service | |
|
List instances for a service | |
|
Update configuration for an existing service |
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Filter services by comma-separated environment IDs |
|
|
Include preview environments |
Create a new service on Render. This command only runs in non-interactive modes. Provide configuration options with flags.
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Enable auto-deploy |
|
|
Set the Git branch |
|
|
Set the build command |
|
|
Set build filter ignored paths (can be specified multiple times) |
|
|
Set build filter paths (can be specified multiple times) |
|
|
Set the cron command |
|
|
Set the cron schedule |
|
|
Set environment variables in |
|
|
Set the environment ID |
|
|
Clone configuration from an existing service ID or name and override cloned values with other flags |
|
|
Set the health check path |
|
|
Set the Docker image URL |
|
|
Set IP allow list entries in |
|
|
Enable maintenance mode |
|
|
Set the maintenance mode URI |
|
|
Set max shutdown delay in seconds |
|
|
Set the service name |
|
|
Set the number of instances |
|
|
Set the service plan |
|
|
Set the pre-deploy command |
|
|
Set preview generation mode |
|
|
Set the publish directory |
|
|
Set the deployment region |
|
|
Set the registry credential |
|
|
Set the Git repository URL |
|
|
Set the root directory |
|
|
Set the runtime environment |
|
|
Set secret files in NAME: |
|
|
Set the start command |
|
|
Set the service type |
Delete a service on Render.
Without --confirm, this command previews what would be deleted and makes no
changes. Pass --confirm to actually delete the service.
The positional argument accepts a service ID (including srv- or crn- IDs) or a name. Name lookup is scoped to your active workspace. If the name matches more than one service, pass the service ID directly.
This command only runs non-interactively. If --output interactive is requested,
it falls back to text output.
Usage:
Examples:
Options:
Global options only
Update a service on Render. This command only runs in non-interactive modes.
Provide configuration updates with flags.
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Enable auto-deploy |
|
|
Git branch |
|
|
Build command |
|
|
Build filter ignored path (can be specified multiple times) |
|
|
Build filter path (can be specified multiple times) |
|
|
Cron command |
|
|
Cron schedule |
|
|
Health check path |
|
|
Docker image URL |
|
|
IP allow list entry in |
|
|
Enable maintenance mode |
|
|
Maintenance mode URI |
|
|
Max shutdown delay in seconds |
|
|
Service name |
|
|
Service plan |
|
|
Pre-deploy command |
|
|
Preview generation mode |
|
|
Publish directory |
|
|
Registry credential |
|
|
Git repository URL |
|
|
Root directory |
|
|
Runtime environment |
|
|
Start command |
Install and manage Render agent skills for AI coding tools such as Claude Code, Codex, OpenCode, and Cursor. Skills add deployment, debugging, and monitoring capabilities to your AI coding assistant.
Usage:
Available commands:
| Command | Description |
|---|---|
|
Install Render skills to AI coding tools | |
|
List installed Render skills and detected tools | |
|
Remove installed Render skills from AI coding tools | |
|
Update previously installed Render skills |
Options:
Global options only
Install Render agent skills from https://github.com/render-oss/skills to detected AI coding tools.
Supported tools: Claude Code, Codex, OpenCode, Cursor.
Skills can be installed at two scopes:
By default an interactive prompt lets you pick scope, tools, and skills. Use --scope, --tool, and --skill flags to skip the prompts (useful for CI).
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Show what would be installed without making changes |
|
|
Set installation scope to user or project (defaults to user) |
|
|
Install specific skills only (use |
|
|
Install skills to a specific tool only (claude, codex, opencode, or cursor) |
List installed Render skills and the AI tools they've been installed in. This reads from local state only, so the command doesn't require network access.
Use --scope to filter by installation scope (user or project).
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Filter skills by installation scope (user or project) |
Remove previously installed Render skills from detected AI coding tools.
By default an interactive prompt lets you pick which skills to remove. Use --skill and --all flags to skip the prompts.
Use --scope to remove from a specific scope (user or project).
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Remove all installed Render skills |
|
|
Remove skills from the specified scope (user or project) |
|
|
Remove specific skills only (use |
|
|
Remove skills from a specific tool only (claude, codex, opencode, or cursor) |
Reinstall Render skills using the tool and skill selections saved by a previous "render skills install" run.
This fetches the latest version of each selected skill from the skills repository, compares with installed versions, and updates any that have changed.
Use --scope to update skills at a specific scope (user or project).
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Reinstall all skills even if already up to date |
|
|
Update skills at the specified scope (user or project) |
Cancel an in-progress task run.
Use --local to cancel a task run in the local workflow development server.
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Run against the local workflow development server |
|
|
Set the port of the local task server |
Create a new workflow service on Render.
In interactive mode, a form guides you through the required fields. In non-interactive mode, provide all required config with flags.
Environment variables (non-interactive only for now):
Pass individual vars with --env-var KEY=VALUE (repeatable).
Load from one or more .env files with --env-file PATH (repeatable). Every
listed file must exist.
Inline --env-var values override values from --env-file.
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Autodeploy behavior (commit, off, checksPass; default: commit) |
|
|
Git branch (Optional) |
|
|
Build command. Required in non-interactive mode. |
|
|
Path to an env file to load. Repeat to load multiple files (later files override earlier ones). Every listed file must exist. |
|
|
Set environment variables in |
|
|
Workflow name. Required in non-interactive mode. |
|
|
Deployment region (default: oregon) |
|
|
Git repository URL, or a local directory path (e.g. '.') to resolve via the repo's origin remote. Required in non-interactive mode. |
|
|
Root directory in the repository (Optional) |
|
|
Command to run the workflow. Required in non-interactive mode. |
|
|
Runtime (node, python, go, ruby, elixir). Required in non-interactive mode. |
Start a workflow service in development mode for local testing. Required input: --
This command runs your workflow service locally on port 8120, allowing you to list and run tasks without deploying to Render. Task runs and their logs are stored in memory, so you can query them after tasks complete.
The command will spawn a new subprocess with your specified command whenever it needs to run a task or list the defined tasks.
To interact with the local task server:
Use the --local flag with other task commands (e.g., 'render workflows tasks list --local')
Or set RENDER_USE_LOCAL_DEV=true when using the workflow client SDK
To use a different port:
Specify --port when starting the dev server
Then use --port with other task commands, or set RENDER_LOCAL_DEV_URL in the SDK
Environment variables:
A .env file in the current directory is loaded automatically if present
Use --env-file to load one or more specific files (later files override earlier ones)
Loaded values override variables inherited from the parent shell
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Print detailed workflow task execution events |
|
|
Path to an env file to load into the workflow subprocess. Repeat to load multiple files (later files override earlier ones). |
|
|
Set the port of the local task server |
Scaffold a new Render Workflows project with example tasks.
Creates a working example project with task definitions, dependencies, and a README with instructions for local development and Client SDK integration.
In interactive mode you'll be prompted to select a language, template, output directory, and optional features. Use --confirm to skip all prompts and accept defaults, or pass individual flags to skip specific prompts.
With --confirm or non-interactive output (-o text/json/yaml), dependencies are installed and Git is initialized by default. Pass --install-deps=false or --git=false to opt out.
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Output directory (default: ./workflows-demo) |
|
|
Initialize a Git repository (default true with |
|
|
Install the Workflows agent skill for detected AI coding tools |
|
|
Install dependencies after scaffolding (default true with |
|
|
Language for the Render Workflows project (python, node) |
|
|
Template to scaffold (defaults to the repo's default template) |
Start a task with the provided input. In non-interactive mode, provide input with --input or --input-file.
You can specify the task by its workflow slug and task name (e.g., my-workflow/my-task), either as a positional argument or with --task.
Input Format: The input should be a JSON array where each element is an argument to the task. For example, if your task takes two arguments, provide: ["arg1", "arg2"]
You can provide input via:
--input with inline JSON
--input-file with a path to a JSON file
In interactive mode, you will be prompted to select the task and provide the input.
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Provide task input as a JSON array |
|
|
Read task input from a JSON file path |
|
|
Run against the local workflow development server |
|
|
Set the port of the local task server |
|
|
ID or slug of the task to run (alternative to the positional argument) |
List tasks and manage their runs
Usage:
Available commands:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Run against the local workflow development server |
|
|
Set the port of the local task server |
List all tasks defined in a workflow version.
Tasks are user-defined functions registered with the Render Workflows SDK. Each time you release a workflow service, Render creates a new workflow version and registers all tasks it finds in that version.
In interactive mode, you will be prompted to select a workflow if not provided.
Local Development:
When using the --local flag, you don't need to provide a workflow version ID. Instead, the command connects to your local dev server (default port 8120) to list tasks from your running workflow service. Start the dev server first with:
render workflows dev -- ""
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Run against the local workflow development server |
|
|
Set the port of the local task server |
Manage runs of workflow tasks.
A task run represents a single execution of a task with specific input parameters. Use these commands to start new runs, view task run history, inspect details, and cancel in-progress runs.
Usage:
Available commands:
| Command | Description |
|---|---|
|
Cancel a running task run | |
|
List all execution runs for a specific task | |
|
Show detailed information about a task run | |
|
Start a task run with the provided input |
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Run against the local workflow development server |
|
|
Set the port of the local task server |
Cancel an in-progress task run.
Use --local to cancel a task run in the local workflow development server.
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Run against the local workflow development server |
|
|
Set the port of the local task server |
List all execution runs for a specific task.
A task run represents a single execution of a task with specific input parameters. This command shows the history of all runs for a given task.
You can specify the task by its workflow slug and task name (e.g., my-workflow/my-task), either as a positional argument or with --task.
In interactive mode, you will be prompted to select a task if not provided.
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Run against the local workflow development server |
|
|
Set the port of the local task server |
|
|
ID or slug of the task whose runs to list (alternative to the positional argument) |
Display detailed information about a specific task run execution.
This command shows comprehensive information about a task run, including:
Task run ID and status
Input parameters provided
Output or error result
Start and completion timestamps
The task run ID is returned when you execute a task with: render workflows tasks runs start
In interactive mode, you will be prompted to select a task run if not provided.
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Run against the local workflow development server |
|
|
Set the port of the local task server |
Start a task with the provided input. In non-interactive mode, provide input with --input or --input-file.
You can specify the task by its workflow slug and task name (e.g., my-workflow/my-task), either as a positional argument or with --task.
Input Format: The input should be a JSON array where each element is an argument to the task. For example, if your task takes two arguments, provide: ["arg1", "arg2"]
You can provide input via:
--input with inline JSON
--input-file with a path to a JSON file
In interactive mode, you will be prompted to select the task and provide the input.
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Provide task input as a JSON array |
|
|
Read task input from a JSON file path |
|
|
Run against the local workflow development server |
|
|
Set the port of the local task server |
|
|
ID or slug of the task to run (alternative to the positional argument) |
List and release workflow versions
Usage:
Available commands:
Examples:
Options:
Global options only
List all versions of a workflow service.
Each time you release a workflow service, Render creates a new workflow version. A version represents a specific snapshot of your workflow service code and its registered tasks at the time of release.
This command displays all versions for a workflow, showing:
Version ID
Creation timestamp
Associated tasks
In interactive mode, you will be prompted to select a workflow if not provided.
Usage:
Examples:
Options:
Global options only
Release a new version of a workflow service.
This command triggers a new release of your workflow service on Render. With a new release, Render:
Pulls the latest code from your repository (or a specific commit)
Builds your workflow service
Registers all tasks it finds in the service
Creates a new workflow version
You can optionally specify a commit ID to release a specific version of your code.
In interactive mode, you will be prompted to:
Select a workflow if not provided
Confirm the release
Usage:
Examples:
Options:
Global options, plus:
| Option | Description |
|---|---|
|
|
Release the specified commit ID |
|
|
Wait for release completion and exit non-zero if release fails |
Set the CLI's active workspace. All CLI commands run against the active workspace.
The active workspace is saved in cli.yaml in the Render CLI config directory. Set the RENDER_CLI_CONFIG_DIR environment variable to override this directory. If unspecified, the config file is saved in $HOME/.render/cli.yaml.
Usage:
Options:
Global options only
$ render help <command>
render docs
# Open Render documentationrender docs
render environments <projectID>
# List environments for a projectrender environments prj-abc123
render kv-cli [keyValueID|keyValueName]
# Open an interactive kv-cli sessionrender kv-cli kv-abc123# Pass through redis-cli argumentsrender kv-cli kv-abc123 -- --scan
render login
# Authenticate with Renderrender login
render logout
render logs
# Tail logs for a servicerender logs --resources srv-abc123 --tail# Query logs in a time rangerender logs --resources srv-abc123 --start 2026-03-01T00:00:00Z --end 2026-03-01T01:00:00Z# Output logs as JSON in non-interactive moderender logs --resources srv-abc123 --output json
render pgcli [postgresID|postgresName]
# Open an interactive pgcli sessionrender pgcli pg-abc123# Pass through pgcli argumentsrender pgcli pg-abc123 -- --csv -q
render projects
# List projects in JSONrender projects --output json
render psql [postgresID|postgresName]
# Open an interactive psql sessionrender psql pg-abc123# Execute a SQL command in non-interactive moderender psql pg-abc123 --command "SELECT * FROM users;" --output text# Pass through psql argumentsrender psql pg-abc123 -- --csv -q
render restart <resourceID>
# Restart a servicerender restart srv-abc123# Restart a service without confirmation promptsrender restart srv-abc123 --confirm
render ssh [serviceID|serviceName|instanceID]
# Open an SSH session for a servicerender ssh srv-abc123# Connect to an ephemeral instancerender ssh srv-abc123 --ephemeral# Connect to an ephemeral instance with a specific planrender ssh srv-abc123 --ephemeral --plan 1c-2g# Pass through ssh argumentsrender ssh srv-abc123 -- -L 5432:localhost:5432
render whoami
# Show the currently authenticated userrender whoami
render workspaces
# List workspaces available to the current userrender workspaces
render blueprints validate [file]
# Validate ./render.yamlrender blueprints validate# Validate a specific Blueprint filerender blueprints validate ./my-blueprint.yaml# Output validation results as JSONrender blueprints validate -o json
render deploys cancel <serviceID> <deployID>
# Cancel a running deployrender deploys cancel srv-abc123 dep-xyz789
render deploys create [serviceID]
# Trigger a deploy for a servicerender deploys create srv-abc123# Deploy a specific commitrender deploys create srv-abc123 --commit 0123abcd# Wait until deploy completesrender deploys create srv-abc123 --wait
render deploys list [serviceID]
# List deploys for a servicerender deploys list srv-abc123# Browse deploys interactivelyrender deploys list
render jobs cancel <serviceID> <jobID>
# Cancel a running jobrender jobs cancel srv-abc123 job-xyz789
render jobs create [serviceID]
# Create a job for a servicerender jobs create srv-abc123 --start-command "bundle exec rake task"# Create a job with a specific plan# See https://render.com/docs/one-off-jobs for available job plansrender jobs create srv-abc123 --start-command "npm run worker" --plan-id plan-srv-006
render jobs list [serviceID]
# List jobs for a servicerender jobs list srv-abc123# Browse jobs interactivelyrender jobs list
render kv create
# Interactive wizard (guided prompts for each option)render kv create# Specify all options; wizard still asks for confirmation before creatingrender kv create --name my-cache --plan 256mb --region oregon# Skip all prompts and create immediately (no confirmation)render kv create --name my-cache --plan free --confirm# Machine-readable output (non-interactive, no prompts)render kv create --name my-cache --plan 256mb --output json# Use as a cache with no on-disk persistencerender kv create --name my-cache --plan 256mb --persistence-mode off# With IP allow-listing (repeat the flag for multiple entries)render kv create --name my-cache \--ip-allow-list "cidr=203.0.113.5/32,description=office" \--ip-allow-list "cidr=10.0.0.0/8,description=internal"
render kv delete <keyValueID|keyValueName>
# Preview deletion (no changes made)render kv delete red-abc123def456ghi789jkl0# Delete by IDrender kv delete red-abc123def456ghi789jkl0 --confirm# Delete by namerender kv delete my-cache --confirm# Disambiguate a name that exists in multiple environmentsrender kv delete my-cache --environment production --confirm# JSON outputrender kv delete red-abc123def456ghi789jkl0 --confirm --output json
render kv get <keyValueID|keyValueName>
# Get by IDrender kv get red-abc123def456ghi789jkl0# Get by namerender kv get my-cache# Include connection strings (contains credentials)render kv get my-cache --include-sensitive-connection-info# Disambiguate by projectrender kv get my-cache --project my-project# Disambiguate a name that exists in multiple environmentsrender kv get my-cache --environment production# JSON outputrender kv get red-abc123def456ghi789jkl0 --output json
render kv list
# List all Key Value instances in the active workspacerender kv list# List all Key Value instances in a projectrender kv list --project my-project# Filter by environment namerender kv list --environment production# Disambiguate an environment name by projectrender kv list --project my-project --environment production# JSON outputrender kv list --output json
render kv resume <keyValueID|keyValueName>
# Resume by IDrender kv resume red-abc123def456ghi789jkl0# Resume by namerender kv resume my-cache# Disambiguate a name that exists in multiple environmentsrender kv resume my-cache --environment production# JSON outputrender kv resume red-abc123def456ghi789jkl0 --output json
render kv suspend <keyValueID|keyValueName>
# Preview suspension (no changes made)render kv suspend red-abc123def456ghi789jkl0# Suspend by IDrender kv suspend red-abc123def456ghi789jkl0 --confirm# Suspend by namerender kv suspend my-cache --confirm# Disambiguate a name that exists in multiple environmentsrender kv suspend my-cache --environment production --confirm# JSON outputrender kv suspend red-abc123def456ghi789jkl0 --confirm --output json
render kv update <keyValueID|keyValueName>
# Renamerender kv update red-abc123def456ghi789jkl0 --name new-cache-name# Change planrender kv update my-cache --plan 1g# Replace the IP allow-list (entire list, not append)render kv update my-cache \--ip-allow-list "cidr=203.0.113.5/32,description=office" \--ip-allow-list "cidr=10.0.0.0/8,description=internal"# Clear the IP allow-listrender kv update my-cache --clear-ip-allow-list# Disambiguate a name that exists in multiple environmentsrender kv update my-cache --environment production --memory-policy queue# Turn off on-disk persistencerender kv update my-cache --persistence-mode off# JSON outputrender kv update red-abc123def456ghi789jkl0 --plan 5g --output json
render pg create
# Launch the interactive wizardrender pg create# Create immediately with defaults and text outputrender pg create --confirm# Create immediately with explicit valuesrender pg create --confirm --name analytics --plan 2c-8g --version 17 --region ohio# Include flag-only settings while using the wizard for prompted valuesrender pg create \--ip-allow-list "cidr=203.0.113.5/32,description=office" \--ip-allow-list "cidr=10.0.0.0/8,description=internal"# Machine-readable outputrender pg create --output json
render pg delete <postgresID|postgresName>
# Preview deletion (no changes made)render pg delete dpg-abc123def456ghi789jkl0# Delete by IDrender pg delete dpg-abc123def456ghi789jkl0 --confirm# Delete by namerender pg delete my-db --confirm# Disambiguate a name that exists in multiple environmentsrender pg delete my-db --environment production --confirm# Disambiguate a name that exists in multiple projectsrender pg delete my-db --project analytics --confirm# JSON outputrender pg delete dpg-abc123def456ghi789jkl0 --confirm --output json
render pg get <postgresID|postgresName>
# Get by IDrender pg get dpg-abc123def456ghi789jkl0# Get by namerender pg get my-db# Include connection strings (contains credentials)render pg get my-db --include-sensitive-connection-info# Disambiguate by projectrender pg get my-db --project my-project# Disambiguate a name that exists in multiple environmentsrender pg get my-db --environment production# JSON outputrender pg get dpg-abc123def456ghi789jkl0 --output json
render pg list
# List all Postgres databases in the active workspacerender pg list# List all Postgres databases in a projectrender pg list --project my-project# Filter by environment namerender pg list --environment production# Disambiguate an environment name by projectrender pg list --project my-project --environment production# JSON outputrender pg list --output json
render pg resume <postgresID|postgresName>
# Resume by IDrender pg resume dpg-abc123def456ghi789jkl0# Resume by namerender pg resume my-db# Disambiguate a name that exists in multiple environmentsrender pg resume my-db --environment production# Disambiguate a name that exists in multiple projectsrender pg resume my-db --project analytics# JSON outputrender pg resume dpg-abc123def456ghi789jkl0 --output json
render pg suspend <postgresID|postgresName>
# Preview suspension (no changes made)render pg suspend dpg-abc123def456ghi789jkl0# Suspend by IDrender pg suspend dpg-abc123def456ghi789jkl0 --confirm# Suspend by namerender pg suspend my-db --confirm# Disambiguate a name that exists in multiple environmentsrender pg suspend my-db --environment production --confirm# Disambiguate a name that exists in multiple projectsrender pg suspend my-db --project analytics --confirm# JSON outputrender pg suspend dpg-abc123def456ghi789jkl0 --confirm --output json
render pg update <postgresID|postgresName>
# Renamerender pg update dpg-abc123def456ghi789jkl0 --name application_db# Change planrender pg update my-db --plan 1c-4g# Grow the disk and enable autoscalingrender pg update my-db --disk-size-gb 50 --disk-autoscaling# Replace the IP allow-list (entire list, not append)render pg update my-db \--ip-allow-list "cidr=203.0.113.5/32,description=office" \--ip-allow-list "cidr=10.0.0.0/8,description=internal"# Clear the IP allow-listrender pg update my-db --clear-ip-allow-list# Disambiguate a name that exists in multiple environmentsrender pg update my-db --environment production --plan 2c-8g# JSON outputrender pg update dpg-abc123def456ghi789jkl0 --plan 1c-4g --output json
render services
# List all servicesrender services# Output as JSONrender services --output json# Filter by environmentrender services -e env-abc123# Include preview environmentsrender services --include-previews# Combine filtersrender services -e env-abc123,env-def456 --include-previews --output json
render services create
# Create a service from repository configurationrender services create --name my-api --type web_service --repo https://github.com/org/repo --runtime node --build-command "npm install" --start-command "npm start" --output json# Clone configuration from an existing servicerender services create --from srv-abc123 --name my-api-clone --output json
render services delete <serviceID|serviceName>
# Preview deletion (no changes made)render services delete srv-abc123def456ghi789jkl0# Delete by IDrender services delete srv-abc123def456ghi789jkl0 --confirm# Delete by namerender services delete my-api --confirm# JSON outputrender services delete srv-abc123def456ghi789jkl0 --confirm --output json
render services instances [serviceID]
# List instances for a servicerender services instances srv-abc123# Browse instances interactivelyrender services instances
render services update <service>
# Rename a servicerender services update my-service --name my-new-name --output json# Change a service planrender services update srv-abc123 --plan 2c-4g --output json
render skills
render skills install
# Install skills interactivelyrender skills install# Install for a specific tool and scoperender skills install --tool cursor --scope project# Preview install changesrender skills install --dry-run
render skills list
# List all installed skillsrender skills list# List project-scoped skills onlyrender skills list --scope project
render skills remove
# Remove skills interactivelyrender skills remove# Remove specific skillsrender skills remove --skill render-deploy --skill render-debug# Remove all project-scoped skillsrender skills remove --all --scope project
render skills update
# Update installed skillsrender skills update# Force reinstall all skillsrender skills update --force# Update project-scoped skillsrender skills update --scope project
render workflows cancel <taskRunID>
# Cancel a remote task runrender workflows cancel trn-abc123# Cancel a task run in the local dev serverrender workflows cancel --local trn-xyz789
render workflows create
render workflows createrender workflows create --name my-workflow --repo https://github.com/org/repo --build-command "npm install" --runtime node --run-command "npm start" --region oregon -o jsonrender workflows create --repo . --name my-workflow --build-command "npm install" --runtime node --run-command "npm start"render workflows create --repo . --name my-workflow --build-command "pip install -r requirements.txt" --runtime python --run-command ".venv/bin/python main.py" --env-file .env.production --env-var LOG_LEVEL=debug
render workflows dev -- <command to start a workflow service>
# Start local workflow development serverrender workflows dev -- "python main.py"# Start local workflow development server on a custom portrender workflows dev --port 9000 -- "npm start"# Load environment variables from custom filesrender workflows dev --env-file .env --env-file .env.local -- "python main.py"# List local tasks from another terminalrender workflows tasks list --local
render workflows init
# Scaffold with default settingsrender workflows init# Skip prompts and use Pythonrender workflows init --confirm --language python# Skip prompts and disable Git initializationrender workflows init --confirm --language python --git=false# Customize output directory and enable optional featuresrender workflows init --language python --dir my-project --install-deps --git# Use Node.js with a custom directoryrender workflows init --language node --dir my-project
render workflows list
# List workflows in the active workspacerender workflows list
render workflows start [taskSlug]
# Start a task run by task slugrender workflows start my-workflow/my-task --input='["arg1"]'# Start a task run with --taskrender workflows start --task tsk-1234 --input='["arg1", "arg2"]'# Start a task run with input from a filerender workflows start my-task --input-file=input.json# Start against the local workflow development serverrender workflows start my-task --local --input='["test"]'
render workflows tasks
# List tasks in a workflow versionrender workflows tasks list wfv-1234# Start a task runrender workflows tasks runs start --task my-task --input='["arg1"]'# List task runs for a taskrender workflows tasks runs list --task my-task
render workflows tasks list [workflowVersionID]
# List tasks for a workflow versionrender workflows tasks list wfv-1234# List tasks from local workflow development serverrender workflows tasks list --local
render workflows tasks runs
# Start a task runrender workflows tasks runs start --task my-task --input='["arg1"]'# List task runs for a taskrender workflows tasks runs list --task my-task# Show details for a task runrender workflows tasks runs show trn-1234# Cancel a task runrender workflows tasks runs cancel trn-1234
render workflows tasks runs cancel [taskRunID]
# Cancel a remote task runrender workflows tasks runs cancel trn-abc123# Use the top-level shortcutrender workflows cancel trn-abc123# Cancel a task run in the local dev serverrender workflows tasks runs cancel --local trn-xyz789
render workflows tasks runs list [taskID]
# List task runs by task IDrender workflows tasks runs list --task tsk-1234# List task runs by task slugrender workflows tasks runs list --task my-workflow/my-task# List task runs by passing the task as a positional argumentrender workflows tasks runs list my-workflow/my-task# List task runs from local workflow development serverrender workflows tasks runs list --local --task my-task
render workflows tasks runs show [taskRunID]
# Show details for a task runrender workflows tasks runs show trn-1234# Show details from local workflow development serverrender workflows tasks runs show --local trn-5678
render workflows tasks runs start [taskSlug]
# Start a task run with inline JSON inputrender workflows tasks runs start --task tsk-1234 --input='["arg1", "arg2"]'# Start a task run by passing the task as a positional argumentrender workflows tasks runs start my-workflow/my-task --input='["arg1"]'# Start a task run with input from a filerender workflows tasks runs start --task my-task --input-file=input.json# Start a task run against local workflow development serverrender workflows tasks runs start --task my-task --local --input='["test"]'
render workflows versions
# List versions for a workflowrender workflows versions list wf-abc123# Release a new workflow versionrender workflows versions release wf-abc123
render workflows versions list [workflowID]
# List versions by workflow IDrender workflows versions list wf-1234# List versions by workflow slugrender workflows versions list my-workflow-slug
render workflows versions release [workflowID]
# Release a new versionrender workflows versions release wf-1234# Release from a specific commitrender workflows versions release wf-1234 --commit abc123# Wait for release completionrender workflows versions release wf-1234 --wait
render workspace current
# Show the active workspacerender workspace current
render workspace set [workspaceName|workspaceID]
| Web Proxy Viewer | New URL | Original Page |