<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/aspire-13-5-fresh-pixels-and-better-workflows-5kngrcvt9" -->

---
title: Aspire 13.5: Fresh pixels and better workflows | daily.dev
description: Microsoft's .NET Aspire 13.5 release brings a visual refresh to the dashboard and aspire.dev homepage, plus a slate of quality-of-life features. The...
canonical: https://daily.dev/posts/aspire-13-5-fresh-pixels-and-better-workflows-5kngrcvt9
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Aspire 13.5: Fresh pixels and better workflows | daily.dev
og:description: Microsoft's .NET Aspire 13.5 release brings a visual refresh to the dashboard and aspire.dev homepage, plus a slate of quality-of-life features. The...
og:url: https://daily.dev/posts/aspire-13-5-fresh-pixels-and-better-workflows-5kngrcvt9
og:image: https://api.daily.dev/og/posts/5kngRcvT9.png
og:image:alt: Aspire 13.5: Fresh pixels and better workflows
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Aspire 13.5: Fresh pixels and better workflows

**[DevBlogs](https://daily.dev/sources/devblogs)** · 6 min read · 4 upvotes · 0 comments

## Summary

Microsoft's .NET Aspire 13.5 release brings a visual refresh to the dashboard and aspire.dev homepage, plus a slate of quality-of-life features. The Interaction Service now supports file uploads and progress dialogs for resource commands, and a new WithTerminal() API embeds live interactive terminal sessions directly in the dashboard. Deployment modeling gets richer too: Kubernetes environments can define persistent volumes bound to workloads, and Azure resources can be referenced across subscriptions, resource groups, and tenants via new AsExisting* methods. The Aspire CLI is now distributed through Homebrew, WinGet, npm, Nix, mise, and NuGet in addition to existing install paths.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://devblogs.microsoft.com/aspire/whats-new-aspire-13-5>

## Questions this post answers

### How do I add a persistent volume to a Kubernetes environment in Aspire 13.5?

Use AddPersistentVolume on a Kubernetes environment, then configure storage class, capacity, and access mode before binding it to a container or project. For example, k8s.AddPersistentVolume("data").WithStorageClass("managed-csi").WithCapacity("20Gi").WithAccessMode(PersistentVolumeAccessMode.ReadWriteOnce), then attach it with WithVolume and WithPersistentVolume; Aspire emits the PVC and renders the workload as a StatefulSet. This is a preview API under diagnostic ASPIRECOMPUTE002.

_Teams modeling stateful Kubernetes workloads can follow Aspire persistent volume changes on daily.dev._

### How can I reference an existing Azure resource from a different subscription or tenant in an Aspire AppHost?

Aspire 13.5 adds AsExistingInResourceGroup(...), AsExistingInSubscription(...), and AsExistingInTenant(...) methods, with run-mode and publish-mode variants, so an AppHost can point at Service Bus or other resources owned by another team or outside its own resource group. Names and scopes can be literal values or Aspire parameters, keeping environment specifics out of source while the reference stays part of the deployment model.

_Developers wiring shared Azure infrastructure into an AppHost can track Aspire deployment updates on daily.dev._

### How does the WithTerminal() feature work in Aspire's dashboard?

Adding WithTerminal() to a resource gives it a live, interactive terminal session inside the Aspire dashboard, letting a developer type into REPLs, shells, or TUIs, switch between replicas, and toggle back to normal console logs without ending the session. Multiple viewers, including a dashboard tab and a local terminal via the aspire terminal CLI command, can attach to the same process at once. It is an experimental preview feature in Aspire 13.5.

_Engineers debugging interactive CLI tools inside distributed apps can follow Aspire terminal features on daily.dev._

## Similar posts on daily.dev

- [Microsoft Releases Aspire 13.3 with Major Deployment and Frontend Updates](https://daily.dev/posts/microsoft-releases-aspire-13-3-with-major-deployment-and-frontend-updates-r5riwdgk3) · InfoQ · 9 upvotes · 1 comments
- [Aspire 13.2 Released with Expanded CLI, TypeScript AppHost Preview, and Dashboard Improvements](https://daily.dev/posts/aspire-13-2-released-with-expanded-cli-typescript-apphost-preview-and-dashboard-improvements-d9co5tm82) · InfoQ · 0 upvotes · 0 comments

---

Tags: [#kubernetes](https://daily.dev/tags/kubernetes), [#azure](https://daily.dev/tags/azure), [#.net](https://daily.dev/tags/.net), [#cli](https://daily.dev/tags/cli)

[View this post on daily.dev](https://daily.dev/posts/aspire-13-5-fresh-pixels-and-better-workflows-5kngrcvt9)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Aspire 13.5: Fresh pixels and better workflows","url":"https://daily.dev/posts/aspire-13-5-fresh-pixels-and-better-workflows-5kngrcvt9","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/aspire-13-5-fresh-pixels-and-better-workflows-5kngrcvt9"},"datePublished":"2026-08-18T22:10:48.905Z","dateModified":"2026-09-14T07:30:46.230Z","description":"Microsoft's .NET Aspire 13.5 release brings a visual refresh to the dashboard and aspire.dev homepage, plus a slate of quality-of-life features. The...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b9df15bcc1011f821887d17f84a1f013?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b9df15bcc1011f821887d17f84a1f013?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"DevBlogs","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"DevBlogs","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/8f68b453325f482ebeb73fb780092713","url":"https://daily.dev/sources/devblogs"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/aspire-13-5-fresh-pixels-and-better-workflows-5kngrcvt9","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":4},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"kubernetes,azure,.net,cli","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"DevBlogs","item":"https://daily.dev/sources/devblogs"},{"@type":"ListItem","position":3,"name":"Aspire 13.5: Fresh pixels and better workflows"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/aspire-13-5-fresh-pixels-and-better-workflows-5kngrcvt9#faq","mainEntity":[{"@type":"Question","name":"How do I add a persistent volume to a Kubernetes environment in Aspire 13.5?","acceptedAnswer":{"@type":"Answer","text":"Use AddPersistentVolume on a Kubernetes environment, then configure storage class, capacity, and access mode before binding it to a container or project. For example, k8s.AddPersistentVolume(\"data\").WithStorageClass(\"managed-csi\").WithCapacity(\"20Gi\").WithAccessMode(PersistentVolumeAccessMode.ReadWriteOnce), then attach it with WithVolume and WithPersistentVolume; Aspire emits the PVC and renders the workload as a StatefulSet. This is a preview API under diagnostic ASPIRECOMPUTE002. Teams modeling stateful Kubernetes workloads can follow Aspire persistent volume changes on daily.dev."}},{"@type":"Question","name":"How can I reference an existing Azure resource from a different subscription or tenant in an Aspire AppHost?","acceptedAnswer":{"@type":"Answer","text":"Aspire 13.5 adds AsExistingInResourceGroup(...), AsExistingInSubscription(...), and AsExistingInTenant(...) methods, with run-mode and publish-mode variants, so an AppHost can point at Service Bus or other resources owned by another team or outside its own resource group. Names and scopes can be literal values or Aspire parameters, keeping environment specifics out of source while the reference stays part of the deployment model. Developers wiring shared Azure infrastructure into an AppHost can track Aspire deployment updates on daily.dev."}},{"@type":"Question","name":"How does the WithTerminal() feature work in Aspire's dashboard?","acceptedAnswer":{"@type":"Answer","text":"Adding WithTerminal() to a resource gives it a live, interactive terminal session inside the Aspire dashboard, letting a developer type into REPLs, shells, or TUIs, switch between replicas, and toggle back to normal console logs without ending the session. Multiple viewers, including a dashboard tab and a local terminal via the aspire terminal CLI command, can attach to the same process at once. It is an experimental preview feature in Aspire 13.5. Engineers debugging interactive CLI tools inside distributed apps can follow Aspire terminal features on daily.dev."}}]}
```

