Petals
🌻 The Open Source app Petals aims to help its users to either quit weed, reduce usage or simply know how much they're using.
Install / Use
/learn @LeoColman/PetalsREADME
Petals
<p align="center" width="100%"> <img src="https://repobeats.axiom.co/api/embed/fc784a940119497476ba4d6694b88876e01aecbc.svg"> </p>The Open Source app Petals aims to help its users to either quit weed, reduce usage or simply know how much they're using.
<img src="https://user-images.githubusercontent.com/1577251/236347752-5c312036-27d1-4515-ab86-dc2aa9a09e66.png" alt="Get it on GitHub" height="80"> <img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" alt="Get it on F-Droid" height="80"> <img src="https://gitlab.com/IzzyOnDroid/repo/-/raw/master/assets/IzzyOnDroid.png" alt="Get it on IzzyOnDroid" height="80"> <img src="https://www.openapk.net/images/openapk-badge.png" alt="Get it on OpenAPK" height="80"> <img src="https://www.androidfreeware.net/images/androidfreeware-badge.png" alt="Get it on AndroidFreeware" height="80"> <img src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png" alt="Get it on Play Store" height="80">
⚠️ The Google Play Store version contains advertisements
For an ad free experience download the app from other release channels.
🌐 Contributing Translations
Petals welcomes community contributions for translations! To contribute translations, please follow these guidelines:
- ✨ New Languages: If you are adding a new language, translations must be 100% complete before submission.
- ⚠️ Minimum Completion: Translations that fall below 60% completion will be removed to maintain quality.
- 🤝 Contribution Methods:
- 🌍 Non-programmers are encouraged to collaborate via Weblate.
- 🖥️ Programmers may contribute translations via pull requests directly on GitHub.
Translations are hosted at Weblate. You can contribute to your language here.
Screenshots
<details> <summary>Open to see screenshots</summary>

Building
You can assemble both debug and release versions of the app for different variants (F-Droid, Playstore, GitHub) using the corresponding Gradle tasks. Here's how to do that:
Debug Version
- F-Droid:
./gradlew assembleFdroidDebug - PlayStore:
./gradlew assemblePlaystoreDebug - GitHub:
./gradlew assembleGithubDebug
Release Version
For the release version, you must first decrypt secrets using git secret reveal. The release version can be assembled
as follows:
- F-Droid:
./gradlew assembleFdroidRelease - PlayStore:
./gradlew assemblePlaystoreRelease - GitHub:
./gradlew assembleGithubRelease
Git Secrets
The Keystore, Keystore Properties, and Google Play deploy json files are included in the repository using git secret. The current secret owners are:
-
Leonardo Colman Lopes
- Fingerprint
B3A5 9909 9ECC 4DB4 FD40 896F 7706 1922 C587 2792 - Original Author
- Fingerprint
-
GitHub Actions
- Fingerprint
882E 409C 71F4 565B 1698 B947 A992 5FF4 75B3 5E07 - Auto-publishing signed app to GitHub
- Expires on 2027-04-05
- Available on environment secret
GPG_KEY
- Fingerprint
Releasing
Release to all our channels is made automatically after a tag is released. The workflow responsible for doing this is release.main.kts.
Google Play Store
- Decrypt all git secrets
- Run
./gradlew bundlePlaystoreRelease - Publish to playstore by running
cd fastlane && bundle config path vendor/bundle && bundle install --jobs 4 --retry 3 && bundle exec fastlane playstore
F-Droid
F-Droid builds automatically from the repository whenever a new tag is published. The definitions for how to build the app are in F-Droid's data repository. If modifications are required, the place to change is there.
Releases Page
- Decrypt all git secrets
- Run
./gradlew assembleGithubRelease
Related Skills
node-connect
334.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
334.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.1kCommit, push, and open a PR

