A lightweight native macOS client for Todoist. Built with SwiftUI, zero third-party dependencies.
Todois covers a small subset of Todoist: browse, create, and complete tasks within existing projects and sections. No collaboration, no offline mode, no labels, no filters — just the core task workflow.
- Browse projects and sections
- View tasks grouped by section
- Create and edit tasks inline (title + description)
- Mark tasks as complete
- Drag-to-reorder tasks within a section
- Remembers the last opened project between launches
- API token stored securely in macOS Keychain
- macOS 26 (Tahoe) or later
- Xcode 26.3 or later
- A Todoist account with a personal API token
This app is not distributed via the App Store or as a signed binary. You need to build it yourself using Xcode.
-
Clone the repository:
git clone <repo-url> cd todois -
Open the project in Xcode:
open Todois.xcodeproj -
Select the Todois scheme and your Mac as the run destination.
-
Select Product > Build (Cmd+B) to build the app.
Xcode will sign the app automatically with "Sign to Run Locally" — no Apple Developer account required.
-
Find the built app in Xcode: Product > Show Build Folder in Finder, then navigate to
Build/Products/Debug/. -
Drag Todois.app into your
/Applicationsfolder.
On first launch, the app will show a settings screen asking for your Todoist API token.
- Go to Todoist Settings > Integrations > Developer and copy your API token.
- Paste it into the token field and click Save.
- Your projects will appear in the sidebar.
The token is stored in the macOS Keychain and persists across launches.
In Xcode: Product > Test (Cmd+U)
Or from the command line:
xcodebuild test -scheme Todois -destination 'platform=macOS'
This app is not created by, affiliated with, or supported by Doist (the makers of Todoist). It uses the Todoist REST API.
I love Todoist and highly recommend it. If you find it useful, please consider getting a Todoist Pro or Business subscription to support the amazing team at Doist.
This project is licensed under the MIT License. See LICENSE for details.