Settings & Backup
Everything lives in the Desk tab. The pages you'll actually visit:
Data source
- Shows what Courier requested access to (workouts, sleep, related vitals) and the honest authorization state. Because iOS never reveals whether read access was granted, the app shows "authorization requested" plus a link to the Health app where the real switches live.
- States the core promise in writing: read-only, never writes.
- Explains the background chain: Apple Health → background delivery → Courier wakes → dispatch → notification.
Notifications
- Always (default) or failures only for automatic dispatch results.
- Shows the real system permission state; if notifications were denied at the system level, you get a direct link to fix it — not a toggle that pretends.
Language & appearance
- 8 languages switchable in-app (or follow the system): English, 简体中文, 繁體中文, 日本語, 한국어, Deutsch, Français, Español. A restart makes the switch fully clean.
- Day / night editions (light / dark) or follow the system; the night edition is warm charcoal, not pure black.
- Dynamic Type is supported throughout.
Transcription service
Where voice annotations get transcribed: on-device / system, or your own OpenAI-compatible endpoint (URL, model, API key — the key goes to the Keychain). See Annotations.
Dispatch history
The full ledger with per-request status codes and response snippets. Retention is 6 months; the delivered data itself lives on your endpoints.
Notes archive
Local, permanent storage of every annotation — export as JSON or clear it. See Annotations.
Config backup
Export the whole configuration — subscribers (URLs, methods, headers, body params, toggles, transform scripts) and app preferences — as a single file; import it on a new iPhone.
What backups do and don't contain
Secrets are excluded: they live in the Keychain and never leave it — after an import you re-enter each subscriber's secret once. Transform scripts are included as-is — if you pasted a credential into a script (don't), it would be in the backup file.
There is deliberately no iCloud sync: the app declares no CloudKit capability at all, so nothing can sync invisibly. Moving devices = export file, import file, re-enter secrets.
Version footer
The Desk footer shows the issue number and app version — handy when filing an issue on GitHub.