Three clients read the same cards and the same review log. Your cards live off the device (in Anchor Cloud or on GitHub), so grading on one device continues on another.
| iOS / iPadOS | Android | macOS | |
|---|---|---|---|
| Distribution | App Store | Google Play | .dmg from this site (notarised) |
| Requirements | iOS 17.0+ | Android 8.0+ | macOS 13+ |
| Anchor Pro | Yes | Yes | No (set the number freely) |
| Anchor Cloud | Connect with code, paste import, add another device | Same | Same |
| GitHub connection | Device flow + pasted token | Same | Same |
| GitHub token storage | Keychain | Encrypted device storage | macOS keychain |
| Study / Browse / Changes | ✅ | ✅ | ✅ |
| Bulk weak-card copy, history | ✅ | — | ✅ |
| Speech, haptics, sharing with other apps | ✅ | — | — |
| Card appearance | Follows OS text size | Follows OS text size | In-app (size, heading colour, emphasis) |
| Undo a grade (few-second grace) | ✅ | — | — |
| Optimise from your log | — | — | ✅ |
| Keyboard | 1–4 (for Split View on iPad) | — | Space/Enter, 1–4, s, ⌫ |
There are no Windows or Linux builds.
Differences that are deliberate
- Undoing a grade: Mac and Android write the moment you press, so “Back one” there always means “the card returns, the grade stands”
- Trial grades: iOS separates the storage; Mac and Android stop them at the send step. Either way they never reach your cards’ home
- Fetching cards: Mac fetches in parallel so the first sync is not a wait (writes are serial and 1.1 seconds apart everywhere)
- Markdown rendering: tables scroll sideways on Mac; on iPhone-width screens wrapping reads better, so iOS and Android wrap
- The FSRS engine: three different implementations, but the default parameters are aligned to FSRS-6, so the same log gives the same intervals
All three use one GitHub App
Authorisation and installation are per-App, so connecting on iOS means you do not start over when you install the Mac build. Otherwise the central promise — three clients reading the same cards — would break at the front door.