Mirobody
The canonical registry of human health — roughly two thousand standardized indicators, clinical and lifestyle, resolved into one language.
A hero and a pet remind you to drink water, and anything else you tell them to. Free, open source, never online.
HealthJavaScript · HTMLGitHub @vicky-coOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
💧 Free, offline desktop water reminder for Windows & Linux. A 3D hero and pet walk onto your screen to remind you to drink water, stretch, or anything else. Electron + three.js, no telemetry.
Taken from the repository README
Loading the full README.
Read the full README ↗A hero and a pet that remind you to drink water, and anything else you tell them to.
Sip is a small desktop companion. A 3D hero (and a pet) walk onto your screen when a reminder is due, do a bit of showing off, and stay until you answer. Water is built in; add any other reminder you like, with dates and times. It is free, open source, and never connects to the internet.
Website: https://vicky-co.github.io/sip-water-buddy/
| Characters | Reminders | On your desktop |
|---|---|---|
.glb), and your own pet sounds.Grab the latest build from the Releases page.
Sip-Water-Buddy-Setup-<version>.exe from the release.^ arrow if hidden) and double-click it to open Settings.It keeps running when you close any terminal, and starts when you sign in (switchable in Settings). Uninstall from Settings → Apps → Sip Water Buddy;
your reminders and settings stay in %APPDATA%\sip-water-buddy (delete that folder to remove them too).
Prefer no installer? Download Sip-Water-Buddy-<version>-portable.exe: a single file you can run from anywhere (it starts a little slower).
.exe (blocked PCs)Some PCs block downloaded programs from an "unknown publisher". Sip is unsigned, so use one of these folder options instead:
.exe downloads are blocked). Install Node.js 20+ (LTS), then either
Code → Download ZIP on this page and extract it, or git clone https://github.com/vicky-co/sip-water-buddy.
Double-click Start Sip (Windows, from folder).bat in that folder. The first run sets itself up (internet needed, about a minute); after that it starts at once.
Nothing is installed and no downloaded .exe is run: Node.js fetches the Electron runtime itself. Or type npm install then npm start in a terminal.sip-water-buddy-<version>-windows-x64.zip from the release, right-click it → Properties → tick Unblock → OK,
then Extract All and double-click Start Sip.bat (or Sip Water Buddy.exe). No installation and no Node.js needed. Delete the folder to remove it.Group policies that block all unsigned programs (for example AppLocker) can still stop either route; ask the PC's administrator to allow the folder. Windows support is newer and has had less testing than Linux: please report anything odd.
unzip sip-water-buddy-<version>-linux.zip && cd sip-water-buddy && ./install.sh
Needs Node.js 20+ (the installer offers to install it) and internet once, to fetch the Electron runtime. Look for the water-drop icon in the top bar. Tested on Ubuntu 24.04 (GNOME); Sip runs through XWayland so it can stay on top.
Easiest, on any system: open Sip's Settings → General → Uninstall Sip completely… (also in the tray menu). It shows exactly what will be deleted
(the program or folder it runs from, shortcuts, start-at-sign-in entry, your reminders and settings, logs), asks you to confirm, then quits and removes it.
If you ran Sip from a project folder (npm start or the .bat file), that folder is deleted too, so move out anything you want to keep first.
The manual steps below do the same without opening the app.
Windows (installer): Settings → Apps → Installed apps → Sip Water Buddy → Uninstall. Then delete %APPDATA%\sip-water-buddy to remove your
reminders and settings. Portable exe: quit Sip from the tray icon, delete the .exe, and delete %APPDATA%\sip-water-buddy.
Windows (zip with Install.bat): run Uninstall.bat; it removes the program, shortcuts, start-at-sign-in and your data.
Ubuntu / Linux: run the uninstaller that was installed with Sip:
~/.local/share/sip-water-buddy/uninstall.sh # asks first, then removes everything
~/.local/share/sip-water-buddy/uninstall.sh --keep-data # keep your reminders and settings
It stops Sip and deletes the program, the app-grid launcher, the start-at-sign-in entry, your data and the logs. It only touches your home folder. If you no longer have the script, remove these by hand after choosing Quit from the tray icon:
pkill -f "electron.*sip-water-buddy"
rm -rf ~/.local/share/sip-water-buddy ~/.config/sip-water-buddy ~/.cache/sip-water-buddy.log \
~/.local/share/applications/sip-water-buddy.desktop ~/.config/autostart/sip-water-buddy.desktop
(Sip only installs Node.js if you let install.sh do it; remove that separately with sudo apt remove nodejs npm if you want.)
macOS is not packaged or tested. The code avoids platform-specific assumptions, so running from source may work; contributions welcome.
~/.config/sip-water-buddy/, Windows %APPDATA%\sip-water-buddy\.sip.log; Settings → General → Open log file.Requires Node.js 20+ (22 recommended).
git clone https://github.com/vicky-co/sip-water-buddy.git
cd sip-water-buddy
npm ci # installs dev tools and builds the 3D bundle
npm start # downloads the Electron runtime on first run, then launches Sip
| Command | What it does |
|---|---|
npm start | Run from source (adds --no-sandbox on Linux only) |
npm test | Unit tests for settings validation and reminder scheduling |
npm run lint | Syntax check of every script |
npm run test:e2e | Launches the real app under a virtual display and drives both windows (Linux, needs xvfb) |
npm run package:linux | Builds the Linux zip into dist/ |
npm run package:win | Builds the Windows installer and portable exe into dist/installer/ (run it on Windows; GitHub Actions does this for releases) |
sip-water-buddy/
├── src/
│ ├── main/ Main process: windows, tray, scheduler, validated IPC (main.js, branding.js)
│ ├── preload/ The only bridges between the windows and the main process
│ ├── shared/ core.js: settings validation + reminder scheduling (pure, fully unit-tested)
│ └── renderer/
│ ├── overlay/ The hero and pet window (3D rendering, animation, sound)
│ ├── settings/ The Settings window
│ └── vendor/ Generated three.js bundle (not committed; built by `npm ci`)
├── assets/ Icons, 3D models, sounds (provenance in assets/README.md)
├── scripts/ Build, packaging and installer scripts (linux/, windows/)
├── tests/ Unit tests and the end-to-end test
├── docs/ Architecture, adding characters, releasing, screenshots
└── .github/ CI, release automation, issue and PR templates
More detail: docs/ARCHITECTURE.md · docs/ADDING-CHARACTERS.md · docs/RELEASING.md
--no-gpu (Windows: right-click the shortcut → Properties → add --no-gpu at the end of Target; Linux: SIP_NO_GPU=1).Bug reports, ideas and pull requests are welcome. Please read CONTRIBUTING.md first; it is short. Security problems: see SECURITY.md and report them privately.
Made by Paresh Sethy: GitHub @vicky-co · LinkedIn. If Sip helps you, a ⭐ on the repository is the nicest thank-you, and connecting on LinkedIn is always welcome.
The code is released under the MIT licence. Third-party software and the 3D models and sounds have their own terms: see THIRD_PARTY_NOTICES.md and assets/README.md.