A dream journal is the most private thing most people will ever write. Putting an AI anywhere near it deserves a plain explanation, not a line in a policy. This is that explanation: what happens, what it costs you in privacy, what you get for it, and where we think it is going.
The short version
- Without an account, no AI runs and nothing you write leaves your phone. The journal is complete without it.
- With an account and Pro, the AI reads a dream only for the job you gave it. The text of that dream, or the audio of that recording, goes to the model, the result comes back, and that is the end of it.
- It is never used to train anything. Not by us, not by the model’s provider.
- Automatic tagging is the one thing that runs on its own, and it has switches.
- We think the right home for this is on your phone, and we will move it there the moment on-device models can do the work.
What happens, step by step
Two providers do the work, each through a paid API that we use as a processor, the same way a mail app uses a mail server. OpenAI’s models handle everything that is text: tagging, titles, interpretations, and Luna. Google’s Gemini models handle the two jobs that are not text: turning a voice recording into words, and painting a dream’s header image. When you use one of the features, the relevant content is sent to the one that does that job and processed:
| You do | What is sent | To | What comes back |
|---|---|---|---|
| Record a dream by voice | The audio | A verbatim transcript, plus the names of people and places it heard | |
| Save a dream (automatic tagging on) | The dream’s text | OpenAI, and Google for the image | Its emotions, its symbols, links to the people and places it mentions, a title, and a painted header |
| Ask for an interpretation | The dream, and the parts of your journal it draws on | OpenAI | The reading |
| Talk to Luna | Your message, and the dreams it needs to answer | OpenAI | The reply |
Under the API terms we use, neither OpenAI nor Google uses this content to train its models, and neither keeps it to build a profile of you. We do not train anything on your journal either, ever. The privacy policy carries the exact wording.
Nothing runs before you have an account, because there is no server involved without one. And the one part that runs on its own, the tagging after a dream is saved, is three switches in Settings: details, titles, images. Turn them off and the AI does nothing until you ask it to. Interpretations and Luna never run unasked.
The trade-off, stated plainly
Sending a dream to a model is a real cost. A dream can contain the names of people you love, things you would not say out loud, and things you do not yet understand about yourself. For the seconds it is being processed, it is on a computer that is not yours.
What you get for it is a journal that reads back. Not a dictionary look-up, which any website can do, but a second reader who has read your journal: who knows this is the fourth time the house has flooded, that your mother appears when you are about to change jobs, that the dreams you tag with dread cluster on Sunday nights. That reading is only possible because the model can see the entries.
We have tried to make the trade honest rather than invisible. Nothing runs without an account. Nothing runs without Pro, which means you have chosen it. The only automatic step has switches. The journal, the voice recordings, the search, the insights, and the export are all complete without any of it. And if the answer for you is no, then no account is a full answer, not a demo mode.
More than a dream dictionary
Most “AI dream apps” use the model for one thing: to tell you what your dream means. We think that is the least interesting job it can do, and the one most likely to be wrong.
The jobs that matter happen before anyone asks about meaning.
It takes dictation properly. At 3 a.m. you are not going to type. You mumble into the phone with your eyes shut, in fragments, in whatever order the dream comes back. The transcription is instructed to be a stenographer, not an editor: verbatim, in the language you spoke, no invented words for the parts it could not hear. It is given the names of the people and places already in your journal, so Rūta is spelled Rūta and not “Ruta” or “router”. The recording stays either way, because half-asleep mumbling never transcribes perfectly and your own voice pulls a dream back in a way text does not. That is voice journaling.
It does the filing. Write the dream and it links the people and places you mentioned in passing, names the emotions that ran through it, picks out the symbols, and gives the entry a title so the journal is readable at a glance. Six months later the people, places and symbols each have their own history, and none of it was homework.
It reads across the journal. This is where a model earns its keep: not one dream in isolation, but the fortieth dream of the beach, read against the thirty-nine before it. An interpretation grounded in your own entries, and Luna, who can be asked what a person has meant across every dream they were in.
In your language
Dreams happen in whatever language you dream in, and the AI works in it. Speak Lithuanian and the transcript is Lithuanian. Write in Portuguese and the title is Portuguese, capitalized the way Portuguese titles are, never translated. Ask Luna a question in German and the answer comes back in German. A dream written in English that mentions people with Lithuanian names still gets an English title, because the language of the sentences is what counts, not the names in them.
For a lot of people this is the difference between a journal they keep and one they abandon: being able to mumble in your first language at 3 a.m. and read it back in the morning.
Where this is going: models that live on your phone
Everything above is about making a necessary trade honest. The better answer is to remove the trade.
Phones are getting models of their own. Apple ships on-device language models with Apple Intelligence, Google does the same on Android, and every year they can do more without a byte leaving the device. Today they are good at short tasks: summarizing a message, cleaning up a paragraph. Transcribing a slurred recording of a dream in Lithuanian, tagging its symbols, and reading it against a year of entries is still beyond them.
It will not be for long. And when it isn’t, a dream journal is close to the ideal case for a local model: one user, one private corpus, tasks that do not need the whole internet, and a very strong reason for nothing to leave.
We are building toward that on purpose. Lunar Log is already local-first: the journal lives on your phone, the server only holds a synced copy, and the AI is a layer on top rather than the foundation. That means moving the AI on-device does not require rebuilding the app. It requires the models on your phone to become good enough at these specific jobs, and us to route the work to them instead of to a server. The moment the model in your phone, the one behind Siri or its Android equivalent, can transcribe, tag, and read a dream well, Lunar Log will use it, and the AI layer will stop sending anything anywhere.
We expect to be first to do this, because we have been waiting for it.
What you can do today
- Use the app with no account. Nothing leaves your phone, and the journal is complete.
- Use an account for sync and keep the tagging switches off, so the AI only runs when you ask.
- Use Pro and turn off whichever parts you do not want: details, titles, images, each on its own.
- Export at any time, free, and delete the account at any time; deletion removes every copy from our servers.
Whatever you choose, the choice is visible, reversible, and yours.
Lunar Log is a private, local-first dream journal for iOS and Android, with a web version on the way. Capture dreams by voice or text, connect recurring people, places and symbols, and build a searchable history that becomes more useful the longer you keep it. It’s free to journal, forever. Get the app.