srid/Appreciate

A tiny macOS/Android app that periodically flashes a reminder across your screen

★ 3Forks 1KotlinGitHub ↗Compare

Project website ↗

README

Appreciate icon

Appreciate ✨

🌐 appreciate.srid.ca

A tiny app that periodically flashes customizable reminders across your screen as transparent overlays — nudging you to stay present, feel good, or remember whatever matters to you.

Comes with built-in Reminder Packs (Sensory, Actualism Method, Richard's Journal, Cooking, ...) and lets you create your own. Interval, position, font, color, and style are all randomized to prevent habituation.

Available for macOS, Android, Windows, and Linux.

Features

  • 🖥️ Screen overlay — reminder text appears directly on your desktop, then fades away
  • 📦 Reminder Packs — built-in packs (Sensory, Actualism Method, Richard's Journal, Cooking) plus create your own
  • ✏️ Fully editable — add, delete, and edit packs; each pack has multiple lines (random pick)
  • 🎲 Anti-habituation — everything is randomized (timing, position, color, font, animation style)
  • 🖥️🖥️ Multi-monitor — appears on all screens simultaneously (macOS, Windows)
  • 🎯 Background app — menubar on macOS, foreground service on Android, system tray on Windows
  • 🎧 Voice mode — automatically speaks reminders via TTS when headphones are connected (Android)

macOS

Install from DMG

  1. Download the latest .dmg from Releases
  2. Drag Appreciate to Applications
  3. Remove quarantine (required for unsigned apps):
    xattr -cr /Applications/Appreciate.app
  4. Open Appreciate — the ✨ icon appears in your menubar

Build from source

cd macos
./build.sh

Requires Xcode Command Line Tools (xcode-select --install).


Android

Install from APK

  1. Download the latest .apk from Releases
  2. Transfer to your phone and install (enable "Install from unknown sources" if prompted)
  3. Open Appreciate → tap "Grant Overlay Permission" → enable the toggle
  4. The app starts showing reminders immediately

Build from source

nix develop                # enters dev shell with Android SDK, Java, Gradle
just deploy                # builds APK and installs to connected phone

Enable USB debugging on your phone first: Settings → About phone → tap Build number 7× → Developer options → USB debugging.

First-time setup on phone

  1. Open Appreciate
  2. Tap "⚠️ Grant Overlay Permission" → toggle on for Appreciate
  3. Back to app → Enabled switch is on by default
  4. Done! Reminders will appear at random intervals

Always On Display (AOD)

Appreciate registers as an Android Screensaver (Daydream). To show reminders on the Always On Display or when your device is idle:

  1. Open Appreciate → tap "🌙 Open Screen Saver Settings"
  2. Select Appreciate as your screen saver
  3. Reminders will now appear on your lock screen / AOD when idle or charging

Voice Mode (Headphones)

When Bluetooth headphones (or wired/USB headsets) are connected, Appreciate automatically speaks reminders aloud via Text-to-Speech — perfect for strolling, walking, or exercising without looking at your screen. The visual overlay still appears simultaneously.

  • Enabled by default — toggle off with "🎧 Voice when headphones connected" in settings
  • Works with Bluetooth A2DP, wired headphones, USB headsets, and BLE headsets
  • Anti-habituation — speech rate, pitch, and voice are randomized on each utterance so you don't tune it out

Windows

Install from EXE

  1. Download the latest .exe from Releases
  2. Run it — the ✨ icon appears in your system tray
  3. No special permissions needed

Build from source

Requires .NET 8 SDK.

cd windows
dotnet run

To publish a single-file executable:

cd windows
dotnet publish -c Release -r win-x64 --self-contained

Linux

Install via Nix

nix run github:srid/Appreciate

Install from AppImage

AppImages are available for both x86_64 and ARM (aarch64).

  1. Download the latest .AppImage for your architecture from Releases
  2. Make executable and run:
    chmod +x Appreciate-Linux-*.AppImage
    ./Appreciate-Linux-*.AppImage
    No dependencies needed — everything is bundled.

Usage

Setting Description
Reminder Pack Select a pack, add new ones (+), or delete existing (−)
Reminder Text Editable lines for the current pack; a random one is picked each time
Enabled Toggle reminders on/off
Launch at Login/Boot Auto-start on system startup
Min/Max Interval Random interval range (default 6s–1.5min)
Display Duration How long the overlay stays visible
✨ Show Now Trigger a reminder immediately

Releasing

  1. Go to Actions → Release
  2. Click Run workflow
  3. Enter a version tag (e.g. v1.1.0)
  4. The workflow builds macOS DMG, Android APK, Windows EXE, and Linux AppImages (x86_64 + ARM), and attaches all to the Release

License

GPL-3.0-or-later

Contributors

srid

Issues