Applets for the Cinnamon desktop
756
stars
7,509
commits
JavaScript
primary language
Sep 12, 2026
updated
This repository hosts all the applets available for the Cinnamon desktop environment.
Users can install spices from https://cinnamon-spices.linuxmint.com, or directly from within Cinnamon -> System Settings.
Each spice is given a name which uniquely identifies them.
That name is their UUID and it is unique.
Each spice has an author.
The github username of the author is specified in the spice's info.json file.
A spice can contain many files, but it should have the following file structure:
There are two important directories:
As you can see, the content of the spice isn't placed inside UUID/files/ directly, but inside UUID/files/UUID/ instead. This guarantees files aren't extracted directly onto the file system, but placed in the proper UUID directory. The presence of this UUID directory, inside of files/ isn't actually needed by Cinnamon (as Cinnamon creates it if it's missing), but it is needed to guarantee a proper manual installation (i.e. when users download the ZIP from the Cinnamon Spices website).
Important note:
At the root level:
To check if a spice with UUID satifies those requirements run the validate-spice script in this repo:
./validate-spice UUID
All submissions may be subject to AI code review as well as human review. If you are 'coding' using an AI tool, it is highly recommended you use our review agent's instructions as a context guide and perform your own code review based on it prior to submission. You, the human, should read it as well.
To facilitate easier testing of Applets locally, run the test-spice script in this repo:
Validate and then copy a Spice with UUID:
./test-spice UUID
Skip validation (not recommended) and then copy a Spice with UUID:
./test-spice -s UUID
Remove all locally installed development copies of Spices:
./test-spice -r
NOTE: Local copies of Spices for development/testing purposes will have a devtest- prefix attached for easier identification and cleanup.
The author is in charge of the development of the spice.
Authors can modify their spice under the following conditions:
Authors are able to accept or refuse changes from other people which modify the features or the look of their spice.
Authors may choose to pass on development of their applet to someone else. In that case, the "author" field in UUID/info.json will be changed to the new developer and the "original_author" field will be added to give credit to the original developer.
If an author abandons their applet, the Linux Mint team will take over maintenance of the applet or pass it on to someone else. Several factors are used to determine if an applet is abandoned, including prolonged activity, failure to respond to requests, and serious breakages that have occurred due to changes in API, etc. If you plan to abandon an applet, please notify us, so we don't have to guess as to whether it is abandoned or not.
These repositories exist so that third-party developers can publish their spices and users can install them safely. When a spice is hosted here, it is reviewed when it is added and again on every update, and we are able to watch for security and safety problems in the code. This oversight is the whole reason the Spices repositories and the Cinnamon Spices website exist — it's what lets users install spices with confidence.
For this to work, the version of a spice published here must be the complete, fully functional spice. Anything a user installs from outside these repositories is outside our review and outside our control: we can't check it for malicious or unsafe code, we can't vouch for it, and it puts users at risk. Accordingly, authors may not:
This applies regardless of whether the external version is paid, free, or offered for any other reason. The point is not money — it's that everything a user runs should be the code we have reviewed and published here. Submissions that don't meet this requirement will not be accepted.
Some spices rely on software that is already packaged for the user's distribution (for example yad, sox, or nmcli). It is fine for a spice to detect a missing dependency and offer to install it — or to prompt the user to install it — through the system's package manager: apt, or a distro-agnostic front-end such as PackageKit (pkcon/pkgcli), using the system's normal authentication (pkexec). These packages come from the distribution's own trusted repositories, not from the author. A spice must not, however, instruct users to manually download and install software from arbitrary websites.
None of this prevents authors from being supported for their work. You are welcome to include a donation or support link. That link must not interrupt the user — no nag screens, pop-ups, repeated prompts, or features held back behind it inside the spice itself.
To modify a spice, developers create a Pull Request.
Members of the cinnamon-spices-developers team review the pull request.
If the author of the pull request is the spice author (his github username matches the author field in UUID/info.json), the reviewer only has to perform the following checks:
If everything is fine, the PR is merged, the website is updated and users can see a spice update in System Settings.
In addition to the checks specified above, if the pull request comes from somebody other than the author, it will be held until the author reviews it or gives a thumbs-up, with the following exceptions:
If the changes represent a change in functionality, or in look and feel, or if their implementation could be questioned and/or discussed, the reviewer should leave the PR open and ask the author to review it.
If the author is happy with the PR, it can then be merged. If he's not, it can either be closed or updated to reflect any changes the author requested, at which point it will either be merged or the author may be asked to review the changes depending on whether it is clear the changes fully meet the author's requirements.
Authors are entitled to remove their spice.
The Cinnamon team is also entitled to do so. Common reasons are lack of maintenance, critical bugs, or if the features are already provided, either by Cinnamon itself, or by another spice which is more successful.
New spices can be added by Pull Request.
The Cinnamon team can accept or reject the addition and should give justification in the PR comments section.
See the Guidelines for Contributing.
The script cinnamon-spices-makepot in this repo was written to help authors to update their translation template (.pot) file and to help translators to test their translations.
Updating a translation template .pot:
./cinnamon-spices-makepot UUID
Test your translations .po locally before uploading to Spices:
./cinnamon-spices-makepot UUID --install
More info:
./cinnamon-spices-makepot --help
The spices receive updates which sometimes contain new or updated strings that need to be translated. The translation status tables were created to give translators a better overview of the current state of translations and also to make it easier to track where new untranslated strings appear.
To ensure that these tables are always up-to-date, they are automatically regenerated whenever a new commit is pushed to the master branch.
To determine the backward compatibility of a javascript feature, look at it's page on mdm web docs to see in which version of Firefox it was introduced. Then compare with the table below.
| Mint Version | Codename | Release Date | Cinnamon Version | Firefox version (CJS JS engine) | |
|---|---|---|---|---|---|
| 17 | Qiana | 31 May 14 | 2.2.14 | ||
| 17.1 | Rebecca | 29 Nov 14 | 2.4.6 | ||
| 17.2 | Rafaela | 30 Jun 15 | 2.6.13 | ||
| 17.3 | Rosa | 4 Dec 15 | 2.8.7 | ||
| 18 | Sarah | 30 Jun 16 | 3.0.7 | ||
| 18.1 | Serena | 16 Dec 16 | 3.2.8 | ||
| 18.2 | Sonya | 2 Jul 17 | 3.4.4 | ||
| 18.3 | Sylvia | 27 Nov 17 | 3.6.7 | ||
| 19 | Tara | 29 Jun 18 | 3.8.8 | 52 | |
| 19.1 | Tessa | 19 Dec 18 | 4.0.9 | ||
| 19.2 | Tina | 2 Aug 19 | 4.2.3 | ||
| 19.3 | Tricia | 18 Dec 19 | 4.4.8 | ||
| 20 | Ulyana | 27 Jun 20 | 4.6.7 | ||
| 20.1 | Ulyssa | 8 Jan 21 | 4.8.6 | 78 | |
| 20.2 | Uma | 8 Jul 21 | 5.0.5 | ||
| 20.3 | Una | 7 Jan 22 | 5.2.7 | ||
| 21 | Vanessa | 31 Jul 22 | 5.4.12 | ||
| 21.1 | Vera | 20 Dec 22 | 5.6.8 | ||
| 21.2 | Victoria | 16 Jul 23 | 5.8.4 | 102 | |
| 21.3 | Virginia | 12 Jan 24 | 6.0.4 | ||
| 22 | Wilma | 25 Jul 24 | 6.2.9 | 115 | |
| 22.1 | Xia | 16 Jan 25 | 6.4.8 | ||
| 22.2 | Zara | 4 Sep 25 | |||
| 22.3 | Zena | 13 Jan 26 | 6.6.6 | ||
*Mint 21 series is officially supported until May 2027, and 22 series until Apr 2029. Earlier versions official support has ended.
(top 30 of 406)
JavaScript
84.1%
Python
6.7%
TypeScript
6.2%
HTML
1.2%
Applets for the Cinnamon desktop
756
stars
7,509
commits
JavaScript
primary language
Sep 12, 2026
updated
This repository hosts all the applets available for the Cinnamon desktop environment.
Users can install spices from https://cinnamon-spices.linuxmint.com, or directly from within Cinnamon -> System Settings.
Each spice is given a name which uniquely identifies them.
That name is their UUID and it is unique.
Each spice has an author.
The github username of the author is specified in the spice's info.json file.
A spice can contain many files, but it should have the following file structure:
There are two important directories:
As you can see, the content of the spice isn't placed inside UUID/files/ directly, but inside UUID/files/UUID/ instead. This guarantees files aren't extracted directly onto the file system, but placed in the proper UUID directory. The presence of this UUID directory, inside of files/ isn't actually needed by Cinnamon (as Cinnamon creates it if it's missing), but it is needed to guarantee a proper manual installation (i.e. when users download the ZIP from the Cinnamon Spices website).
Important note:
At the root level:
To check if a spice with UUID satifies those requirements run the validate-spice script in this repo:
./validate-spice UUID
All submissions may be subject to AI code review as well as human review. If you are 'coding' using an AI tool, it is highly recommended you use our review agent's instructions as a context guide and perform your own code review based on it prior to submission. You, the human, should read it as well.
To facilitate easier testing of Applets locally, run the test-spice script in this repo:
Validate and then copy a Spice with UUID:
./test-spice UUID
Skip validation (not recommended) and then copy a Spice with UUID:
./test-spice -s UUID
Remove all locally installed development copies of Spices:
./test-spice -r
NOTE: Local copies of Spices for development/testing purposes will have a devtest- prefix attached for easier identification and cleanup.
The author is in charge of the development of the spice.
Authors can modify their spice under the following conditions:
Authors are able to accept or refuse changes from other people which modify the features or the look of their spice.
Authors may choose to pass on development of their applet to someone else. In that case, the "author" field in UUID/info.json will be changed to the new developer and the "original_author" field will be added to give credit to the original developer.
If an author abandons their applet, the Linux Mint team will take over maintenance of the applet or pass it on to someone else. Several factors are used to determine if an applet is abandoned, including prolonged activity, failure to respond to requests, and serious breakages that have occurred due to changes in API, etc. If you plan to abandon an applet, please notify us, so we don't have to guess as to whether it is abandoned or not.
These repositories exist so that third-party developers can publish their spices and users can install them safely. When a spice is hosted here, it is reviewed when it is added and again on every update, and we are able to watch for security and safety problems in the code. This oversight is the whole reason the Spices repositories and the Cinnamon Spices website exist — it's what lets users install spices with confidence.
For this to work, the version of a spice published here must be the complete, fully functional spice. Anything a user installs from outside these repositories is outside our review and outside our control: we can't check it for malicious or unsafe code, we can't vouch for it, and it puts users at risk. Accordingly, authors may not:
This applies regardless of whether the external version is paid, free, or offered for any other reason. The point is not money — it's that everything a user runs should be the code we have reviewed and published here. Submissions that don't meet this requirement will not be accepted.
Some spices rely on software that is already packaged for the user's distribution (for example yad, sox, or nmcli). It is fine for a spice to detect a missing dependency and offer to install it — or to prompt the user to install it — through the system's package manager: apt, or a distro-agnostic front-end such as PackageKit (pkcon/pkgcli), using the system's normal authentication (pkexec). These packages come from the distribution's own trusted repositories, not from the author. A spice must not, however, instruct users to manually download and install software from arbitrary websites.
None of this prevents authors from being supported for their work. You are welcome to include a donation or support link. That link must not interrupt the user — no nag screens, pop-ups, repeated prompts, or features held back behind it inside the spice itself.
To modify a spice, developers create a Pull Request.
Members of the cinnamon-spices-developers team review the pull request.
If the author of the pull request is the spice author (his github username matches the author field in UUID/info.json), the reviewer only has to perform the following checks:
If everything is fine, the PR is merged, the website is updated and users can see a spice update in System Settings.
In addition to the checks specified above, if the pull request comes from somebody other than the author, it will be held until the author reviews it or gives a thumbs-up, with the following exceptions:
If the changes represent a change in functionality, or in look and feel, or if their implementation could be questioned and/or discussed, the reviewer should leave the PR open and ask the author to review it.
If the author is happy with the PR, it can then be merged. If he's not, it can either be closed or updated to reflect any changes the author requested, at which point it will either be merged or the author may be asked to review the changes depending on whether it is clear the changes fully meet the author's requirements.
Authors are entitled to remove their spice.
The Cinnamon team is also entitled to do so. Common reasons are lack of maintenance, critical bugs, or if the features are already provided, either by Cinnamon itself, or by another spice which is more successful.
New spices can be added by Pull Request.
The Cinnamon team can accept or reject the addition and should give justification in the PR comments section.
See the Guidelines for Contributing.
The script cinnamon-spices-makepot in this repo was written to help authors to update their translation template (.pot) file and to help translators to test their translations.
Updating a translation template .pot:
./cinnamon-spices-makepot UUID
Test your translations .po locally before uploading to Spices:
./cinnamon-spices-makepot UUID --install
More info:
./cinnamon-spices-makepot --help
The spices receive updates which sometimes contain new or updated strings that need to be translated. The translation status tables were created to give translators a better overview of the current state of translations and also to make it easier to track where new untranslated strings appear.
To ensure that these tables are always up-to-date, they are automatically regenerated whenever a new commit is pushed to the master branch.
To determine the backward compatibility of a javascript feature, look at it's page on mdm web docs to see in which version of Firefox it was introduced. Then compare with the table below.
| Mint Version | Codename | Release Date | Cinnamon Version | Firefox version (CJS JS engine) | |
|---|---|---|---|---|---|
| 17 | Qiana | 31 May 14 | 2.2.14 | ||
| 17.1 | Rebecca | 29 Nov 14 | 2.4.6 | ||
| 17.2 | Rafaela | 30 Jun 15 | 2.6.13 | ||
| 17.3 | Rosa | 4 Dec 15 | 2.8.7 | ||
| 18 | Sarah | 30 Jun 16 | 3.0.7 | ||
| 18.1 | Serena | 16 Dec 16 | 3.2.8 | ||
| 18.2 | Sonya | 2 Jul 17 | 3.4.4 | ||
| 18.3 | Sylvia | 27 Nov 17 | 3.6.7 | ||
| 19 | Tara | 29 Jun 18 | 3.8.8 | 52 | |
| 19.1 | Tessa | 19 Dec 18 | 4.0.9 | ||
| 19.2 | Tina | 2 Aug 19 | 4.2.3 | ||
| 19.3 | Tricia | 18 Dec 19 | 4.4.8 | ||
| 20 | Ulyana | 27 Jun 20 | 4.6.7 | ||
| 20.1 | Ulyssa | 8 Jan 21 | 4.8.6 | 78 | |
| 20.2 | Uma | 8 Jul 21 | 5.0.5 | ||
| 20.3 | Una | 7 Jan 22 | 5.2.7 | ||
| 21 | Vanessa | 31 Jul 22 | 5.4.12 | ||
| 21.1 | Vera | 20 Dec 22 | 5.6.8 | ||
| 21.2 | Victoria | 16 Jul 23 | 5.8.4 | 102 | |
| 21.3 | Virginia | 12 Jan 24 | 6.0.4 | ||
| 22 | Wilma | 25 Jul 24 | 6.2.9 | 115 | |
| 22.1 | Xia | 16 Jan 25 | 6.4.8 | ||
| 22.2 | Zara | 4 Sep 25 | |||
| 22.3 | Zena | 13 Jan 26 | 6.6.6 | ||
*Mint 21 series is officially supported until May 2027, and 22 series until Apr 2029. Earlier versions official support has ended.
(top 30 of 406)
JavaScript
84.1%
Python
6.7%
TypeScript
6.2%
HTML
1.2%