IF YOU USE THIS SOFTWARE, YOU SHOULD ASSUME IT WILL:
- Fail to do what you want
- Destroy your existing data in both Apple Reminders and Vikunja
- Brick your devices or otherwise cause irreparable harm
- Lose your data permanently
This is early development software with NO safety guarantees. Run at your own risk. Do not use this on production data or critical tasks. Back up everything before attempting to use it.
Two-way sync between Apple Reminders and Vikunja, with:
- Swift Package core sync engine
- macOS CLI utilities and probes
- iOS SwiftUI wrapper app
This repo is intended for local, user-driven sync (not a server daemon).
Sources/andTests/: core sync engine (Swift Package)scripts/: MVP sync CLI + EventKit probesios/: SwiftUI app + XcodeGen projectdocs/: design notes and API references
Build:
swift buildRun tests:
swift testRun sync (dry-run):
swift run mvp_syncRun sync (apply):
swift run mvp_sync --applyOpen the Xcode project:
open ios/LomindraApp.xcodeprojNotes:
- The app handles login, list selection, and manual sync.
- Background sync uses BGTaskScheduler; device testing is more reliable than Simulator.
These files are local-only and ignored by git:
vikunja_details.txt(token + server settings)apple_details.txt
Do not commit real tokens or URLs with embedded credentials.
- If background scheduling behaves oddly in Simulator, validate on a real device.
- If login fails, try the probe:
VIKUNJA_API_BASE="https://your-host" \ VIKUNJA_USERNAME="user" \ VIKUNJA_PASSWORD="pass" \ swift scripts/login_probe.swift
Start with:
docs/ios-setup.mddocs/settings-format.mddocs/ios-roadmap.md