A local planning layer on top of Apple Reminders.
Apple Reminders is a great capture tool, but it is flat: no groups inside a list, no columns, no subtask trees, no review. ReminderMap adds that planning layer without taking your tasks out of Apple's ecosystem:
- Mind map view — organize reminders into groups, columns and subtask trees on an infinite canvas
- Schedule view — a day-by-day runway of what is due and what is slipping
- Review view — month-by-month record of what actually got done
Your tasks stay in Apple Reminders. ReminderMap reads and writes them through the official EventKit API only, and keeps its own planning data (grouping, ordering, states, work log) in a local SQLite file next to the code. Nothing leaves your machine. There is no account, no cloud, no telemetry.
The interface is available in English and Traditional Chinese, following your system language.
- macOS 14 or later (EventKit full-access API)
- Python 3.9+ (standard library only, zero pip dependencies)
- Xcode Command Line Tools (
xcode-select --install) — the small Swift helpers that talk to EventKit are compiled automatically on first run
git clone https://github.com/Cogria-AI/ReminderMap.git
cd ReminderMap
python3 server.py # default port 8788Open http://127.0.0.1:8788. On first run macOS will ask for permission to access your reminders; the prompt is attributed to the terminal you launched the server from.
ReminderMap is not a viewer. Completing, creating or deleting a task in the
UI changes the actual reminder in Apple Reminders. The planning layer itself
(groups, ordering, states) lives only in remindermap.sqlite and is backed
up automatically to backup/; there is also a one-click JSON export in the
top bar.
server.py is a single-file HTTP server (stdlib http.server) serving the
static web UI and a small JSON API. reader.py shells out to three tiny
Swift helpers in tools/ (ekdump read, ekwrite write, ekwatch change
notifications) — EventKit is the only source of task data, and the hierarchy
that EventKit does not expose is owned entirely by the local node tree in
SQLite. The front end is plain HTML/CSS/JS, no framework, no build step.
Everything runs against temporary databases and never touches your real data or your reminders:
python3 tools/confirm.test.py # and: localundo / review / settings / writeback
node tools/rules.test.js # and: i18n / smoke
python3 tools/i18n.scan.py # UI copy completenessThis is the open source edition: the original Python + web form of ReminderMap, complete and self-hosted. A native Mac app is developed separately on top of the same design.
See LICENSE.