A collection of custom creations for the Rabbit R1, built from scratch using the native R1 SDK. Voice input, accelerometer, scroll wheel, keyboard editing — all working.
There are three ways to use these apps:
1. Just scan and go — the apps are already hosted. Click any Install QR link in the table below, open the page on your computer or phone, and scan the QR code with your R1. Nothing to set up.
2. Self-host — clone this repo and host the apps yourself on Netlify, GitHub Pages, or any web server. Use the setup prompt to get an AI assistant to walk you through it.
3. Gemma Chat (advanced) — AI chat that requires you to run your own backend. Clone the repo and see the Bring your own backend section below.
Also includes a tips & tricks doc — a running log of everything figured out building these apps.
| App | Install | Description | Controls |
|---|---|---|---|
| 🛒 shopping-list | Install QR | Voice-powered shopping list | Hold = voice add · Long press item = delete · Double tap item = edit · Scroll = navigate |
| ✅ todo | Install QR | Three lists (Home / AI Dev / Random) | Side click = cycle lists · Hold = voice add · Double tap = edit · Long press = delete · Scroll = navigate |
| 💪 rep-tracker | Install QR | Daily push-up and row tracker with progress graphs | Side click = cycle exercises · Scroll up/down = log reps · Long press = reset today |
| ⏱️ rep-timer | Install QR | Workout interval timer | Tap = start/pause · Hold = reset · Scroll = adjust duration · Side click = switch exercise/rest |
| 🫧 spirit-level | Install QR | Bubble level using the native 60Hz accelerometer | Side click = calibrate · Long press = reset calibration |
| 🎲 dice-roller | Install QR | Shake to roll — d4 through d20, single or double dice | Shake = roll · Scroll = change die · Side click = toggle single/double dice |
| 📝 notes | Install QR | Voice or keyboard notes, review before saving, QR export | Side click = new note · Hold = voice note · Double tap = edit · Long press = delete · QR button = export note |
| 📅 calendar | Install QR | Monthly calendar with daily entries — voice or keyboard input | Scroll = navigate days · Side click = open day · Scroll in day = select entry · Side click = add/edit entry · Hold = voice add · Tap ⟵ = back |
| 🐣 r1-buddy | Install QR | Tamagotchi-style pixel-art companion with catch & fishing mini-games | Tap = feed · Scroll ↑ = treat · Scroll ↓ = cuddle · Side = play · Side×2 = stats · Hold = menu (games / reset) · Shake = excite |
| 🤖 gemma-chat | — requires own backend | AI chat powered by Gemma 4 | Hold = speak · Side click = new chat · Scroll = navigate · Tap mute pill = mute TTS |
![]() Shopping List |
![]() Todo |
![]() Notes |
Rep Tracker |
![]() Rep Timer |
![]() Spirit Level |
![]() Dice Roller |
![]() R1 Buddy |
![]() Calendar |
| App | Description | Controls |
|---|---|---|
| 🤖 gemma-chat | AI chat — clone the repo and run your own backend | Hold = speak · Side click = new chat · Scroll = navigate · Tap mute pill = mute TTS |
gemma-chat is not hosted here — it requires a backend server to proxy requests to an LLM. Clone the repo and follow the setup in gemma-chat/web-server.py. You can use any Google AI Studio key with Gemma, or swap in any OpenAI-compatible endpoint.
The apps are already hosted and ready to use via the Install QR links above. But if you want to run your own copy — to modify the apps, pin a specific version, or just not depend on someone else's hosting — here's how.
Pick any free static host:
- Netlify — drag and drop the app folder at netlify.com. Done.
- GitHub Pages — push to a repo and enable Pages in settings.
- Any web server — the apps are plain HTML, no build step needed.
Each app is self-contained in its own folder. Host as many or as few as you like.
Open the app's install.html and replace the existing URL with your own hosted URL:
var creationUrl = 'https://your-domain.com/shopping-list/';Open install.html in a browser — it generates the QR automatically from the URL above.
Open the R1 camera, scan the QR, and install. That's it.
The R1 caches the install URL. If you update an app and want users to get the new version, bump the ?v= parameter in install.html:
var creationUrl = 'https://your-domain.com/shopping-list/?v=2';Regenerate the QR and rescan.
See R1_CREATION_TIPS.md — a running log of everything figured out building these apps. Covers voice input, keyboard handling, accelerometer, shake detection, storage, LLM integration, and more.
Questions or ideas? Find us in the #r1-creations channel on the Rabbit Discord.







