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

  • Collected

    Which features you use, and how often

    Counts like “saved an entry” or “opened a chat”, and settings like which AI model you picked.

  • Collected

    How long you use the app, and how well it runs

    Rounded times, how fast things load, whether sync works, and crash reports.

  • Collected

    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

  • Never collected

    Your journal entries

    Not a word you write, not even a title or a tag, and nothing about what's in them.

  • Never collected

    Your chats with Ember

    Not your messages, and not Ember's replies.

  • Never collected

    Your voice recordings

    Not the audio, and not what you said.

  • Never collected

    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

  • Never collected

    What you search for

    Searches aren't reported at all.

  • Never collected

    Your contacts, photos or files

    Ember doesn't look at them for this.

  • Never collected

    Advertising or device IDs

    No advertising ID and no Apple or Google device ID. The IDs are random ones Ember makes.

  • Never collected

    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

  1. 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.
  2. The app opened

    Each time the app starts.

    How long it took to start
    Rounded, never exact.
  3. 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.
  4. Setup finished

    Once, when you finish setting up with sharing on.

    Your sharing choice
    Always “on”: with sharing off, nothing is sent.
  5. 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

  1. 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+.
  2. 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+.
  3. 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.
  4. 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+.
  5. A weekly letter was opened

    Each time you open one. Nothing about the letter is sent.

Chat and AI

  1. 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.
  2. 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+.
  3. 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

  1. 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.
  2. 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.
  3. Sync was turned on

    Once per device.

    Whether this was the first device or one joining it
  4. 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.
  5. 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.
  6. Sync started working again

    After a problem clears.

    How long it was broken
    Rounded, never exact.
  7. 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

  1. 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.
  2. 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.