Lotti gives you a private logbook and a staff of personal AI assistants to go with it. Record your day the way it actually happens — tasks, tracked time, voice notes, transcriptions, journal entries, habits, and health data — and long-living agents read what you record, keep it summarised, remember the context you would otherwise lose, and propose the next step. Agents suggest, you decide: every proposed change waits for your approval, with one small exception — an initial title or language for an otherwise empty task.
All of it happens on your own devices. No server ever holds your data in readable form: multi-device sync is end-to-end encrypted, and the relay between your verified devices holds only ciphertext — not forever, and nothing depends on it keeping anything. There is no telemetry. On capable hardware the AI models run locally too, so your data never has to leave the machine; on lighter hardware, or to save battery, you route inference — per life category — to a cloud provider you choose. Your logbook is ordinary SQLite on your own disk with attachments in ordinary files beside it, readable without Lotti, so there is nothing to export and nothing to unlock.
Under the hood, sync runs over Matrix using Vodozemac (Rust) for Megolm crypto; the homeserver relays only ciphertext between your own devices, and encryption keys reach only devices you have verified. A new device catches up because your other devices re-send history, not because a server stored it.
Get support and join the Lotti community on Discord via the Contact link.
What it does:
Added: replies you can tap. When the companion offers something, such as breaking a time summary down by task, she can show short replies to tap in place of typing.
Added: time on task cards. When she breaks logged time down by task, each task's card shows its time.
Changed: asking the companion where your time went gets a short summary first. "What did I do in the past 14 days?" is now answered in a few sentences you can listen to: the total, your categories and biggest projects, and your busiest day, instead of every task one by one. She offers to break it down, and when you ask - "show me the Lotti tasks by duration", "what did I do on Tuesday?" - she lists the tasks, in the order you ask for.
Changed: the companion arranges her answer. She can mix sentences, lists of task cards and charts in the order that reads best, for example overdue tasks and tasks due today as two separate lists, each with a line saying which it is.
Changed: the Daily OS day page reads as one page. The date is now the page's title - "Today · Monday" over "June 8" - with the week's seven days beneath it, starting on your region's first day of the week: tap a day to open it, swipe to change week, and on a desktop use the arrows at either end. Tapping the date still opens the calendar, and a long press still returns to today.
Changed: one sentence and one line sum up the day, on every tab. The sentence is the opening of the companion's spoken briefing - how many blocks are planned and what comes next - and it moves on when the next block starts. Under it, a thin line shows how full the day is, coloured by category, with the time planned and what is still free, or by how much the day is over. It replaces the capacity ring; hover a stretch of the line to see its category.
Changed: the agenda is a single list in the order of the day. Each item shows its start time, a category dot, its estimate and, only when there is something to say, the planner's reason and the outcome. Items linked to a task lead with the task's name and end in an arrow that opens it. The item under way is marked "Now" with a teal edge; finished items are struck through, and two or more at the start of the day fold into one row you can open. Numbers and cover pictures are gone from the list. With no plan yet, the list and the footer both offer to start the check-in, and the time you have tracked so far shows beneath.
Changed: the Activity tab uses the same list, grouped into what needs you, the time tracked so far, and what is handled. Each entry leads with its words, and its icon says whether it is waiting, transcribing or failed.
Changed: one name and one colour per task. A task is called by its current name and drawn in its current category's colour everywhere on the day - the briefing, the agenda, "Today so far" and both timeline lanes - even after it is renamed or moved to another category.
Changed: on the Day timeline, the lanes are named Plan and Actual, the buttons say what they do ("Both lanes", "Arrange", "Done"), hours read in your device's 12- or 24-hour clock, and times like "1:00-2:30 PM" write the period once. The plan still ahead stands out over what has passed, a running recording says "Now", the edit pencil is easier to hit, and tapping the planner's spark shows its reason.
Changed: the briefing names its colours. Under the day's line, each category's time is listed (the two largest and "+N more" on a phone), what is still free is set apart on the line, and a play button starts the companion's spoken briefing.
Changed: easier to find your way back: a Today button appears when you are looking at another day, and the quick refinements under the message field appear once you start typing a change.
Changed: one button stands out. "Looks good" and "Wrap up" are now the page's only filled button, the setup action matches the rest of the app, and suggestions ("2 things I noticed", setup reminders) are quiet lines rather than boxes.
Changed: the companion chat has a cleaner header and a side drawer. The header is now one row: the way to your chats, the companion's face and name, a new chat, and close. A small dot on the chats button says something waits in your inbox; how many is shown in the drawer. Your chats, their search, a new chat and the companion's settings - spoken answers, her AI profile and her internals, with what the open chat has cost - now live in a drawer that slides over the conversation on a phone and sits beside it on a wider window. Opening the drawer no longer takes the conversation off the screen, and no longer stops a message you are recording.
Changed: pick a category for a chat right where you type. A chip at the start of the message field shows the chat's category, or "Everything". Pick one and every question you send in that chat is answered from that category only; typing @ still narrows a single question. Each chat in the drawer shows its category's colour, and the drawer lists the categories your chats are in, so you can show only the chats in one.
Changed: the conversation shows only what was said. The per-answer cost line under the companion's replies is gone, the hint under the message field is replaced by the category chip, and your own messages sit in a quieter, neutral bubble.
Changed: the companion's card has a Customize row and remembers whether it is shown. In a conversation, her floating card now shows by default. If you hide it, it stays hidden, even after a restart, until you tap her face in the header again. Its long-press menu has Customize in place of Restyle, which closes the chat and opens the page where you choose her look.
Fixed: image analysis runs on the model you pick, even without a category. On an image in an entry or event with no category, choosing a model in the AI menu used to end in "no profile configured". The analysis now runs on the model you chose.
Fixed: task agents act on what changed again instead of replying with a note. Since their observations were trimmed, an agent could read "most wakes record nothing" as leave to do nothing, and end a wake after a single reply without updating the task or its report. The agent is now told that a reply without a tool call ends its wake, and that a wake with no note still makes every change the task needs.
Fixed: the companion's task lists are cards every time. A list of tasks in her answer sometimes showed as plain links, depending on how she happened to word it. Her lists are now drawn from the tasks her lookup found, so they are always cards.
Fixed: a spoken message in a chat is no longer cut off after two minutes. The recorder behind every chat - the companion's, a task's, a goal's, a person's - stopped itself at 120 seconds and transcribed what it had, so a longer thought arrived in two halves and the second had to be recorded again. It now records until you stop it, as a recording on a task does.
Fixed: the evolution chat no longer shows a card the agent didn't ask for. When the agent asked for a card type that doesn't exist, or left out what a card needs, the chat showed an empty card. Now nothing is drawn, and the agent is told why so it can try again.