Apps in Fruit Jam OS are self-contained CircuitPython code projects that are stored inside of folders in the apps/ folder on the CIRCUITPY drive. When you run an app by clicking or pressing Enter on it in the launcher, it is run using the supervisor.set_next_code_file() function.
Adding Apps On Your Own Device
To add your own custom app, simply put the code.py and any assets (data files) for it inside a folder, and then put that folder inside of the apps/ folder. You may optionally add a metadata.json and icon image file inside of the directory to control the title and icon that will be used for your app in the launcher.
metadata.json can contain the keys "title" and "icon", which hold string values representing the title and icon file to show for the app in the launcher grid. Here is an example of the metadata file for a custom app:
{
"title": "CustomApp",
"icon": "icon.bmp"
}
At a minimum, your custom app folder must contain a code.py file. It is recommended to also have metadata.json and icon.bmp files as well, but default values for the title and icon will be used if they are absent so they are not strictly required.
Any other assets the app needs, like images, audio, or other files, should also be put inside of this directory. You can also nest further folders inside of this one if your app is large and you want to organize its code and assets more. But the code.py file must exist at the top level in your app/ folder.
Included Apps
Aside from the Editor, there are several apps and games that come included with Fruit Jam OS. Here is a list of all included apps as of Fruit Jam OS version 1.0.13
- IRC Client
- Larsio Paint
- PyBasic
- PyDOS
- Chip's Challenge
- Minesweeper
- The Matrix Rain
- Memory Game
- Match3 Game
- PyPaint
- Flappy Nyan Cat
- Snake Game
- Breakout Game
- Spell Jam
- Logic Gates Simulator
Many of the included apps were originally created as Metro RP2350 projects for other Learn Guides.
Submit An App For Inclusion In Fruit Jam OS
We welcome Learn Guide authors and community members to submit a apps for consideration to be included in Fruit Jam OS. Depending on whether or not there will be a Learn Guide for the project or not, the process will be slightly different.
Learn Authors
If there will be an Adafruit Learn Guide for the app that you are adding, then your app source code can be submitted in a pull request (PR) to the Adafruit_Learning_System_Guides repository on GitHub as usual. Once project code is merged into that repository, the next step is to submit a PR to the Fruit Jam OS repository adding the new app to the list of apps in the build script here. To add a new app you need to create a new tuple in the list. For example:
LEARN_PROJECT_PATHS = [
...
("Fruit_Jam/Awesome_New_App/","Awesome_New_App"),
]
The tuple contains the path within the Learning System Guides repository to the new app, and a name to use for the folder when the app gets copied into the apps/ folder during the Fruit Jam OS build process. Often this will be the same name as the folder that your project is located in, as in the example above with "Awesome_New_App", but the names can differ depending on the structure of the project in the Learn repository.
Community Members
If there is not going to be a Learn Guide for your app, you may submit a single PR directly to the Fruit Jam OS repo adding your app directory into the builtin_apps/ folder within that repo. For apps in the builtin_apps/, there is no need to include them in the LEARN_PROJECT_PATHS list. Simply existing inside of builtin_apps/ is enough for the build script to include them in during the building process.
Page last edited November 12, 2025
Text editor powered by tinymce.