yulu is built privacy-first. By default, your voice and your data never leave your iPhone.
What we collect
On-device only (default mode, nothing is transmitted off your device):
Voice recordings are processed by WhisperKit on-device and discarded after transcription.
Transcripts are stored locally in yulu's database (SwiftData).
Intent extraction runs through Apple's on-device Foundation Models framework.
Chinese date / time parsing is performed by a deterministic, on-device rule engine.
When you enable Cloud Fallback in Settings (opt-in only):
The cleaned text transcript may be sent to our Cloudflare Worker proxy (which forwards it to Google's Gemini 2.5 Flash for extraction), or directly to Anthropic's Claude API if you provide your own API key (BYOK mode).
A randomly generated device identifier (UUID) is sent alongside the request to track monthly usage quota for the free tier.
Voice audio recordings are never transmitted, in any mode.
Transcripts are processed in real time and discarded after the structured result is returned. We do not retain transcripts beyond the request.
How we use it
Transcripts: only to extract task / event / note structure from your speech.
Device identifier: only to track monthly free quota in our Cloudflare KV store. Not used for advertising, analytics, profiling, or cross-app tracking.
Third parties
Worker proxy mode: transcripts pass through our Cloudflare Worker to Google's Gemini API. Cloudflare's and Google's respective privacy policies apply to the in-transit data.
BYOK Anthropic mode: transcripts go directly to Anthropic's Claude API with your own API key. Anthropic's privacy policy applies.
We do not share, sell, or rent your data to any other parties.
Your data rights
All on-device data is fully under your control. Deleting the app removes all local captures.
Individual captures can be deleted from yulu's History via long-press → Delete.
To stop all cloud transmission, turn the Provider setting to "Off" in yulu's Settings.
You can also reset the device identifier by deleting and reinstalling the app — a new UUID will be generated.
Children's privacy
yulu is rated 4+ but is not directed to children under 13. We do not knowingly collect personal information from children.
Security
All cloud communication uses HTTPS. The Cloudflare Worker stores only a counter (not transcripts) keyed to your device UUID for at most 35 days, after which the key automatically expires.