Added
- You can now edit an imported plan before it lands. "What this will change" used to be a page of counts and a single Import button — if your chatbot got a name wrong, or put a task in the wrong project, or invented one you did not want, the only way out was back to the chat window. Now it is three tabs — Projects, Tags, Recurring tasks — listing every row this plan touches, each one saying plainly what will happen to it: New, Updated, Unchanged, Archived, Made active. Rename or recolour a project or tag right there. A recurring task shows up as the Recurring page's own card — the same card, not a smaller copy of it: its colour washes the row, its project sits there as the proper coloured badge, and clicking anywhere on the row opens it. Inside you get everything the Recurring page gives you — title, colour, project, tags, length, priority, the ⋮ menu, steps with their own menus and drag-to-reorder, the repeat rule, its times of day, and the stretches it runs for. What the preview leaves out it leaves out on purpose: no "Add to today now", no "Duplicate", and no Delete in the ⋮ menu, because nothing here exists in Yappie yet. And Delete on any row leaves that row out of the import — your own copy is untouched. Nothing is written until you press Import, and if an edit breaks a rule the row says so and Import waits rather than throwing you back to the error screen with your work gone.
- A second way out of an empty Yappie, at the end of setup. The last onboarding screen asks for one first task, which is the right ask — it is small, and it gets you focusing inside a minute. But if you already know your whole week, being asked to type it in one row at a time is the moment you close the app. So there is a second button there now: Plan it with my chatbot. It finishes setup and takes you straight to Settings → Study plan & data → Prompts, on the prompt that builds the lot from a conversation you have probably already had. It sits on its own line above the primary, so a small window never runs it under the page dots.
- Stories. When Yappie has something to tell you, it can now say it across a few quiet screens instead of one wall of text — one idea at a time, moving on by itself. Click the right side to skip ahead, the left to go back, press and hold anywhere to stop the clock — or use the pause button in the top corner if you would rather set it down and read at your own speed — and use the dots below to jump straight to a screen. A story fills the whole window, artwork and all, and anything Yappie was about to celebrate waits politely until you have closed it, rather than bursting in over the screen you are reading. Everything you have been shown is kept in Settings → Stories with the date and a “Play again” button, so nothing is gone for good the moment you close it. When there is one to see, Yappie says so in a bar at the top with Ignore and View, rather than taking over your screen — and if a screen is about something you can go and use, it offers a button that takes you straight there. There are six screens in there today, on what changed in this version, two of them showing the thing itself. The welcome-back one follows.
- The plan feature speaks all 24 languages again. The which-chatbot note and the two-turns rule in the chatbot prompt are translated everywhere. The prompt itself also had a stale sentence in every language but English — it still told the chatbot to ask its questions first, which is the wording our model testing found ambiguous enough that two chatbots in twelve answered with an empty file. Every language now says it the way English does. (requested by @Mrgr4vity)
- A word before you copy the plan prompt. Copying either chatbot prompt now shows a short note first: if you have a paid chatbot, use that one. We tested the prompt across several models, and the stronger ones followed it closely while the free and smaller ones skip parts of it more often. It works either way, you are just less likely to need a second go. Tick “don’t show this again” and it stays gone on this computer. (requested by @Mrgr4vity)
- Bring your plan in from your chatbot. A new Settings tab, "Your plan". Ask ChatGPT, Claude, Gemini or whatever you use to write your projects, your tags and the things you do every week as one Yappie plan, then bring it back here. If it showed the plan in the chat, copy the block and paste it straight into the box — Yappie takes the code fences and whatever the chatbot wrote around them off for you, so you never have to make a file at all. If it gave you a file, open that instead. Either way Yappie reads it on your own computer — nothing is uploaded — and shows you exactly what it would change before anything happens: how many projects, tags and recurring tasks are new, updated or archived, and anything worth knowing first. You press Import, or you don't. Nothing is ever deleted: an import only adds, updates or archives, and anything you already have that the plan does not mention is left exactly as it was. Your new recurring tasks are waiting on the Tomorrow tab straight away.
If the file has problems, Yappie lists every one of them in plain English — "funday is not a day", "that name is 44 characters and the limit is 40" — and nothing at all is written. There is a Copy report button: paste that back to the chatbot that wrote the file and it can fix the whole lot in one go.
- The words to say to your chatbot are in the app now. Settings → Your plan is two tabs — Import and export first, Prompts second — and the Prompts tab holds the prompt itself, ready to copy. You say which one you are after, and it shows you that one: one for setting Yappie up from nothing, which asks you a short batch of multiple-choice questions and writes the file from your answers; and one for revising the plan you have just exported, which reads it first and gives it back changed. Both tell your chatbot the things it cannot guess — that a plan holds only what repeats, that your time off is yours to declare in the app and not something to plan around, that it must never invent projects you have not mentioned, and, in the revision one, that leaving something out of the file changes nothing at all: the only way to retire something is to say so. They also ask what each of your projects is actually made of, in the same breath as everything else — a chatbot guesses at two or three kinds of work and you correct it — because a PhD is reading, analysis and writing, not one block called "PhD". And a task can now be longer than a sitting: Yappie stops one sitting at 90 minutes, but a task made of steps shows the steps added up, so a three-hour morning arrives as a three-hour morning instead of being quietly trimmed to fit. You can read the whole prompt before you send it. Paste it into ChatGPT, Claude, Gemini, Copilot, Notion AI or whatever you already use — Yappie has no connection to any of them, and nothing is sent from here. Both prompts now name the app and its address, so your chatbot cannot guess at which app it is writing for, and both say where the time goes on a task with steps: Yappie shows the steps added up, so the time belongs on them. Import a file that puts a time on the task as well and the preview now tells you it will be ignored, rather than leaving you with a number on screen that does not match the one in the file.
- Take your plan back out. The same Settings tab now has an Export section: one button saves everything you have set up — your projects, your tags and your recurring tasks, with their schedules, steps and periods — as one small file you can hand straight to your chatbot and ask for a revised plan. The file holds nothing about your focus time, your streaks or your history: only the plan itself, so there is nothing in it you would not want to paste somewhere. Bringing it back in changes nothing at all until you have asked for something different.
- You can send how the last 90 days actually went, if you want to. A chatbot reading your plan can only see what you meant to do, so the best it can do is rearrange it. There is now a tick box on the Export section that adds a short summary of what really happened: minutes focused per day, per project and per tag, and how often each recurring task turned up against how often you finished it. That is what lets an assistant say "this one is not working, make it two days a week" instead of shuffling the same plan around. It is off unless you tick it, it never includes the names of your one-off tasks or any record of individual sessions, and the box says plainly that it travels with the file to whichever chatbot you paste it into. Bringing the file back in leaves your history alone — Yappie only ever writes that from what you actually do — and says so in the preview.
- Recurring tasks can have a start and an end now. They used to repeat for good, which is right for watering the plants and wrong for anything with a term, a season or a project behind it. Open a recurring task and you can give it periods — a class that runs until December, a routine that comes back every spring. Outside its periods it simply goes quiet; it keeps its place in the list and everything it has already done, so you extend it rather than build it again. Add none and it repeats always, exactly as before. (requested by @Mrgr4vity)
- You can redeem a code now. Settings → Account has a "Redeem a code" box. If a creator hands you a code, or we do, type it in and it adds Lite or Super months to your account. Case, dashes and spaces do not matter, and the codes never use characters you could mix up (no O next to a zero). Yappie tells you exactly what you got: "You have Super until 1 July 2026". If you redeem a Lite code while Super is running, the Lite months wait their turn and start when Super ends, and it says so rather than quietly overlapping them. If you are on a paid plan the code is refused and left unused, so you can redeem it when your subscription ends. Your plan badge updates straight away, on every window you have open.
- A study group has an invite link now. Open your group, go to Settings, and copy the link (there is a "Copy link" button in the header too). Paste it in a Twitch panel, a Discord channel or a message: whoever opens it sees a preview of the group and can join with one press, even before they have a Yappie account. The link carries your group's join code, so "Regenerate" makes the old link and the old code stop working at once, and it asks first. You can also let a link expire after a number of days, or cap how many people may join through it. On the groups page, "Join with a link or code" takes a pasted link as happily as a bare code. When someone joins with your link, you get a notification, which you can turn off per group in the bell menu. A resting owner is never pinged.
- An invite link opens Yappie itself now. Someone sends you a group link; you click it and the app comes forward with the invitation already in hand, instead of leaving you on a web page with a code to copy. It waits in Notifications with the group's name on it — "You were invited to the study group Night Crew" — and the bell carries a badge until you have answered, so it keeps until you are between sessions rather than interrupting one. Accept or Decline right there.
It answers the awkward cases too, before you press anything rather than after. Already in that group? It says so and offers to open it. Group full, link expired, or you are in as many groups as your plan allows? It tells you which, instead of letting you press Accept and meet an error. And if the join does not go through — the last seat taken while you were reading, a moment of bad connection — the invitation stays put so you can try again.
No account yet? The app leads with the invitation instead of a general pitch about what an account is for, and the invite is still waiting for you once you have made one.
- Minimalist mode is yours to shape now. It used to be one switch that decided for you. There is a Minimalist section in Settings, and it lists what minimalist mode can put away: Yappie's name and level, today's focus-and-tasks pill, the Focus/Today/Tomorrow tabs, the Log-a-break bar, the little red notification dot, and — separately — which celebrations and which people are still allowed to interrupt you. Tick what you want to keep. Out of the box it keeps the tabs and Log a break and tidies the rest away.
Nothing you switch off is lost. A level-up, a finished constellation or an achievement that arrives while you are in minimalist mode waits its turn and plays as soon as you tick it back on or leave the mode, and everything is in your notifications either way. Co-focus requests are the one exception, and deliberately: they expire after a few minutes, so a saved-up one would only send you to a session your friend gave up on.
There is also a Show motions switch for everything that drifts, falls or floats behind Yappie — weather effects, the slow drift of the picture itself, and the pieces you have unlocked for your sky. Off by default, and it takes them away entirely rather than holding them still, which is what makes it different from “Freeze background motion” in Backgrounds. Your background picture stays either way, and the two settings work independently.
The same list covers the other things that arrive on their own and take a strip of the screen: Yappie’s daily look back at how the day went, the “a new version is ready” bar, and the occasional question about how Yappie is going for you. The first two stay on by default — they are one line, not a party — and the third is off. The banner that says your account is scheduled for deletion is not on the list and never will be.
Your choices follow your account to your other computers. They do not follow you to the phone or the website: those have different screens, so they keep their own. (requested by @Mrgr4vity)
- Yappie talks in the pop-out now. Every so often, while you're idle, Yappie digs out one of his keepsakes and holds it up — and he has always had something to say about it, but in the little pop-out window there was nowhere to put the words, so they were thrown away. He says them now, in a small bubble that rests on his head. It has no buttons, because there is nothing to answer, which is what makes it small enough to fit up there. (requested by @Mrgr4vity)
Changed
- Deleting a project or a tag in the import preview now takes it out of the incoming recurring tasks too. Before, that only happened for a project or tag the plan was going to create: if you deleted the row for one you already had, the tasks coming in with the plan still went into it, even though you had just taken it out of the import. Now any row you delete is out of the import entirely — the recurring tasks in the plan that pointed at that project come in under Default instead, and say so on the card before you press Import, and a deleted tag is simply not put on them. Your own project and tag are untouched, exactly as before: they keep their name, their colour and every task of their own that this plan does not carry. The deleted row now tells you the cost as well — "1 recurring task in this plan goes to Default instead". (requested by @Mrgr4vity)
- Recurring tasks: you can now open a card from the keyboard. The little arrow that expands a recurring task is a real button, so Tab reaches it and Enter or Space opens and closes the card. Clicking anywhere along the row still works exactly as before.
- More room to edit in the import preview. The tally at the top of "What this will change" — Projects / Tags / Recurring tasks, so many new, so many updated — is gone. Every number it held is still on the screen: each tab carries its own count, and each row says what will happen to it. What it was costing was the height a recurring task's editor needs when you open one. (requested by @Mrgr4vity)
- "Nothing is deleted" is no longer the quietest line in the import screen. Before an import Yappie tells you that nothing is deleted, only added, updated or archived, and that anything the plan does not mention is left exactly as it is. That sentence was set smaller and fainter than the counts above it, so the one thing that should settle you before you press Import was the hardest part of the screen to read. It is now the same size and brightness as the counts. The same fix went to the line that tells you to copy the error report back to your chatbot.
- The plan importer says "you", not "the user". When a plan file tries to bring time off with it, the message explaining why that cannot work described you in the third person. It now speaks to you like every other line in the feature, in all 24 languages.
- The plan screens read a little cleaner. "Nothing is deleted" and the rest of the plan feature's notes, warnings and error hints used to hang their second half off a long dash. They now say it in plain sentences, so the import preview reads "Nothing is deleted: an import only adds, updates or archives" instead of stopping mid-thought. The chatbot prompt got the same pass. What an import does has not changed at all, only how the sentences are put together, and all 24 languages were repunctuated the way each one actually writes.
Fixed
- The welcome tour waits for the screen it is talking about. The first-run coachmarks point at the Focus tab and the timer, but they used to appear the moment setup finished no matter what was on screen — so ending setup with "Plan it with my chatbot", which opens Settings, put a bubble about the timer on top of a page with no timer on it, and its click-catcher swallowed every click at the plan prompts underneath. The tour now holds until nothing is covering the panel, then runs where it makes sense. Nothing is lost either way: close the page and it plays, or quit and it plays next time.
- A task's ⋮ menu no longer blinks under your mouse. Hovering a row like "Rename" could make its highlight flicker on and off — most noticeably in the import preview, where the menu sits over a list that keeps re-measuring itself. The menu was rebuilding all of its rows from scratch every time it re-checked its position against its button, which threw away the row your pointer was on (and any keyboard focus in the menu, and any half-finished fade) and put a brand-new one in its place. It now keeps its rows and just moves, and it lands on whole pixels, so the text is a touch crisper too. (reported by @Mrgr4vity)
- Importing a plan no longer loses your recurring tasks' colours. Exporting your plan and importing it on another machine — or back into a fresh Yappie — used to bring back every recurring task with its colour stripped, because the plan file had nowhere to write one. It does now: colours make the round trip, and you can set one on any recurring task straight from the import preview.
- A last-second problem no longer throws away everything you edited in the import preview. Yappie re-checks a plan against your library one final time as you press Import, in case something changed on another device while the preview sat open. If that check found anything, the whole preview vanished and the error screen took its place — with every correction you had just made gone with it. Now the preview stays exactly where it is and says what is wrong on the rows it is wrong about, so you can fix it and press Import again. The same is true of Check again.
- The import preview no longer thinks you have edited it before you have touched it. A plan that archives a project archives that project's recurring tasks too — Yappie's own rule, not the file's — and the preview was counting that as an edit of yours. Closing one asked whether to throw away changes you had never made.
- Closing the import preview with a right-click could lock the app. Right-click is Back everywhere in Yappie. Doing it in the import preview with unsaved edits asked whether to throw them away — but the preview had already begun closing behind the question, so choosing "Keep editing" left the window dimmed with nothing on it and nothing to click.
- The import preview shows a recurring task's project and repeat rule again. Both were hidden at every window size the app can actually be opened at, so a row said only its title. They are back, and shortened to fit rather than dropped.
- The import preview no longer shows the wrong project for a recurring task. A task whose project the plan did not happen to mention was drawn as if it lived in Default, its tags were drawn as none, and there was no way to put the real one back — and saving wrote that down. The picker now knows about everything you have, not only what is in the file.
- "N things need a fix" now takes you to the thing. It was a sentence with no way to act on it: three tabs, up to two hundred rows each, and no hint which one. It comes with a Show me that opens the row.
- A paused story now really is paused. Holding the mouse or pressing Space froze the words and the pet but left the background weather drifting along behind them, which made a paused story look like a broken one. Everything stops together now, and starts again where it left off.
- Stories are readable on their own artwork. The screens used to wear the same white text and heavy dark halo the app uses over a photograph, whatever they were painted on. The back arrow, the progress bars, the pause button and the dots were all half-there on a dark screen, and every headline sat in a grey cloud it did not need. A screen now decides what colour its own contents should be.
- Two translation gaps the i18n audit had been quietly holding. The wavy mouth in the pet editor said "Wavy" in all 24 languages, because that one label had never been translated. And the plan-import messages counted things ungrammatically in Czech, Polish and Romanian — Romanian worst of all, where "201 proiecte" should read "201 de proiecte". Both fixed; the audit now runs clean.
- Time off, Recent weeks: a day you were on leave is readable again on the light themes. In the "This week" and "Last week" rows a day that falls inside a one-off leave is drawn on a pale blue tile. On Yappie Light, Latte, GitHub and Solarized its label was painted in a pale blue too, so the weekday and the date effectively vanished into the tile. It now uses the same dark blue the rest of the app's rest markers use on a light background.
- Four more faded labels that had gone unreadable on the light themes. The same mistake as the one above turned up in four more places once we went looking: the "Resting" chip on the Focus screen during a one-off leave, the name error and the "Saved" flash in the constellation art panel, and the rest-day note on the Focus with a stranger card. All four now read as darkly as the labels beside them. Nothing changes on the dark themes.
- Charts, Activity composition: Focus and Rest are two different colours again. On the two Yappie themes both slices came out of the same violet family, so the donut's largest two pieces looked like one block and the split the card exists to show was impossible to see. Rest is now teal, as far from Focus as Physical and Social already are from both.
- "Invite a friend" now tells you the real amount of focus we are waiting on. A pending invite in Settings → Account shows a small amber label for whatever is still missing, and the focus one always read "Waiting on 60 min focus" even when we had set the minimum to something else. It reads the live number now, so the label says what actually has to happen before you both get your token. The label is translated in all 24 languages, and it carries the live number in each of them.
- When we cannot redeem your tokens, we now say why. Redeeming tokens for Lite or Super months can be turned down for four different reasons, and only one of them is about your balance: the other three are "you already have this", through a paid plan, through your family's plan, or through a plan we gave you. Every one of them used to come out as "Not enough tokens." — so if you were on your family's Super, Yappie told you that you were short of tokens you had not touched. You get the real reason now, in your own language, and it ends where it should: your tokens are still there, and you can spend them when the plan you already have runs out.
- A group's invite-link settings can go back to "use the default". "Link expires" and "Max joins" both start out following whatever we have set as the default, and they now say so, with a first option that names the number it currently comes out at. Before this, saving anything at all on a group's General tab — even just renaming it — quietly turned that default into a fixed choice for your group, and there was no way to hand it back. Zero still means what it says: never expires, and no limit on joins.
- Your sky no longer fails to load right after Yappie syncs. If a sync finished at the exact moment the Constellation page was fetching the day's secret shape, the page could stop updating — today's sky stayed blank or stale until you reopened it. The sync was replacing the gallery while the page still had hold of today, so today went missing underneath it. Both halves now agree, and a day's freshly fetched shape is kept rather than thrown away. (reported by @Mrgr4vity)
- Signing in with a texted code no longer traps you when you're on too many devices. If you signed in with a phone code while already using Yappie on your plan's maximum number of devices, Yappie showed you the list of devices to sign one out of — and then refused, saying the code was wrong or had expired, even though you had just typed it correctly. Checking a texted code uses it up, so by the time that list appeared there was nothing left to send back, and the only way forward was to wait for the quota and ask for a new text. Picking a device now finishes the sign-in properly. Email codes were affected by the same thing and are fixed too.
- Switching accounts no longer leaves the second account with nothing live. If you signed out and signed straight back in as someone else without closing Yappie, the new account kept listening on the old one's line: co-focus invites, friend requests, cheers, group rooms opening and the "your plan changed" update all stopped arriving, and the only way back was to quit and reopen the app. It looked like everything was connected, which is why it was easy to miss. Signing out now drops that connection properly and the next sign-in opens a fresh one.
- A group you join now goes live straight away. Groups only got their live updates if you were already a member when Yappie started, so a group you created, joined with a code or accepted an invite to during the same session stayed quiet — a room opening or ending in it did not reach you until you restarted the app. New groups are picked up as you join them now, and one you leave stops sending.
- The "yesterday's tasks moved to History" note is readable over a background again. Its tinted panel was nearly see-through, so against a busy scene the note sat straight on the artwork and was hard to read. It now gets a solid backing whenever a background scene is showing, and is unchanged on the plain themes.
- Yappie opens from the Start menu and the Microsoft Store again on machines that also run a development copy. A build run from source registered itself under the installed app's identity, so Windows could hand "open Yappie" to the development copy instead — which opened an empty Electron window. Development builds now keep their own identity and no longer stand in for an installed Yappie.