Repository navigation
Built from 93a34b8. The tag adds documentation only; the code is identical.
Harmoniser v1.0 (HackYeah 2026)
Tiny apps you don't need to download. Describe what you need in a sentence and Harmoniser builds a small app (a "capsule") on your phone: timers, counters, checklists, converters, scoreboards, weather-aware task lists. Each capsule asks before it uses a phone capability, and can be pinned to the home screen as a widget.
HarmonyOS / OpenHarmony, API 24 target (minimum API 20). Built from commit 93a34b8.
Downloads: which HAP to use
| You have | Use | SHA256 |
|---|---|---|
| The DevEco emulator | harmoniser-final-93a34b8-emulator-unsigned.hap |
dd71b8b033e7267a102b2f84ba568d0e42d5fdff59bf1c7e30d50d5020a8e957 |
| A real phone | Build from source with DevEco automatic signing (see "Real phone" below). The signed HAP only installs on our team's test phones. | |
| One of our team's test phones | harmoniser-final-93a34b8.hap (debug-signed with our profile) |
67b01028f2a418099773114182f5411486a7cb574b149ce5ec9e11f2d76a217f |
Both HAPs were scanned before upload: no API keys, tokens or config files inside. 363/363 unit tests pass at 93a34b8.
Install
Bundle name: com.hackyeah.capsules.
hdc uninstall com.hackyeah.capsules
hdc install -r harmoniser-final-93a34b8-emulator-unsigned.hap # emulator
hdc shell aa start -a EntryAbility -b com.hackyeah.capsulesWith more than one device connected, add -t <device-id> (from hdc list targets) to each command.
Rules, templates and the on-device AI work without any key.
Optional cloud AI (Claude). config.local.json must set the provider to Claude, with your own Anthropic API key. Never commit it, and never put it inside the HAP:
cat > /tmp/config.local.json <<'EOF'
{"default":"anthropic","providers":{"anthropic":{"apiKey":"<your Anthropic API key>"}},
"marketplace":{"baseUrl":"https://harmoniser-web.vercel.app"}}
EOF
hdc file send -b com.hackyeah.capsules /tmp/config.local.json data/storage/el2/base/files/
rm /tmp/config.local.json
hdc shell aa force-stop com.hackyeah.capsules && hdc shell aa start -a EntryAbility -b com.hackyeah.capsulesMost requests are built on the phone. When one needs a cloud model, the app names the provider first, which may be outside the EU. Only the request text (plus the weather line for live capsules) is sent, and only after you tap OK.
Real phone
harmoniser-final-93a34b8.hap is debug-signed with our team profile, which only covers our test phones; on any other phone the install fails with a signature or profile error. On a real phone, build the same code yourself:
git clone https://github.com/Akshaz7/capsules-harmonyos.git && cd capsules-harmonyos
git checkout v1.0-hackyeah
ohpm install --allOpen the folder in DevEco Studio, connect the phone, and tick File → Project Structure → Signing Configs → Automatically generate signature. Then Run ▶. Don't commit the signing change it writes to build-profile.json5.
Known issues
- After pressing Back on the "Use Claude" notice, the Create button can stop responding. Restart the app.
- After a restart, that request builds on the phone without offering Claude again.
- Mistral code is still in the app but switched off; it is being removed.
Third-party
Weather data by Open-Meteo.com (CC BY 4.0), shown with attribution in the app.