Your routine shouldn't be a list you forget. RoutineNotify turns it into a voice that reminds you — on time, every time.
![]() |
![]() |
![]() |
| Routines overview | Routine editor | Settings |
![]() |
![]() |
|
| Tasks | Windows notification |
- Scheduled notifications — set the exact time for each routine.
- Custom sounds & icons — attach your own audio and images.
- AI messages — Gemini writes the message, ElevenLabs reads it aloud.
- Task list — simple built-in to-do list.
- System tray — runs quietly in the background.
- Full backup — export/import everything in a single JSON file.
- 9 UI languages — EN, ES, 日本語, FR, DE, IT, PT, 한국어, 中文.
Download the installer from the releases page:
- Windows:
RoutineNotify.Setup.<version>.exe - macOS:
RoutineNotify-<version>.dmg(Intel) andRoutineNotify-<version>-arm64.dmg(Apple Silicon) - Linux:
.AppImageor.deb
- Install and launch the app — it starts minimized in the system tray.
- Double-click the tray icon to open the main window.
- Go to Routines → New routine, set a time and a message, save, and keep the routine enabled.
- You'll get a notification at the scheduled time with your sound.
- Routines — create, edit, enable/disable and test your routines. Each one has a time, message, optional icon and sound, and an AI message toggle.
- Tasks — a lightweight to-do list; check items off as you finish them.
- Settings — API keys, voice, message language, UI language and theme.
The AI message toggle needs both API keys configured in Settings. If AI is disabled or a key is missing, the app uses the message you wrote.
- Gemini API key (writes messages) — free key at aistudio.google.com.
- ElevenLabs API key (reads them aloud) — at elevenlabs.io.
Paste both in Settings → AI assistant, pick a voice and language, and enable AI on any routine.
Use Export to save everything (routines, tasks, icons and sounds) into a single self-contained JSON file, and Import to restore it. API keys are never exported.
The backup file is a JSON object with the following shape:
{
"version": 2,
"exportedAt": "2026-08-08T21:16:39.0250943-06:00",
"routines": [
{
"id": 1,
"hour": 8,
"minute": 0,
"title": "Deep work",
"description": "2 hours of focused coding",
"icon": "",
"sound": "file:custom_0123456789abcdef0123456789abcdef.ogg",
"enabled": true,
"useAI": true
}
],
"todos": [
{
"id": 1,
"text": "Review pull requests",
"completed": false,
"createdAt": "2026-08-08T08:00:00.000Z",
"completedAt": null
}
],
"icons": [],
"sounds": [
{
"name": "custom_0123456789abcdef0123456789abcdef.ogg",
"data": "<base64-encoded file content>"
}
]
}Routine fields:
| Field | Type | Description |
|---|---|---|
id |
number | Unique identifier |
hour |
number | Hour of the notification (0-23) |
minute |
number | Minute of the notification (0-59) |
title |
string | Routine name (shown in the notification) |
description |
string | Detail shown in the app |
icon |
string | Custom icon reference, empty for default |
sound |
string | Sound reference — file:<name> for a custom sound, empty for default |
enabled |
boolean | Whether the routine is active |
useAI |
boolean | Generate the message with AI instead of title |
Embedded assets: images and sounds are stored in icons / sounds as { "name", "data" } where data is the file content encoded in base64. A routine references an asset by name, e.g. sound: "file:custom_0123456789abcdef0123456789abcdef.ogg" and the corresponding entry in sounds carries the actual bytes. This keeps every backup fully self-contained and portable.
Legacy format: a plain array of routines is also accepted on import — the message field from older versions is migrated to title automatically.
- Windows:
%APPDATA%\Routine Notify\ - macOS:
~/Library/Application Support/Routine Notify/ - Linux:
~/.config/Routine Notify/
| File | Contents |
|---|---|
routines.json |
Your routines |
todos.json |
Your task list |
settings.json |
API keys, language and theme |
custom-icons/ |
Uploaded images |
custom-sounds/ |
Uploaded audio files |
Requirements: Node.js 18+ and npm.
npm install
npm run dev
npm run typecheck
npm run build
npm run build:win # Windows .exe
npm run build:mac # macOS .dmg
npm run build:linux # Linux AppImage + .deb- Electron 33 + electron-vite
- React 19 + Zustand
- Tailwind CSS 4 + Radix UI
- Gemini API — AI messages
- ElevenLabs API — text-to-speech
MIT — see the LICENSE file.




