Make and publish your Reachy Mini App
Build, package, and publish an app that the entire Reachy Mini community can install in one click - share your creations, inspire others, and contribute to the ecosystem!
Who this guide is for?
This guide is for developers who have an idea or prototype for a Reachy Mini app and want to share it with the community. It walks you through the process of packaging, testing, and publishing your app with minimal friction.
This guide focuses on the Python SDK, but you can also create apps using other approaches, such as the web API / JavaScript templates.
Looking for inspiration or examples? Explore existing Reachy Mini apps to see the kind of interactions and behaviors you can build and share.
Turn your idea into a shareable app
To make your python code into a Reachy Mini App, you basically need to:
Call your app logic from a specific run method (so we can start/stop it on demand)
Wrap it as a python package (so other users can install it)
And publish it as a space to share it with the community!
You don't have to set this up manually: the Reachy Mini App Assistant can generate all the boilerplate for you and prepare your app for publishing!
Let's get started!
Create the app template We assume here that you've already installed the reachy-mini package into your Python environment. If it's not the case check this documentation first.
The app-assistant tool directly comes with your reachy-mini installation. So, to create everything needed for your app, simply run from your terminal:
reachy-mini-app-assistant create
It will ask you to provide a name for your app, the destination path, etc.
~$ reachy-mini-app-assistant create
$ What is the name of your app ?
? > reachy_mini_hello_world
$ Choose the language of your app
? > python
$ Where do you want to create your app project ?
? > ~/my_reachy_mini_apps/
β
Created app 'reachy_mini_hello_world' in ~/my_reachy_mini_apps/reachy_mini_hello_world/
Once done, it will generate the following project structure: You can see a few different things here.
First, the python package itself (green files below). This is where you will add your logic. You can see both the python entry point and an optional webpage to provide a settings page for your app. We'll detail this part in the next section.
reachy_mini_hello_world/ βββ index.html βββ pyproject.toml βββ reachy_mini_hello_world β βββ __init__.py β βββ main.py βββ README.md βββ style.cssThe front page for your Hugging Face Space and some metadata to make it easily discoverable. ### Write your app logic
Your app inherits from ReachyMiniApp. When started from the dashboard, it runs in a background thread. Use the provided stop_event to exit cleanly.
import threading
from reachy_mini import ReachyMini, ReachyMiniApp
from reachy_mini.utils import create_head_pose
class ReachyMiniHelloWorld(ReachyMiniApp):
# Optional: URL to a custom configuration page for the app
# For example: http://localhost:5173
custom_app_url: str | None = None
def run(self, reachy_mini: ReachyMini, stop_event: threading.Event):
# Write your code here
# ReachyMini is already initialized and connected
# Check the stop_event to gracefully exit the loop
# Example:
# import time
# import numpy as np
#
# t0 = time.time()
#
# while not stop_[event.is](http://event.is)_set():
# t = time.time() - t0
#
# yaw = 30 * np.sin(2 * np.pi * 0.5 * t)
# head_pose = create_head_pose(yaw=yaw, degrees=True)
#
# reachy_mini.set_target(head=head_pose)
#
# time.sleep(0.01)
print("This is a placeholder for your app logic.")
``` ### Make a web UI for your app
If you want, you can make a web UI for your app. This can be a settings page, some kind of visualization, enable disable some stuff, whatever you want really !
To do that, you have to set a `custom_app_url` your app (`None` by default). If this is set, the app will run a `FastAPI` webserver that will serve what's inside the `static` directory inside your python module.
```bash
reachy_mini_hello_world/
βββ index.html
βββ pyproject.toml
βββ reachy_mini_hello_world
| βββ __init__.py
| βββ main.py
| βββ static
| βββ index.html
| βββ main.js
| βββ style.css
βββ [README.md](http://README.md)
βββ style.css
We've included a minimal example of how that works when you create a new app with the assistant. You can also take a look at it here https://huggingface.co/spaces/pollen-robotics/reachy_mini_template_app
Test before publishing
Run basic checks:
reachy-mini-app-assistant checkExecute main.py manually in your environment
Test your app locally through the dashboard
With your Reachy Mini python environment activated, navigate to your app and run
pip install -e .Run the daemon :
reachy-mini-daemonIn your browser, go to http://0.0.0.0:8000/
Your app will show up in the installed applications
Publish your app You should now see your app on your HuggingFace account https://huggingface.co/spaces/hf_username/reachy_mini_hello_world
Request your app to be added to the official apps
If you think your app is production ready, you can request it to be added to the list of official apps that appear in the dashboard ! Just make sure it's public before submitting it.
Just run :
~$ reachy-mini-app-assistant publish --official
This will create a PR on this dataset.
Please make sure to briefly explain what your app does. The Pollen and Hugging Face team will review your request. ---
Dashboard UI overview
Install from Hugging Face: official apps you can install with the Install button
Applications: apps already installed locally
Each app tile indicates status and actions like Run and Stop
Click on the βοΈ icon of a running app to view its GUI ### Hugging Face Space landing page
The Space's landing page is served by index.html
Use style.css to brand your app's page
Troubleshooting
Missing HF token
- Run:
huggingface-cli loginorhf auth login
- Run:
App not discovered in dashboard
Ensure the entrypoint is correctly declared in pyproject.toml
Confirm package name matches what the assistant generated
Import errors
- Activate the same virtual environment used to install reachy-mini and your app
Next steps
Add your behavior inside run in main.py
Re-run publish to update your Space
Share the Space URL so anyone with Reachy Mini can install and enjoy your app