tag:github.com,2008:https://github.com/render-oss/cli/releases Release notes from cli 2026-03-14T04:14:17Z tag:github.com,2008:Repository/869646043/v2.14.0 2026-03-14T04:22:46Z v2.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-keleher tag:github.com,2008:Repository/869646043/v2.13.0 2026-03-09T23:28:06Z v2.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> mosslilley tag:github.com,2008:Repository/869646043/v2.12.0 2026-03-06T18:14:12Z v2.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-keleher tag:github.com,2008:Repository/869646043/v2.11.0 2026-03-04T04:50:30Z v2.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-keleher tag:github.com,2008:Repository/869646043/v2.10 2026-02-17T17:37:19Z v2.10 <h2>Fixes &amp; 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> mosslilley tag:github.com,2008:Repository/869646043/v2.9.1 2026-02-12T17:10:15Z v2.9.1 <h2>Fixes &amp; 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] &gt; 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> metonym tag:github.com,2008:Repository/869646043/v2.9.0 2026-02-18T17:27:32Z v2.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 &amp; 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> metonym tag:github.com,2008:Repository/869646043/v2.8.0 2026-02-09T22:01:06Z v2.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 &quot;SELECT NOW();&quot; -o text # Table as JSON or YAML (e.g. for scripts or tooling) render psql my-database -c &quot;SELECT id, name FROM projects LIMIT 5;&quot; -o json render psql my-database -c &quot;SELECT id, name FROM projects LIMIT 5;&quot; -o yaml # CSV output via psql passthrough render psql my-database -c &quot;SELECT id, email FROM users;&quot; -o text -- --csv # Multiple queries in one call (separate with semicolons) render psql my-database -c &quot;SELECT 1 AS a; SELECT 2 AS b;&quot; -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 &amp; 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> metonym tag:github.com,2008:Repository/869646043/v2.7.1 2026-01-28T00:47:21Z v2.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> mosslilley tag:github.com,2008:Repository/869646043/v2.7.0 2026-01-26T22:12:23Z v2.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