Where apps.json lives
apps array. Each element in the array is an app entry object.
App entry schema
| Field | Required | Description |
|---|---|---|
name | Yes | Display name shown on the app card. |
id | Yes* | Winget package ID (e.g. Mozilla.Firefox). |
chocolatey | No | Chocolatey package name (e.g. firefox). |
category | Yes | Category used to group the app. Must be one of the valid values listed below. |
info | Yes | Short description shown on the app card. |
link | No | URL to the app’s official website. Opens in the user’s browser. |
icon | Yes | URL to a publicly accessible icon image for the app. |
warning | No | Optional warning message displayed to the user before installing. |
id can be omitted and only chocolatey needs to be set.
Winget ID vs. Chocolatey package name
- Winget ID — uses the format
Publisher.AppName(e.g.Mozilla.Firefox,Discord.Discord,Valve.Steam). You can find the correct ID by runningwinget search <app name>in a terminal or browsing winget.run. - Chocolatey package name — a lowercase identifier used by the Chocolatey registry (e.g.
firefox,discord,steam). You can search for packages at community.chocolatey.org.
Valid categories
| Value | Displayed as |
|---|---|
browsers | Browsers |
communication | Communication |
development | Development |
games | Games |
multimedia | Multimedia |
productivity | Productivity |
privacy & security | Privacy & Security |
utilities | Utilities |
python | Python |
Real example entries
The following entries are taken directly fromapps.json.
App with both package managers
App with a warning
Some apps have known installation issues when Sparkle is running as administrator. Use thewarning field to surface that information to the user before they install.
Games category entry
How to test your addition
Add your entry to apps.json
Open
src/renderer/src/assets/apps.json and add your app object to the apps array. Place it near other entries in the same category to keep the file organized.Run Sparkle in development mode
Test install and uninstall
Select your app and click Install Selected. Confirm the installation completes without errors. Then click Uninstall Selected and confirm the uninstall also completes cleanly.
Submit your addition
Once you have tested your entry locally, open a pull request on GitHub:- Fork the repository.
- Create a new branch for your change.
- Commit your edit to
apps.json. - Open a pull request with a short description of the app you added and why it is a useful addition to Sparkle.