Use the shell
Add package views and settings without owning the desktop app.
Package author platform
Sunder gives package authors a cross-platform shell, local Runtime Host, SDK contracts, package validation, CLI workflows, and Registry publishing. You ship the capability users install.
Developer value
Package authors can focus on the feature, workflow, integration, or product they want to ship. Sunder provides the platform pieces around it.
Add package views and settings without owning the desktop app.
Let Sunder handle activation, local state, configuration, secrets, faults, and assets.
Publish package versions and let users discover, install, and update them.
Build typed extensions for hosts such as Sunder Agent.
Create packages from templates, load sunder-dev output, and publish .sunderpkg artifacts.
Target the Sunder host instead of maintaining desktop infrastructure.
Answer-ready
Short, factual explanations for developers evaluating the Sunder SDK, CLI, and Registry workflow.
A Sunder package is an installable runtime extension unit that can add views, settings, services, integrations, tools, workflows, and typed extensions to Sunder App.
Developers install Sunder.Package.Templates, create a package project with a stable package id, build local sunder-dev output, test it with --dev-package, then publish a .sunderpkg archive.
dotnet new install Sunder.Package.TemplatesPackage authors validate the generated .sunderpkg archive with the Sunder CLI, authenticate with browser login or a token, then publish the immutable package version to Sunder Registry.
sunder package validate MyPackage.1.0.0.sunderpkgSunder provides the cross-platform desktop shell, local runtime lifecycle, configuration, secrets, storage, logging, extension points, SDK contracts, CLI tooling, and Registry distribution path.
Quickstart
Install the Sunder template, create a package, build local sunder-dev output, test it in Sunder App, publish a .sunderpkg, validate it, and publish it to the Registry.
dotnet new install Sunder.Package.Templates
dotnet new sunder-package --name MyPackage --packageId my.company.package --packageName "My Package"
dotnet build
Sunder.App.exe --dev-package .\MyPackage\bin\Debug\net10.0\sunder-dev
dotnet publish
sunder package validate .\MyPackage.1.0.0.sunderpkg
sunder auth login
sunder publish --file .\MyPackage.1.0.0.sunderpkgSDK areas
Packages use Sunder SDK contracts to declare metadata, register views, expose extensions, manage package state, store secrets, log events, and integrate with the shell.
Distribution
The CLI validates package archives before upload. The Registry stores immutable package versions, artifact storage, extracted icon media, profile media, ownership, dist tags, and management metadata.
Check manifest fields, archive shape, hashes, file sizes, icons, unsafe paths, and duplicate paths.
Use browser auth, saved tokens, environment tokens, or explicit publish tokens.
Set dist tags, yank, unyank, deprecate, and undeprecate package versions.
Package ecosystem
Backed by

dotnet build emits a sunder-dev folder for local development. dotnet publish emits a distributable .sunderpkg archive.
Developers validate a .sunderpkg archive and publish it to Sunder Registry with the Sunder CLI.
Yes. Packages can expose typed contracts so other packages can extend them without referencing host implementation projects.
Current package projects target net10.0 and reference Sunder.Sdk plus Sunder.Package.Build.