Local Tasks Bridge is a free, open-source menu bar app that keeps the Reminders lists you choose in two-way sync with Google Tasks. It runs only on your Mac — there is no server in between.
New tasks, title and due-date edits, completions and deletions flow both ways between the Reminders lists you select and Google Tasks lists of the same name.
Tasks added in Google Tasks, Gmail, Google Calendar or Gemini show up in Reminders, the Reminders widget and Siri.
Large batches of deletions or completions wait for your approval, the first sync never deletes anything, and a sync never switches Google or Apple accounts silently.
Sign-in, sync state and logs stay on your Mac. Task data goes only between your Mac and Google's official API — never to the developer.
A setup assistant, status at a glance, Sync Now, Pause, and a review window for pending changes. Local edits upload within seconds.
The app, the command-line tool and the documentation are available in English and Simplified Chinese.
Apple Reminders⇄ EventKit on your Mac⇄ Local Tasks Bridge⇄ Google Tasks API
Google cannot read iCloud Reminders directly, so the bridge runs in your macOS user session: it reads and writes Reminders through Apple's EventKit framework and talks to the Google Tasks API with your own sign-in. Every sync is planned first; a plan that would delete or complete more items than the safety limit is held until you approve exactly that set.
Requirements: macOS 13 Ventura or later (Apple silicon or Intel), Reminders with iCloud, and a Google account.
curl -fsSL https://raw.githubusercontent.com/siyuanj/local-tasks-bridge/main/install.sh | bash
curl does not use the macOS system proxy. Run
export https_proxy=http://127.0.0.1:7890 first (use the port of your proxy app), and
set the same proxy on the app's sign-in step.git clone https://github.com/siyuanj/local-tasks-bridge.git && cd local-tasks-bridge && make install.The first launch opens a setup assistant: allow Reminders access, choose how to sign in to Google, pick your lists, review what the first sync will do, and start syncing.
Local Tasks Bridge requests only these Google permissions:
https://www.googleapis.com/auth/tasks — view and manage your Google Tasks, to
synchronize the lists you select;openid and email — to recognize which Google account a sync belongs
to and show it to you.It does not request access to Gmail, Google Calendar, Google Drive or Google Cloud data. The Tasks permission covers your whole account; the app itself reads and writes only the lists you select.
| Sign-in method | What you need | Notes |
|---|---|---|
| Quick sign-in | Nothing — included in release builds | Google may show “Google hasn't verified this app” until the app completes Google's verification. Your data still never reaches the developer. |
| Your own Google Cloud client | About 10 minutes in a free Google Cloud project (guide) | No user limits; your own API quota. |
Local Tasks Bridge's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. Read the privacy policy for details. You can revoke access at any time at myaccount.google.com/permissions.
Questions and bug reports: GitHub Issues. Please never post task content, tokens or logs publicly. Security issues: report privately.