<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>Aspire Blog</provider_name><provider_url>https://devblogs.microsoft.com/aspire</provider_url><author_name>Mitch Denny</author_name><author_url>https://devblogs.microsoft.com/aspire/author/mitchdenny/</author_url><title>Bringing rich terminal experiences to Aspire</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="wt0diiXarZ"&gt;&lt;a href="https://devblogs.microsoft.com/aspire/aspire-terminal-support/"&gt;Bringing rich terminal experiences to Aspire&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://devblogs.microsoft.com/aspire/aspire-terminal-support/embed/#?secret=wt0diiXarZ" width="600" height="338" title="&#x201C;Bringing rich terminal experiences to Aspire&#x201D; &#x2014; Aspire Blog" data-secret="wt0diiXarZ" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script&gt;
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://devblogs.microsoft.com/aspire/wp-includes/js/wp-embed.min.js
&lt;/script&gt;
</html><thumbnail_url>https://devblogs.microsoft.com/aspire/wp-content/uploads/sites/90/2026/10/noderepl-scaled.webp</thumbnail_url><thumbnail_width>2500</thumbnail_width><thumbnail_height>1401</thumbnail_height><description>Aspire 13.5 introduced WithTerminal() for interactive terminal sessions on app resources. Aspire 13.6 builds on it with richer terminal emulation and docked terminals for REPLs. See how to enable, attach to, and automate terminal experiences in your app.</description></oembed>
