AspireForm 0.3.0

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global AspireForm --version 0.3.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local AspireForm --version 0.3.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=AspireForm&version=0.3.0
                    
nuke :add-package AspireForm --version 0.3.0
                    

AspireForm

Declarative construction and configuration of .NET Aspire applications — Infrastructure-as-Code ideas (Terraform) and declarative orchestration (Docker Compose) applied to scaffolding and evolving an Aspire solution.

You describe the desired shape of your app in aspireform.yaml (or aspireform.jsonc); AspireForm reconciles that against what is on disk and applies the difference.

Status

v0.3.0 — Plugin loader. AspireForm now supports external NuGet plugins; the first one (AspireForm.Plugin.Redis) is available. More verticals (Mailpit, Hangfire, DAB, auth × 3, reporting, ETL) arrive in Plans 2.1–2.9.

Install / run

AspireForm is a zero-install .NET tool. With the .NET 10 SDK present:

dnx AspireForm config
dnx AspireForm doctor

dnx resolves the latest published version on each run, so the tool is always current.

Commands

Command Description
aspireform new <name> Scaffold a new Aspire solution + a starter aspireform.yaml.
aspireform add <type> [name] Append a Resource (or Module via --module) block to the config (comments and formatting are not preserved).
aspireform config Print the fully merged, interpolated desired-state configuration.
aspireform plan Show the reconciliation diff between desired and current state.
aspireform apply Execute the plan after an approval gate (skip with --yes).
aspireform destroy [block] Remove one block (or all blocks) from state.
aspireform import <block> Adopt an existing block into state without executing.
aspireform state list List every tracked block.
aspireform state show <block> Dump one block's state as JSON.
aspireform doctor Check prerequisites (.NET 10 SDK + aspire CLI).
aspireform plugin list List installed plugins.
aspireform plugin install <name>[@version] Install a plugin (auto-restore handles unknown types on next plan/apply).
aspireform plugin update <name> Update a plugin to the latest version.
aspireform plugin remove <name> Remove a plugin from the lockfile.

Configuration

A minimal aspireform.yaml:

aspireform:
  version: 1
  project: MyApp
  apphost: ./MyApp.AppHost
resources:
  sql:
    type: sqlserver
    aspireName: sql
    databases: [appdb]

Per-environment overrides go in aspireform.<env>.yaml and are layered with --env <name>.

Plugins

AspireForm supports external plugins that contribute new block types (Resources or Modules) via NuGet packages. The first available plugin is Redis:

Plugin Block type NuGet
AspireForm.Plugin.Redis redis 0.1.0

When you reference an unknown block type in aspireform.yaml (e.g. type: redis), AspireForm auto-restores the matching plugin from NuGet on the next plan or apply. The resolved (name, version) pair is recorded in .aspireform/plugins.lock.yaml (committed to git).

Authoring a plugin (0.3.0 limitation)

In 0.3.0, plugins must depend only on AspireForm and the BCL. Transitive NuGet dependencies are not yet loaded by the plugin loader — they will fail at runtime. AssemblyDependencyResolver wiring is planned for 0.3.1.

Documentation

  • Design spec: docs/superpowers/specs/
  • Research notes: docs/research/
  • Implementation plans: docs/superpowers/plans/
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.5.0 92 5/25/2026
0.4.0 104 5/25/2026
0.3.2 89 5/24/2026
0.3.1 87 5/24/2026
0.3.0 92 5/24/2026
0.2.0 114 5/24/2026
0.1.0 97 5/23/2026