What we collect
We never collect your journal entries or your chats. We only count how the app is used and how well it runs, so we can make it better.
Only if you choose to share usage counts and crash reports. You can turn it off anytime in Settings.
What we collect
Which features you use, and how often
Counts like “saved an entry” or “opened a chat”, and settings like which AI model you picked.
How long you use the app, and how well it runs
Rounded times, how fast things load, whether sync works, and crash reports.
Your app version and device type, with a random ID
Phone or computer, the app and system versions, your time zone, and when things happened.
What we never collect
Your journal entries
Not a word you write, not even a title or a tag, and nothing about what's in them.
Your chats with Ember
Not your messages, and not Ember's replies.
Your voice recordings
Not the audio, and not what you said.
Your name, email or where you are
You're a random ID made on your device. Your IP address is never stored, and no location is worked out from it.
Never your content
Nothing you write or say, and none of your chats, titles, names or tags. Only counts, rough sizes and timings.
Not your name
Everything is tied to a random ID made on your device. It isn't your name, email, or your Apple or device ID.
Your IP address isn't stored
Your IP address is read for a moment to block abuse, then thrown away. It is never stored, and no location is worked out from it.
Kept for 25 months
Individual events are deleted after 25 months. After that we keep only totals that aren't tied to anyone.
You can delete it
“Delete my usage data” in Settings removes everything shared from all your devices. Deleted data can stay in our database's automatic backups for up to 30 days, then it's gone.
One company stores it
The data is stored with Cloudflare, which runs our servers. No one else receives it.
Off means off
Turning sharing off in Settings stops it on all your devices, and throws away anything not yet sent.
See every detail
Every event the apps can send, and every value it carries. This is built from the same list the apps and our server check every event against, so nothing else can be sent.
Also never sent
What you search for
Searches aren't reported at all.
Your contacts, photos or files
Ember doesn't look at them for this.
Advertising or device IDs
No advertising ID and no Apple or Google device ID. The IDs are random ones Ember makes.
Your AI key or invite code
Only whether AI comes from an invite, your own key, or none.
Sent with every batch
The app sends events in batches. Each batch also carries:
- A random ID for the batch, so the same batch is never counted twice
- When the batch was put together
- Which version of this list the app follows
- A counter that goes up each time you delete your usage data or start fresh, so older data can't mix with newer
- A random ID for this install of the app (a new one after a delete)
- The random ID for you, shared by your own devices
- A scrambled check code, so only your own devices can later delete or combine what was shared
- Whether it's the phone or the computer app
- The app's version
- The main version number of your operating system (like 26)
- Whether it's a released build or a test build
- Whether sync is turned on
- Your time zone's offset in hours, so a day is counted as your day
Sent with every event
Each event below also carries:
- A random ID for the event, so it is never counted twice
- Which of the things on this page it is
- When it happened
- Which day it counts toward (Ember's day turns at 4 AM by default, not midnight)
- A random ID for the visit it happened in
Opening and setting up the app
A visit ended
When you leave the app for a while.
- How long the app was open
- Rounded into a range: <1m, 1–5m, 5–15m, 15–30m, 30–60m, 1–2h, 2–4h, 4h+.
- How many things you did
- Saving an entry or sending a chat message counts as one. Rounded into a range: 0, 1, 2–5, 6–20, 20+.
- How it ended
- The app was left for 30 minutes, or it had closed unexpectedly.
The app opened
Each time the app starts.
- How long it took to start
- Rounded, never exact.
A setup screen was shown
Only if you chose to share on the last setup screen. Until then these are kept in memory and thrown away if you turn sharing off.
- Which screen
- Welcome, invite code, AI permission, this sharing choice, or the first-run screen.
Setup finished
Once, when you finish setting up with sharing on.
- Your sharing choice
- Always “on”: with sharing off, nothing is sent.
Your settings
When the app starts and when one of these settings changes.
- The chat model you picked
- From Ember's own list of models; any other model is sent as “other”.
- The model that writes weekly letters
- From Ember's own list of models; any other model is sent as “other”.
- The model that writes daily cards
- From Ember's own list of models; any other model is sent as “other”.
- How hard the cards model is asked to think
- One of Ember's fixed levels, from none to high.
- How hard the letters model is asked to think
- One of Ember's fixed levels, from none to high.
- Which speech-to-text engine is set up
- Apple's on-device engines, the local Whisper engine, or OpenAI.
- Which speech-to-text model is set up
- From Ember's own list of models; any other model is sent as “other”.
- How AI is paid for
- An invite's allowance, your own key, or no key.
Writing, speaking and reading
An entry was saved
Each time an entry is saved.
- How it was made
- Typed, spoken, an answer to a daily card, or imported.
- About how long it is
- Rounded into a range: 0, 1–49, 50–199, 200+.
A recording ended
Each time you stop recording.
- Where you recorded
- The main record screen, a daily card, a draft, or a meeting.
- What happened to it
- Saved, nothing was heard, it failed, or you discarded it.
- About how long it was
- Rounded into a range: <10s, 10–60s, 1–5m, 5–20m, 20m+.
Speech was turned into text
Each time a recording is transcribed.
- Which engine did it
- Apple's on-device engines, the local Whisper engine, OpenAI, or another.
- Which model did it
- From Ember's own list of models; any other model is sent as “other”.
- About how long the audio was
- Rounded into a range: <10s, 10–60s, 1–5m, 5–20m, 20m+.
- How long it took
- Rounded, never exact.
- How it went
- Worked, heard nothing, or failed.
The daily cards were closed
Each time you close the daily cards.
- How many cards you saw
- Rounded into a range: 0, 1, 2–5, 6–20, 20+.
- How many you answered
- Rounded into a range: 0, 1, 2–5, 6–20, 20+.
- How many you set aside
- Rounded into a range: 0, 1, 2–5, 6–20, 20+.
A weekly letter was opened
Each time you open one. Nothing about the letter is sent.
Chat and AI
A chat was opened
Each time you open a chat.
- Where you opened it from
- The flame button, a daily card, a day, or an entry.
A chat reply
Each time you send a message and Ember answers (or can't).
- How it went
- Answered, failed, stopped by you, no AI key, or out of AI credits.
- Which model answered
- From Ember's own list of models; any other model is sent as “other”.
- How long until the reply started
- Only when a reply started. Rounded, never exact.
- How long the whole reply took
- Only when a reply started. Rounded, never exact.
- About how long the reply was
- Counted in AI tokens (pieces of words). Rounded into a range: 0, 1–99, 100–499, 500–1999, 2000–7999, 8000+.
Ember wrote something in the background
Each time a daily summary, daily cards or a weekly letter is written.
- What was written
- A summary, daily cards, or a weekly letter.
- Which model wrote it
- From Ember's own list of models; any other model is sent as “other”.
- How long it took
- Rounded, never exact.
- How it went
- Written, failed, skipped, or out of AI credits.
Invites and syncing between devices
An invite code was used
Each time you enter an invite code. The code itself is never sent.
- What happened
- Accepted, still setting up, already had AI, not a real code, already used, or an error.
Linking a device ended
Each time you finish (or give up on) linking a phone and a computer.
- Whether this device showed the code or scanned it
- How it ended
- Linked, failed, or stopped.
- Why it failed, if it did
- Took too long, the codes didn't match, a network problem, or another reason.
Sync was turned on
Once per device.
- Whether this was the first device or one joining it
Entries arrived from another device
After a sync brings in entries written on your other devices.
- Which kind of device they came from
- Phone or computer.
- About how many
- Rounded into a range: 0, 1, 2–5, 6–20, 20+.
- Whether this was a device's first full download
- Yes or no.
Sync had a problem
At most once per kind of problem per visit.
- Which part of sync
- Preparing, uploading files, uploading changes, downloading, or messages.
- What kind of problem
- Network, storage full, sign-in, an app update needed, the server, or another.
Sync started working again
After a problem clears.
- How long it was broken
- Rounded, never exact.
How long a sync took
The first sync of each visit, and every sync that fails.
- How long it took
- Rounded, never exact.
- Whether it worked
- Yes or no.
Crashes and errors
The app crashed
The next time the app opens after a crash.
- Where it crashed
- The app's own code.
- The kind of crash
- The system's name for it, from a fixed list.
- A fingerprint of the crash
- So the same crash on many devices counts as one bug.
- Where in Ember's code it happened
- Positions in Ember's own program code only, never anything else on your device.
- Which build of the app
- Which exact copy of the app's program
- Which app version it happened in
- So a crash is counted against the version that had it, even if you updated since.
- Whether you were using the app at the time
- Yes or no.
An error was caught
When Ember's code hits an error it didn't expect.
- Which part of the app
- The core or the screens.
- The kind of error
- The programming error's type, from a fixed list. Never its message.
- A fingerprint of the error
- So the same error on many devices counts as one bug.
- Where in Ember's code it happened
- Positions in Ember's own program code only.
- Which build of the app
- Which exact copy of the app's program
- Which app version it happened in
- So a crash is counted against the version that had it, even if you updated since.
- Whether you were using the app at the time
- Yes or no.
You choose whether to share when you set up Ember, and you can change it anytime in Settings. The choice applies to all your devices.