> For the complete documentation index, see [llms.txt](https://developer.musehub.com/muse-partners-help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.musehub.com/muse-partners-help/adding-products/product-types/applications.md).

# Applications

Apps encompass anything from audio editors, DAWs, notation editors, sound design tools, utilities right over to the latest AI tools or even desktop versions of browser-based services.

{% hint style="info" %}
MuseHub can distribute applications on macOS and Windows. Linux is not supported.
{% endhint %}

MuseHub is designed for music and audio creators. If your app falls into this demographic, then it's suitable for distribution on MuseHub.

## Supported types

You can distribute application binaries in a few different ways. MuseHub installs applications through the use of a background service, which is called when it's required and may show UAC or ask for elevated privilieges from the user, depending on the requirements.&#x20;

### macOS

#### Application Bundles

If your application is a self-contained **.app** bundle, zip the .app and upload the zip to the Partner Portal, keeping the original extension before .zip (`MyApp.app.zip`). Zipping preserves symlinks and file properties that can be lost when uploading a bundle through a web browser, and the original extension lets the Partner Portal recognise the asset type. Always remember to codesign, notarize and staple your app.

#### Installers

Use a standard macOS **.pkg** installer when you need to install extra content besides the app bundle. Put everything in a single PKG: several PKGs are not accepted. DMG is not accepted.

{% hint style="info" %}
Self-contained .app bundles can be uninstalled via the Hub, whereas applications delivered via a .pkg installer can not.&#x20;
{% endhint %}

#### Bundle Identifiers

You'll need to provide the application's [bundle ID;](https://developer.apple.com/documentation/appstoreconnectapi/bundle_ids) this can be found within the applications .plist file, and looks similar to `com.muse.musehub`

This bundleID is used by the Hub to ensure the application can be launched from the Hub properly, and is also used to track the installation state. It's important to provide the correct bundleID.

### Windows

MuseHub supports installation of applications within **.exe**, **.msi** and **.msix** installer types.

MuseHub simplifies product acquisition, including the installation process. It can perform "silent" application installs, running installers without showing the UI for a seamless experience. You can disable silent install if user input is needed, though it’s not recommended.

MuseHub can also uninstall applications, even if delivered via an installer, as long as the provided installer type is capable.&#x20;

{% hint style="info" %}
Starting with MuseHub 2.4.2, MuseHub on windows no longer differentiates between MSI and EXE installers. This is to allow support for MSIs wrapped within EXEs. On versions prior to 2.4.2 MuseHub will still work with this type of installer, but with a degraded experience.&#x20;
{% endhint %}

#### Application IDs

Application IDs are mandatory for MSIX installers, and optional for MSI and EXE installers.

**MSIX:** You must provide the package family name (for example `Muse.MuseHub_rb9pth70m6nz6`). See the [Microsoft Documentation](https://learn.microsoft.com/en-us/windows/apps/desktop/modernize/package-identity-overview) for more information.

**EXE or MSI:** For these installers, the application id is optional but recommended. Without a valid id users will still be able to install and update your application via MuseHub, but enhanced functionality like version checking, launching, and uninstalling may be unavailable.&#x20;

If you don't provide an application id, MuseHub will attempt to auto-discover it when a user is installing your application. This feature is quite conservative to avoid false positives, so there is no guarantee it will work - although we occasionally improve the reliability of this feature in MuseHub updates.

Generally speaking, if in doubt about your application ID, leave it blank and MuseHub will detect it in most cases.

{% hint style="warning" %}
Starting from MuseHub 2.9.3, if you provide the wrong ID MuseHub may override it with the detected ID if it thinks the supplied value is wrong. Versions prior to this would simply break, uninstall, updating and launching will not work.\
\
This feature does not apply to MSIX package family names.
{% endhint %}

#### Manually finding your Application ID

In most cases you should not enter the Windows Application ID, especially if you use a well-known installer such as InnoSetup, MSI or NSIS: MuseHub detects it. If, while testing your beta from the Library tab in MuseHub, you find that the product can't be launched or uninstalled, look up the right ID in the Windows registry (e.g. under `HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\` if installing for All Users, or current user counterpart) or in your installer script, and enter it.

**MSI:** You must provide the [UpgradeCode ](https://learn.microsoft.com/en-us/windows/win32/msi/upgradecode)for your MSI installer. It will look something like this: `{141527EE-E28A-4D14-97A4-92E6075D28B2}` . Please make sure you include the {} brackets around the id when entering it in the Partner Portal.&#x20;

This is dependent on your installer build process and tools. See [Wix](https://wixtoolset.org/docs/v3/howtos/updates/major_upgrade/) and [InstallShield](https://docs.revenera.com/installshield25helplib/helplibrary/IHelpPropUpgradeCode.htm) for examples, but generally speaking, searching for "installer technology" + "UpgradeCode" should lead you to the right path.

**EXE:** Installers will refer to this field as the AppID or something similar, we have provided some examples for different installer technologies.&#x20;

Technically speaking, MuseHub is after the **Software\Microsoft\Windows\CurrentVersion\Uninstall\\** registry key for your application (the key that makes it appear in Add/Remove Programs).

{% tabs %}
{% tab title="Inno Setup" %}
See the documentation [here](https://jrsoftware.org/ishelp/index.php?topic=setup_appid). You will find this value within the setup script (.iss). Make sure you append `_is1`  to the value specified.

Here are a few examples of real IDs. GUIDs (or the default generated ID) will usually have {} brackets around the value before `_is1` is appended.

* Audacity\_is1
* My Product\_is1
* {52D4F102-D487-46F4-8DD8-738FD313BEAB}\_is1
* {3E6A91C4-7B2D-4F80-A5C9-1D84E27B60F3}\_is1
* {8AB81F47-272B-4C8B-9AA9-D29F6A36DDF4}}\_is1
* {C19F0A7E-5D36-48B2-9E4C-6A2B0F8D3715}}\_is1

Sometimes the InnoSetup key ends in a double closing brace, `}}_is1`. This happens when the installer script writes the AppId as `{{GUID}}`: InnoSetup reads `{{` as an escaped brace and keeps both closing ones. It is still valid; copy the key exactly as it appears in the registry.
{% endtab %}

{% tab title="Nullsoft Install System (NSIS)" %}
You probably know what it is already, use the Uninstall registry key.
{% endtab %}

{% tab title=" Squirrel.Windows" %}
<https://github.com/Squirrel/Squirrel.Windows/tree/develop>

This will probably be your Nuget package ID.
{% endtab %}

{% tab title="Electron" %}
<https://github.com/electron/windows-installer>

Use the name field within the installer configuration. If not provided, this defaults to the `name` field in your app's package.json file.
{% endtab %}
{% endtabs %}

#### Automatically finding your Application ID

Alternatively, you can use the auto-discover feature mentioned above yourself to determine what value to place in this field. To do this, don't provide an application id and submit your product.

Once in-review or beta, open MuseHub and install your application, once installed, **right**-click the "..." icon next to your product within the library. You can also find this ID in the application logs for easy copy and paste.\
\
In the case of MSIs, MuseHub 2.4.2 and later will set the discovered application id to the "UpgradeCode" of your product, allowing seamless updates from within MuseHub for MSIs.

<div align="left"><figure><img src="https://1869247376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkJ61y2LsMqfj09sp0abe%2Fuploads%2FPKZlUnNHVGebTHIMOExe%2Fimage.png?alt=media&amp;token=5bc2d2f2-77ee-4bc7-a36b-1d202544d789" alt="Detected application id for Audacity 4" width="563"><figcaption><p>Detected application id for Audacity 4</p></figcaption></figure></div>

#### Silent Installs

MuseHub provides automatic silent installs for the following installer types:

* MSI *(via .msi)*
* InnoSetup
* Squirrel
* NSIS
* AdvancedInstaller *(MuseHub 2.4.2 and later)*

Users can enable and disable silent installs by toggling "Run installers silently" within the MuseHub settings.

<figure><img src="https://1869247376-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkJ61y2LsMqfj09sp0abe%2Fuploads%2FLkQxA4aD9fHafl5Vubf1%2FScreenshot%202025-10-14%20082035.png?alt=media&amp;token=0b37c897-5432-41a7-9800-cf48eee7fe81" alt="&#x22;Run installer silently&#x22; toggle in MuseHub settings"><figcaption></figcaption></figure>

If you wish for users to see your installer and bypass silent installs, enable "Display Installer UI" in your app submission. Users running MuseHub 2.4.0 and later will see your installer UI.

{% hint style="info" %}
Applications must meet the [Product Requirements](/muse-partners-help/getting-started/prepare-your-product.md) before they can be distributed on MuseHub
{% endhint %}
