Mood Cairns

Mood Cairns

Private, fully offline mood tracker. No network access. Your data's yours..

lcdcode Mental Health

Screenshots

Screenshot of Mood Cairns Screenshot of Mood Cairns Screenshot of Mood Cairns Screenshot of Mood Cairns Screenshot of Mood Cairns

Description

A private, fully offline Android mood tracker. Log how you're feeling against your own scales, in your own time windows, on your own device. Nothing is ever uploaded - sync, if you want it, is your job (Syncthing works well on the encrypted backup folder).

Features

* Custom scales. Five built-in scales (Happiness, Anxiety, Stress, Boredom, Pain), each numeric and color-tagged. Add your own; archive the ones you don't want.
* Prompt windows. Define time-of-day windows (e.g. morning 08:00-12:00, evening 18:00-20:00). The app fires one notification per window per day at a randomized time inside it. Tap the notification to jump straight to the log entry screen.
* History and charts. Browse past entries, see per-scale trends over time.
* Encrypted on-disk storage. The mood database is encrypted at rest using SQLCipher. The key lives in memory only while the app is unlocked, and is wiped when you lock it.
* PIN + biometric lock. PIN-gated app entry, with optional biometric unlock. PIN is hashed with PBKDF2-HMAC-SHA256 (600k iterations) before being stored.
* Encrypted backups. Manual export writes an AES-GCM-encrypted JSON file to Documents/MoodCairns/. The encryption key is derived from your PIN with PBKDF2-HMAC-SHA256 (200k iterations) and a fresh per-backup salt embedded in the envelope, so any install (including a fresh one) can decrypt with the same PIN.
* Home-screen widget for one-tap mood logging.

Privacy contract

The app declares no network permissions. Without internet, the process literally cannot open a socket, which makes phone-home impossible regardless of what any included library tries to do.

The build enforces this, so a network permission can never be silently introduced by a dependency update.

If you want backups synced off-device, point Syncthing (or any file manager that can sync a folder) at Documents/MoodCairns/.

Contact

The best way to get in touch for issues, feature requests, etc. is the Issues page on github.com/lcdcode/mood-cairns. I will usually respond within 3 business days.

Source

Fully open source under GPL-3.0-only. Built on Kotlin, Jetpack Compose, Room, SQLCipher, and AndroidX.

What’s new (1.1.0)

- New Custom Tags feature: People, Places, and Activity tags can be assigned and filtered on (thanks github.com/carliitooss)
- Help text for Charts
- Allow users to export unsafe (unencrypted) CSV file if enabled in settings to perform further analysis if desired.
- Show Notes and Tags on your entries when you tap on a date in the Chart

Versions

Version Date Size Requires Android Download
1.1.0 current
a87d3a34f16aa7e1…
2026-07-28 25 MB API 29
1.0.7
f1bc158f5ae34b70…
2026-07-15 25 MB API 29
1.0.6
51a6f8f7f3ac57c0…
2026-07-03 25 MB API 29

Permissions

What the app asks the system for. Android only grants sensitive access after you confirm it.

  • NotificationsShow notifications.
  • Run at startupStart automatically after the device is switched on.
  • BiometricsUnlock with fingerprint or face.
  • Exact alarmsTrigger actions at a precise time.
  • USE_EXACT_ALARM
  • Prevent sleepingKeep the device from going to sleep.
  • Foreground serviceKeep running in the background, visible in the status bar.
  • FingerprintUnlock with a fingerprint.
Show 1 more permissions
  • moodcairns.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

Comments