Aspire 13.4 Is Here

ofrzeta1 pts1 comments

Aspire 13.4 is here | Aspire Blog

Skip to main content

Search<br>Search

No results

Cancel

Aspire 13.3 has arrived!

Get the latest release that brings Kubernetes support, agent-assisted Aspirification, and more.

Get Aspire 13.3

Maddy Montaquila

Principal Product Manager

By our measure, Aspire 13.4 is a "small" release: only 519 PRs closed in the 3-ish weeks we spent on this one. Casual numbers! But, it still packs a punch. We’ve been hard at work maturing our newest features and optimizing Aspire for every developer.

First and foremost: we loved hearing your excitement around the TypeScript apphost over the last few preview releases, and we’re excited to promote it to General Availability in 13.4. Resource commands got another upgrade too: in 13.3 we gave you command results, and now they can take typed arguments too. We also expanded our Kubernetes and AKS support, tuned the CLI for better AI token efficiency, added Go and Bun integration support to the main repo, and worked through a pile of smaller feedback items you’ve shared with us along the way.

Here are some of my personal favorites from this release, but as always, the full details are over on What’s New in Aspire 13.4.

Get Aspire 13.4

🌐 TypeScript apphost is officially GA

Good things come to those who wait, and we’ve waited a long time to get TypeScript apphost support to GA.

Over the last few releases, we introduced the first language besides C# you can author your apphost in: TypeScript. 13.4 is where that work graduates to General Availability.

We heard you loud and clear: dropping a .ts file at the root of your repo was going to anger your linters and compilers, especially if you use CommonJS. New TypeScript apphosts now use the more explicit apphost.mts entry point, generated SDK modules live under .aspire/modules/, and startup validation runs before the app does so config mistakes surface early instead of mid-run. The docs now show TypeScript examples right alongside C# too.

The goal here was never "C# apphost, but translated." It was giving JS and TS developers the same code-first Aspire model in a shape that feels native to them. 13.4 is the culmination of all of that. And because we architected it to be infinitely scalable, we have 3 new apphost languages in preview you can try – Python, Java, and Go.

If you want to dive deeper, check out the TypeScript apphost docs, Sebastien Ros’ post on TypeScript apphost in Aspire, and our updated samples on aspire.dev.

🎛️ Resource commands are getting way more useful

Resource commands are an underrated Aspire feature, and one of my personal favorites for customizing the dev experience in my apps with Aspire. In 13.4, resource commands got way more powerful.

Commands can now declare typed arguments — labels, descriptions, defaults, allowed values, and validation — so a command can prompt for exactly what it needs in the same familiar Interaction Service we use for parameters and more in the dashboard and CLI.

Paired with 13.3’s command results feature, which made commands return more than just success or failure, this gives you more control over what information gets surfaced and how. Commands can collect inputs, render complex markdown results in the dashboard, and become custom interactions between the developer and the app while they develop it.

A great example of the new command infrastructure landed in the updated Microsoft Foundry integration. You can send messages – a required command text input – directly to Foundry hosted AI agents and see all the response metadata right from the dashboard.

https://devblogs.microsoft.com/aspire/wp-content/uploads/sites/90/2026/06/foundry-responses-command.mp4

We even added a new type of command: WithProcessCommand(). So beyond codified functions and HTTP commands, you can expose local scripts, tools, and CLIs as resource commands straight from the apphost. Just like other commands, Aspire handles argument passing, output capture, and result mapping. No shell gymnastics required.

import { createBuilder } from './.aspire/modules/aspire.mjs';

const builder = await createBuilder();<br>const cache = await builder.addRedis('cache');

await cache.withProcessCommand('node-version', 'Show Node.js version', {<br>executablePath: 'node',<br>arguments: ['--version'],<br>});<br>Commands are one of my favorite features because they turn Aspire into much more than just a fancy launcher or manifest. You can create an ergonomic, intuitive dev experience that ships as part of your app itself, not more config and README files and scripts, and anyone on your team can use it from whatever IDE, browser, or coding agent they want.

🚢 Kubernetes and AKS keep swimming along

13.3 was our "FINALLY! Kubernetes support!" release. 13.4 is where we’ve started building in the stuff that your real production apps need.

This release adds typed cert-manager support, Gateway API and Azure Application Gateway for Containers integration for AKS, arbitrary Kubernetes manifest...

aspire commands apphost typescript command support

Related Articles