Package author platform

Ship Sunder packages, not desktop apps.

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

Stop rebuilding the desktop app around your idea.

Package authors can focus on the feature, workflow, integration, or product they want to ship. Sunder provides the platform pieces around it.

01

Use the shell

Add package views and settings without owning the desktop app.

02

Use the runtime

Let Sunder handle activation, local state, configuration, secrets, faults, and assets.

03

Use the Registry

Publish package versions and let users discover, install, and update them.

04

Extend other packages

Build typed extensions for hosts such as Sunder Agent.

05

Build faster

Create packages from templates, load sunder-dev output, and publish .sunderpkg artifacts.

06

Stay cross-platform

Target the Sunder host instead of maintaining desktop infrastructure.

Answer-ready

Direct answers for package authors.

Short, factual explanations for developers evaluating the Sunder SDK, CLI, and Registry workflow.

What is a Sunder package?

A Sunder package is an installable runtime extension unit that can add views, settings, services, integrations, tools, workflows, and typed extensions to Sunder App.

How do developers create a Sunder package?

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.Templates

How are Sunder packages published?

Package 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.sunderpkg

What does Sunder provide to package authors?

Sunder provides the cross-platform desktop shell, local runtime lifecycle, configuration, secrets, storage, logging, extension points, SDK contracts, CLI tooling, and Registry distribution path.

Quickstart

From template to published package.

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.

Package author workflow
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.sunderpkg

SDK areas

Use the SDK layer instead of app internals.

Packages use Sunder SDK contracts to declare metadata, register views, expose extensions, manage package state, store secrets, log events, and integrate with the shell.

Packaging metadataModule lifecyclePackage contextContributionsViewsWorkspacesExtensionsConfigurationStorageSecretsLoggingNotificationsBackground processesShell integrationSettings navigationPackage sessionsCallbacksAuthTheme resourcesSDK compatibility

Distribution

Validate, publish, tag, and manage package versions.

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.

Validate

Check manifest fields, archive shape, hashes, file sizes, icons, unsafe paths, and duplicate paths.

Publish

Use browser auth, saved tokens, environment tokens, or explicit publish tokens.

Manage

Set dist tags, yank, unyank, deprecate, and undeprecate package versions.

Package ecosystem

Build the capability. Let Sunder carry the shell.

Backed by

Package author questions.

What does a Sunder package build produce?

dotnet build emits a sunder-dev folder for local development. dotnet publish emits a distributable .sunderpkg archive.

How do developers publish packages?

Developers validate a .sunderpkg archive and publish it to Sunder Registry with the Sunder CLI.

Can packages expose extension points?

Yes. Packages can expose typed contracts so other packages can extend them without referencing host implementation projects.

What framework do package projects target?

Current package projects target net10.0 and reference Sunder.Sdk plus Sunder.Package.Build.