tag:github.com,2008:https://github.com/render-oss/cli/releasesRelease notes from cli2026-03-14T04:14:17Ztag:github.com,2008:Repository/869646043/v2.14.02026-03-14T04:22:46Zv2.14.0<h2>What's New</h2>
<h3>Added</h3>
<ul>
<li>Support for IP allow list, previews, and additional service fields in <code>services create</code></li>
<li><code>workflows init</code> command for scaffolding new workflow projects from templates</li>
<li>Added local workflows task output to local task server logs</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Reformatted CLI help output with new visual styles</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fixed flag parsing to preserve user intent by treating unset flags as nil</li>
<li>Fixed local workflows task runs not being visible in interactive list</li>
</ul>
<hr>
<p><strong>Full Changelog:</strong> <a href="https://github.com/renderinc/cli/blob/main/CHANGELOG.md">CHANGELOG.md</a></p>blue-kelehertag:github.com,2008:Repository/869646043/v2.13.02026-03-09T23:28:06Zv2.13.0<h2>What's New</h2>
<h3>Added</h3>
<ul>
<li><code>Service Create</code> command to create services via the cli</li>
</ul>
<hr>
<p><strong>Full Changelog:</strong> <a href="https://github.com/renderinc/cli/blob/main/CHANGELOG.md">CHANGELOG.md</a></p>mosslilleytag:github.com,2008:Repository/869646043/v2.12.02026-03-06T18:14:12Zv2.12.0<h2>What's New</h2>
<h3>Added</h3>
<ul>
<li>Support for paginated workflows task run listing</li>
<li>Handle <code>succeeded</code> workflows task run status</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Renamed "task identifier" / "task ID" to "task slug" in error messages and help text for workflows</li>
</ul>
<hr>
<p><strong>Full Changelog:</strong> <a href="https://github.com/renderinc/cli/blob/main/CHANGELOG.md">CHANGELOG.md</a></p>blue-kelehertag:github.com,2008:Repository/869646043/v2.11.02026-03-04T04:50:30Zv2.11.0<h2>What's New</h2>
<h3>Added</h3>
<h4>Workflows</h4>
<ul>
<li><code>render workflows list</code> interactive palette for browsing and managing workflows</li>
<li>Support for named-parameter (object) input for task runs (Python workflows only)</li>
</ul>
<h4>Early Access</h4>
<ul>
<li><code>render ea objects delete</code> supports deleting multiple objects</li>
</ul>
<h3>Changed</h3>
<h4>General</h4>
<ul>
<li>Skip auth and workspace selection prompts for <code>--local</code> commands</li>
</ul>
<h4>Workflows</h4>
<ul>
<li><strong>Breaking:</strong> Promoted workflows commands from <code>render ea</code> to <code>render workflows</code></li>
<li><strong>Breaking:</strong> Moved <code>taskruns start</code> to <code>tasks start</code></li>
<li><strong>Breaking:</strong> Renamed <code>taskruns</code> command to <code>runs</code></li>
<li>Moved local development <code>dev</code> command from <code>workflows tasks</code> to <code>workflows</code></li>
<li>Skip version selection step in interactive task navigation (use most recent version)</li>
<li>Use compact tables for workflows task and task run lists</li>
<li>Improved <code>tasks dev</code> startup output</li>
</ul>
<h3>Fixed</h3>
<h4>General</h4>
<ul>
<li>Show loading spinner in content pane only, keeping header and footer visible</li>
</ul>
<h4>Workflows</h4>
<ul>
<li>Fixed <code>--wait</code> on <code>versions release</code> to poll until completion</li>
<li>Fixed <code>tasks dev</code> hang when start command is invalid or crashes</li>
<li>Fixed local task run input display and interactive mode bugs</li>
<li>Fixed local <code>taskruns list</code> when no task id specified or id is a slug</li>
<li>Fixed local dev server generating UUIDs instead of XIDs for task IDs</li>
<li>Fixed local dev server logs endpoint returning incorrect response format</li>
<li>Fixed referencing local dev server tasks by slug only</li>
<li>Fixed malformed format string in <code>taskruns show -o text</code></li>
<li>Fixed "service id" error typo when validating TaskRunInput</li>
<li>Fixed missing parent and root task ids in local task runs</li>
<li>Fixed local dev server returning task runs with <code>attempts: null</code></li>
<li>Fixed error message when starting a task run for a nonexistent task in local dev</li>
</ul>
<hr>
<p><strong>Full Changelog:</strong> <a href="https://github.com/renderinc/cli/blob/main/CHANGELOG.md">CHANGELOG.md</a></p>blue-kelehertag:github.com,2008:Repository/869646043/v2.102026-02-17T17:37:19Zv2.10<h2>Fixes & Improvements</h2>
<ul>
<li><strong>Render skills CLI management</strong>: We added a CLI command to help users install, update and manage skills for AI agents from <a href="https://github.com/render-oss/skills">render-oss/skills</a>.</li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/render-oss/cli/compare/v2.9.1...v2.10"><tt>v2.9.1...v2.10</tt></a></p>mosslilleytag:github.com,2008:Repository/869646043/v2.9.12026-02-12T17:10:15Zv2.9.1<h2>Fixes & Improvements</h2>
<ul>
<li><strong>Restore text as default output format for non-TTY output</strong>: when the CLI detects a non-interactive context (e.g., piped output), the auto-resolved output format is <code>text</code>. Previously, <a href="https://github.com/render-oss/cli/releases/tag/v2.9.0">v2.9.0</a> changed the default output to JSON for non-interactive contexts.</li>
<li><strong>Show user email in workspaces header</strong>: the breadcrumb header for <code>render workspaces</code> displays the user's email instead of the workspace name (<code>[user email] > Workspaces</code>)</li>
<li><strong>Pre-select current workspace</strong>: For both <code>render workspaces</code> and <code>render workspace set</code>, the current workspace is pre-selected in the TUI</li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/render-oss/cli/compare/v2.9.0...v2.9.1"><tt>v2.9.0...v2.9.1</tt></a></p>metonymtag:github.com,2008:Repository/869646043/v2.9.02026-02-18T17:27:32Zv2.9.0<h2>Features</h2>
<h3>Ephemeral shell via <code>render ssh</code></h3>
<p>Connect to a temporary, isolated shell instance with <code>--ephemeral</code> / <code>-e</code>.</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# Interactive: select a service from the current workspace, then connect ephemerally
render ssh
# Launch an ephemeral shell for a service
render ssh my-service --ephemeral
# Short flag
render ssh my-service -e"><pre><span class="pl-c"><span class="pl-c">#</span> Interactive: select a service from the current workspace, then connect ephemerally</span>
render ssh
<span class="pl-c"><span class="pl-c">#</span> Launch an ephemeral shell for a service</span>
render ssh my-service --ephemeral
<span class="pl-c"><span class="pl-c">#</span> Short flag</span>
render ssh my-service -e</pre></div>
<h3>Support <code>RENDER_OUTPUT</code> env var</h3>
<p>Globally configure an output format without needing to specify it with every command.</p>
<p>Order of precedence:</p>
<ol>
<li>Value of a command's <code>--output</code> / <code>-o</code> flag</li>
<li>Value of <code>RENDER_OUTPUT</code> environment variable</li>
<li>Auto-detection based on TTY/CI signals</li>
</ol>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# Set default output format for all commands
export RENDER_OUTPUT=json
# Override default per command
render services list -o yaml"><pre><span class="pl-c"><span class="pl-c">#</span> Set default output format for all commands</span>
<span class="pl-k">export</span> RENDER_OUTPUT=json
<span class="pl-c"><span class="pl-c">#</span> Override default per command</span>
render services list -o yaml</pre></div>
<hr>
<h2>Fixes & Improvements</h2>
<ul>
<li>Support <code>~</code> expansion in file path flags. <code>--flag=~/path</code> now correctly resolves to <code>$HOME/path</code> for <code>objects put/get --file</code>, <code>taskruns start --input-file</code>, and <code>blueprints validate [file]</code></li>
<li>Skip TUI for non-interactive commands. Eliminates a visual flash for commands that don't render a TUI</li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/render-oss/cli/compare/v2.8.0...v2.9.0"><tt>v2.8.0...v2.9.0</tt></a></p>metonymtag:github.com,2008:Repository/869646043/v2.8.02026-02-09T22:01:06Zv2.8.0<h2>Features</h2>
<ul>
<li>
<p><code>render psql</code> now supports non-interactive usage:</p>
<ul>
<li><code>--command</code> / <code>-c</code> — run a query and exit; output format via <code>-o json|yaml|text</code>.</li>
<li>Passthrough of extra <code>psql</code> flags via <code>-- [args]</code> (e.g. <code>-- --csv</code>, <code>-- -t -A</code>).</li>
</ul>
<p>Examples:</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# Interactive mode (default)
render psql my-database
# Single value, plain text
render psql my-database -c "SELECT NOW();" -o text
# Table as JSON or YAML (e.g. for scripts or tooling)
render psql my-database -c "SELECT id, name FROM projects LIMIT 5;" -o json
render psql my-database -c "SELECT id, name FROM projects LIMIT 5;" -o yaml
# CSV output via psql passthrough
render psql my-database -c "SELECT id, email FROM users;" -o text -- --csv
# Multiple queries in one call (separate with semicolons)
render psql my-database -c "SELECT 1 AS a; SELECT 2 AS b;" -o text"><pre><span class="pl-c"><span class="pl-c">#</span> Interactive mode (default)</span>
render psql my-database
<span class="pl-c"><span class="pl-c">#</span> Single value, plain text</span>
render psql my-database -c <span class="pl-s"><span class="pl-pds">"</span>SELECT NOW();<span class="pl-pds">"</span></span> -o text
<span class="pl-c"><span class="pl-c">#</span> Table as JSON or YAML (e.g. for scripts or tooling)</span>
render psql my-database -c <span class="pl-s"><span class="pl-pds">"</span>SELECT id, name FROM projects LIMIT 5;<span class="pl-pds">"</span></span> -o json
render psql my-database -c <span class="pl-s"><span class="pl-pds">"</span>SELECT id, name FROM projects LIMIT 5;<span class="pl-pds">"</span></span> -o yaml
<span class="pl-c"><span class="pl-c">#</span> CSV output via psql passthrough</span>
render psql my-database -c <span class="pl-s"><span class="pl-pds">"</span>SELECT id, email FROM users;<span class="pl-pds">"</span></span> -o text -- --csv
<span class="pl-c"><span class="pl-c">#</span> Multiple queries in one call (separate with semicolons)</span>
render psql my-database -c <span class="pl-s"><span class="pl-pds">"</span>SELECT 1 AS a; SELECT 2 AS b;<span class="pl-pds">"</span></span> -o text</pre></div>
</li>
<li>
<p><code>render workspaces</code> lists available workspaces</p>
<ul>
<li>Interactive (default) and non-interactive output: <code>-o text</code>, <code>-o json</code>, <code>-o yaml</code>.</li>
</ul>
<p>Examples:</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# Interactive mode (default): browse workspaces in the terminal
render workspaces
# Plain text table (e.g. for logs or quick scans)
render workspaces -o text
# JSON for scripts, CI, or piping into jq
render workspaces -o json
render workspaces -o json | jq '.[].name'
# YAML for config or docs
render workspaces -o yaml"><pre><span class="pl-c"><span class="pl-c">#</span> Interactive mode (default): browse workspaces in the terminal</span>
render workspaces
<span class="pl-c"><span class="pl-c">#</span> Plain text table (e.g. for logs or quick scans)</span>
render workspaces -o text
<span class="pl-c"><span class="pl-c">#</span> JSON for scripts, CI, or piping into jq</span>
render workspaces -o json
render workspaces -o json <span class="pl-k">|</span> jq <span class="pl-s"><span class="pl-pds">'</span>.[].name<span class="pl-pds">'</span></span>
<span class="pl-c"><span class="pl-c">#</span> YAML for config or docs</span>
render workspaces -o yaml</pre></div>
</li>
</ul>
<hr>
<h2>Fixes & Improvements</h2>
<ul>
<li><code>--version</code> prints new version if available</li>
<li>Fixed anchor link for installation instructions URL</li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/render-oss/cli/compare/v2.7.1...v2.8.0"><tt>v2.7.1...v2.8.0</tt></a></p>metonymtag:github.com,2008:Repository/869646043/v2.7.12026-01-28T00:47:21Zv2.7.1<p>Changing blueprint Validate types to KeyValue from Redis</p>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/render-oss/cli/compare/v2.7.0...v2.7.1"><tt>v2.7.0...v2.7.1</tt></a></p>mosslilleytag:github.com,2008:Repository/869646043/v2.7.02026-01-26T22:12:23Zv2.7.0<p>Added <code>blueprint validate</code> command</p>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/render-oss/cli/compare/v2.6.1...v2.7.0"><tt>v2.6.1...v2.7.0</tt></a></p>mosslilley