Janitor AI Chat Memory: How It Works, What It Costs, and What Changed in August (2026)
Janitor AI’s chat memory is a note that the bot reads before every reply. It is paid for out of the same budget as the conversation, so every line you add to it pushes a line of actual chat out of what the bot can see.
That one trade explains nearly everything people search for about it. It is why a long memory can make a bot forget more, not less. It is why Janitor’s own help pages keep saying “shorter”. And it is the background to the week in August 2026 when a test of a new memory system escaped to every user, and bots all over the site suddenly forgot things they had known the day before.
This guide covers what chat memory is, how much room it really has on the free model and on janitor+, what changed in August and what the new toggle does, how to write a memory that is worth its cost, and what to check when memory seems to do nothing at all.
If you are looking for the other way to give a bot long-term knowledge, the keyword-triggered kind, that is a different tool with a different cost, and it is covered in Janitor AI lorebooks. If the chat is failing outright rather than forgetting, start with Janitor AI not working.
What Chat Memory Actually Is
Chat memory is a text box attached to one chat. Whatever you put in it is added to the prompt on every turn, for as long as that chat exists. It does not belong to the character, so another person chatting with the same bot never sees yours, and a new chat with the same bot starts with an empty one. If you branch a chat, Janitor copies the memory into the branch. Its changelog says so directly: branches copy your memory over “like they always have”.
Janitor’s help centre sorts everything in the prompt into two kinds of text, and this split is the whole key to using memory well:
- Permanent tokens are sent with every message, however long the chat gets. The help centre lists them as the Advanced Prompt, Chat Memory, the bot’s personality and its scenario. The character creation guide adds your persona to the same list.
- Temporary tokens are the messages themselves. They are sent while there is room, and the oldest ones are dropped as new ones arrive.
Chat memory is permanent. That is its whole value: the bot cannot “scroll past” it. It is also its whole cost, because permanent text is never free. The help centre’s own image for it is a goldfish with a tiny notepad — useful exactly because it is small.
There are two ways to fill the box. You can write it by hand, or you can have Janitor generate a summary of the chat so far and put that in the box. Those two routes are what the August incident was about, so it is worth knowing both exist before we get there.
How Much Room There Really Is
Janitor publishes the numbers you need for this, just never in one place. Put together, they make the trade easy to see.
- The free tier has a “context limit of around 9k tokens”, according to Janitor’s subscription FAQ. The help centre’s token guide says the same: the free model’s budget “often holds between 8,000 to 9,000 tokens”.
- janitor+ gives “5x more context for better memory”. Janitor does not print the resulting figure. Five times 9,000 is about 45,000 tokens, and that is our arithmetic, not their number.
- Janitor’s own rule of thumb for converting is 1,000 tokens to roughly 750 words.
- Its guidance on permanent text: most well-made bots work best under 1,500 permanent tokens, and past 2,000 “you’re already skating on thin ice”. The character creation guide is a little looser and says to stay under 2,500.
Those budgets are shared. The bot’s personality, its scenario, your persona and your chat memory all come out of the same 9,000 tokens before a single message of conversation is counted. So here is what is left for the actual chat, using Janitor’s own conversion. We count an exchange as one 50-word message from you and one 250-word reply, which is typical for roleplay.
| Setup | Permanent text | Left for the conversation (free, ~9k) | Roughly how many exchanges | Same setup on janitor+ (~45k) |
|---|---|---|---|---|
| Lean bot (1,000), short persona (200), short memory (300) | 1,500 tokens | 7,500 tokens ≈ 5,600 words | about 18 | about 110 |
| Janitor’s ceiling: bot 1,500, persona 300, memory 700 | 2,500 tokens | 6,500 tokens ≈ 4,900 words | about 16 | about 105 |
| Heavy bot (2,500), long persona (500), long memory (1,500) | 4,500 tokens | 4,500 tokens ≈ 3,400 words | about 11 | about 100 |
Our arithmetic from Janitor’s published figures. The real numbers are a little lower, because the Advanced Prompt, any lorebook entries that fire and the reply being written all need room too.
Two things stand out.
On the free model, the whole conversation the bot can see is short. Even with a lean setup it is under twenty exchanges. Anything older than that is gone unless something permanent carries it. This is why chat memory exists, and why people who never use it find that their bot forgets what happened ten minutes ago.
Every token in memory is paid for with conversation. 1,000 tokens of memory costs about 750 words of chat, which is two or three full exchanges of the most recent scene. That is a good trade when the memory holds the important things from a hundred messages ago. It is a bad trade when the memory repeats what is already in the scene, or describes things the bot never needs. A memory that grows to 1,500 tokens on the free model has taken a sixth of the entire budget on its own.
On janitor+ the same memory costs the same number of tokens, but out of a budget five times bigger, so it hurts much less. That is the honest meaning of “5x more context for better memory”: the box is not smarter, there is simply more room around it.
⚠️ A character’s token count does not include your memory. The count shown on a character covers only the character’s own fields. Your chat memory and your persona come on top of that number, in your chat alone, so a bot that looks light can still leave you very little room.
What Happened to Chat Memory in August 2026
If your bot started forgetting things in mid-August 2026, or your memory box emptied itself, it was very likely not something you did. Janitor has explained it in two changelog posts, and they are unusually open about it.
19 August 2026 — “chat memory is back to normal”. Janitor says that the week before, it “started testing a chat memory change with a small group”, and that the test “leaked out of its group and ended up affecting everyone”. The post lists what went wrong:
- Memory was replacing your old messages. The test was “about saving context: once you had a memory saved, the messages it covered stopped being sent with the prompt.” For anyone with a saved memory, in Janitor’s words, bots “suddenly had less of the actual conversation to work with and replies got vaguer or forgot details.”
- A failed summary could wipe the memory you already had. If generating a summary errored, was cancelled or produced nothing, the box could end up blank or half-filled — “one save away from replacing good memory with nothing.”
- Reasoning text could end up in your memory. With some models, the model’s thinking was streamed straight into the memory box.
- A handwritten memory had no safe way to update. If you had typed your own memory, the “summarize since last update” option was hidden, so the only button left was the one that replaced everything.
- Summaries were being generated on their own. Automatic summarizing was part of the same test.
All five were fixed that day. Janitor also changed how failures are handled: your old memory now stays on screen until the new text actually arrives, it is restored if the run fails, and a blank memory can no longer be saved at all.
20 August 2026 — “memory restored on ~15,000 chats”. Reports kept coming in, and Janitor found one more piece of the test still running: “if you deleted a message that your memory covered, it cleared the memory too.” It hit about 15,000 chats between 18 August and the morning of the 20th. The better news is that the bug had been hiding memories rather than destroying them, so Janitor restored them — and corrected its own post from the day before, which had said lost memory could not be recovered. The only ones it could not bring back were memories made after 18 August that had since been overwritten.
The same post clears up two things people still repeat:
- Branching never ate memories. Branches copy the memory over as they always did. People were branching chats that the delete bug had already emptied, so the branch looked broken too.
- Very long memories could fail to summarize with a “context exceeds the limit” error. That was fixed as well.
Janitor added that deleting messages “doesn’t touch your memory anymore, ever, unless you specifically choose to clear it”, and that chats and messages themselves were never touched.
So if you lost memory text in that window, check the chat again: it may have been restored. If it was written after 18 August and then overwritten, it is gone, and Janitor says so.
The “Memory Replaces Old Messages” Toggle
The fix for the incident left one new control in the chat memory panel: memory replaces old messages. People search for it by its exact name, so here is what it does.
- Off — the default, and how memory worked before August. In Janitor’s words, “your memory is added on top of the conversation and nothing is removed.”
- On — the behaviour from the leaked test, now opt-in. Once a memory is saved, the messages it covers are no longer sent with the prompt. The bot gets your summary instead of the real messages.
Automatic summarizing is tied to it. Janitor says auto-summarizing “can only run when you’ve turned on memory replacing old messages, and it has its own off switch next to it.” So if you never turn the toggle on, nothing summarizes behind your back.
Two limits on where it appears. The 20 August post says the toggle was web only until the next app update, so on the app, check whether yours has it yet. And it does not show on proxy chats, “because none of this applies there”. If you use your own model through a proxy, the toggle is not missing — it was never meant for you.
Should you turn it on?
Janitor describes it as “the context-saving behavior, if you want it.” It helps to think about what it can and cannot do for you.
The messages a memory covers are the older part of the chat. On the free model, most of them have already dropped out of the window by the time you write a summary. For those, the toggle changes nothing: they were not being sent anyway. The only messages it removes are the covered ones that were still inside the window. Those are replaced by your summary of them. The space that frees up does not bring back anything older, because everything older is covered too.
So on the behaviour Janitor has described, turning it on does not let the bot see more of your story. It lets the bot read your summary of recent events instead of the events themselves. Janitor’s own account of the test is the result: “replies got vaguer or forgot details.”
That can still be the right choice. If the recent messages repeat what the memory already says, removing the copy gives the bot less duplicated text to trip over. And if you want automatic summaries, this is the only way to get them. But if the complaint is “my bot forgets”, this toggle is not the fix. Leave it off unless you have a reason to want it on.
This is our reading of what Janitor has published, not something Janitor has stated. It does not publish exactly how it trims the prompt, and it could change how the toggle works.
Writing a Chat Memory That Earns Its Space
Janitor’s help centre gives a template for chat memory, and it is a good one. It has six headings:
- Environment — where the scene is now and what it is like. Short phrases: “rain”, “in parking lot”.
- Relationship Dynamic — what is going on between your persona and the bot’s character. Facts that matter, not moods.
- Current Plot Points — what is actively happening. Action verbs, not backstory.
- {{char}} notes — concrete facts about the character that are not personality, like what they are carrying.
- {{user}} notes — stable facts about your persona that are not in your persona text, like what you are wearing.
- Important Past Events — things that already happened and still matter.
Its rules for filling it in are the right ones, and they all follow from the budget:
- Bullet points, short and specific. “Don’t write a novel in here, it’ll just clog the system.”
- One verb tense. Mixing past and present confuses the model’s sense of time.
- Facts, not scenes. “{{user}} was injured in the last fight”, not a paragraph about limping through a door.
- Say what the character is, not what they do. “Protective of {{user}}”, not “always comforts {{user}} when they’re sad”. The second one is a script, and the bot will perform it whether it fits the moment or not.
Here is the same template filled in for a small fantasy campaign. It is about 110 words, which is roughly 150 tokens.
Environment:
- night, rain
- Greyharbour docks, warehouse 3
Relationship Dynamic:
- {{char}} owes {{user}} a life debt; resents it
- trust: low but rising
Current Plot Points:
- searching for the smuggler "Oss"
- city watch hunting {{user}} (false murder charge)
{{char}} notes:
- inventory: lockpicks, 2 silver, stolen harbour map
- wounded left arm, cannot climb
{{user}} notes:
- wearing a watch uniform (disguise)
Important Past Events:
- {{char}} betrayed the Thieves' Guild to save {{user}}
- the harbourmaster is dead; {{user}} was blamed
A few things worth copying from it:
Numbers and names, not feelings. “2 silver” survives; “running low on money” drifts. A name in inverted commas is easy for the bot to reuse exactly.
Anything that only moves one way goes in memory. Deaths, debts, betrayals, wounds, things that were lost. The bot will happily bring the dead back to life if nothing says they died. These are the facts that do the most damage when they fall out of the window.
Delete as well as add. When the smugglers are caught, that plot point comes out. A memory that only grows turns into the 1,500-token memory from the table above, and it starts costing you the scene you are in.
If you run a campaign with stats, the memory box is the right home for them, because it is permanent. The Janitor AI RPG guide shows how to keep a small status block that the bot reprints each turn. The memory can hold the slow-moving part — quests, allies, reputation — while the status block tracks the numbers that change every turn.
Getting the Bot to Write the Summary
You do not have to write every memory yourself. Janitor gives you two ways to have the bot do it.
The summarize button in the chat memory panel. It generates a summary of the chat and puts it in the box. There is also a “summarize since last update” option, which adds only what happened since the last summary instead of replacing everything. Since the August fix, that option also shows for handwritten memory, and regenerating over existing text asks you first. Use “since last update” whenever you can. It keeps what you have already checked, and it is much less likely to lose a detail you corrected by hand.
An out-of-character request in the chat. Janitor’s help centre suggests a specific format for stepping outside the story, and it works better than a plain “(OOC: summarize)”:
<system>task: pause chat|roleplay, answer query(outside of roleplay, succinct summary(list of all impactful events in roleplay(for each event listed: +their effects)))</system>
The help centre explains the parts. The <system> tag marks it as an instruction, but on its own it does not stop the roleplay. The part that does that is pause chat|roleplay. The bracketed answer query(...) tells the model exactly what shape of answer you want. You can narrow it — “starting from the tavern fight onward”, or “include relationship changes between {{user}} and {{char}}”.
Whichever way you use, read the summary before you save it. A generated summary is the model’s version of events, written by the same model that is already forgetting things. It will state its mistakes confidently. The cheapest fix you will ever make is correcting one wrong line in a summary before it becomes the permanent version of your story. If you leave it, every later summary is built on it.
For the general method — what to keep, what to cut and how often to do it on any platform — see how to summarize a long AI roleplay campaign.
Chat Memory on a Proxy
Chat memory works on proxy chats too. It is text in the prompt, and every model reads the prompt. But two things are different.
The August toggle and automatic summaries do not apply. Janitor’s post says the toggle does not show on proxy chats “because none of this applies there”. On a proxy, memory is simply added on top of the conversation, which is the safe default anyway.
The budget is set by your model, not by Janitor’s free tier. A proxy model can have a much larger context than 9,000 tokens, and then a long memory costs very little. But the memory still counts. Janitor’s OpenRouter error guide lists Chat Memory among the things that can push a request over a model’s maximum length — the 400 error that begins “This model’s maximum context length is X tokens”. Its suggested fixes include to “trim down memory”. So if that error appears only in long chats with a big memory, the memory is part of the problem. More on proxy setup is in the Janitor AI proxy guide.
When Chat Memory Seems to Do Nothing
Work down this list. Most problems are one of the first three.
| What you see | The likely cause | What to do |
|---|---|---|
| Memory text is there, but the bot ignores it | It is too long, or written as scenes and moods rather than facts | Cut it to bullet-point facts. Janitor’s own checklist: is it phrased clearly, is it buried under fluff? |
| Bot forgets recent events, even with memory | The permanent text is too big, so the conversation window is tiny | Add up bot + persona + memory. On the free model, get it well under 2,500 tokens |
| Replies got vaguer after you saved a memory | ”Memory replaces old messages” is on | Turn the toggle off. That is the default, and it keeps the real messages |
| Memory box is empty | The August 2026 bugs, if it happened between 18 and 20 August | Check again — Janitor restored most of them. Memories written after 18 August and then overwritten could not be recovered |
| Summaries appear that you did not ask for | Auto-summarize is on | It only runs with the replace toggle on, and has its own off switch next to it |
| Memory contains the model’s “thinking” | Reasoning text streamed into the box, before the 19 August fix | Delete it. It was filtered out on web and app from that date |
| Summarize fails with “context exceeds the limit” | A very long memory, before the 20 August fix | Fixed by Janitor. If it still happens, shorten the memory first |
| No toggle on your screen | You are on a proxy chat, or on an app version before the update | Expected. On a proxy the toggle never applies |
| 400 error about maximum context length (proxy) | Memory plus bot plus chat is over your model’s limit | Trim the memory, or use a model with a bigger context |
And the check people forget: is it the memory at all? If the thing the bot got wrong is in the character’s own description, it is a bot problem, and how to make a Janitor AI bot is the place to fix it. If it is world detail that only matters sometimes — a city, a faction, a minor character — it belongs in a lorebook, where it costs nothing until it is mentioned.
Chat Memory, Lorebook or the Bot Itself?
Janitor gives you three places to keep information, and each one has a different cost.
| Put it in… | When it is sent | Who it belongs to | Best for |
|---|---|---|---|
| The bot’s personality and scenario | Every turn, in every chat with that bot | The bot’s creator | Who the character is, always |
| Chat memory | Every turn, in this chat only | You, for this one chat | What has happened in your story |
| A lorebook entry | Only when its keyword comes up | The script’s creator, attachable to many bots | World detail that matters sometimes |
The simple rule: if it is always true of the character, it goes in the bot. If it became true in your story, it goes in chat memory. If it is true of the world but only matters when it is mentioned, it goes in a lorebook. Chat memory is the only one of the three that is yours alone, which is why it is where your campaign’s history belongs.
For how this compares with the same idea on another platform, SillyTavern memory covers its summarize tool and why it reads only the last two messages. For why every one of these systems runs into the same wall, see why LLMs forget.
Checklist
- Chat memory is sent on every turn, and it comes out of the same budget as the conversation.
- Free Janitor has around 9,000 tokens in total. Keep bot + persona + memory well under 2,500 of them.
- 1,000 tokens of memory costs about 750 words of chat — two or three recent exchanges.
- Use Janitor’s six headings. Bullet points, facts, one tense. Delete what is finished.
- Put anything permanent and one-way in memory: deaths, debts, wounds, betrayals.
- Prefer “summarize since last update”, and read every summary before you save it.
- Leave “memory replaces old messages” off unless you want automatic summaries.
- Memory lost between 18 and 20 August 2026? Check again — most were restored.
Frequently Asked Questions
What is chat memory on Janitor AI? Chat memory is a text box attached to one chat. Whatever you put in it is added to the prompt on every turn, for as long as the chat exists, so the bot can never scroll past it. Janitor’s help centre calls this kind of text permanent tokens, alongside the bot’s personality, scenario and Advanced Prompt. It belongs to your chat, not to the character, so other people chatting with the same bot never see it, and a new chat starts with an empty one. Branches of a chat copy the memory over.
How long can Janitor AI chat memory be? Janitor does not publish a hard character limit for the box, but the practical limit is the budget. The free tier has a context limit of around 9,000 tokens, and chat memory shares it with the bot’s personality, scenario and your persona. Janitor’s help centre advises keeping all of that permanent text under about 1,500 to 2,500 tokens. Every 1,000 tokens of memory costs roughly 750 words of conversation, so on the free model a long memory can push most of the recent chat out of what the bot can see.
Why does my Janitor AI bot ignore its chat memory? Usually because the memory is too long or written the wrong way. Janitor’s own advice is bullet points, short and specific, facts rather than scenes, and one verb tense. A memory full of mood descriptions and long paragraphs gets lost. The other common cause is a total setup that is too big: if the bot, your persona and your memory together take most of the 9,000-token budget, the bot has almost no room left for the conversation itself and seems to forget everything.
What does “memory replaces old messages” do on Janitor AI? It is a toggle in the chat memory panel, added on 19 August 2026. When it is off, which is the default, your memory is added on top of the conversation and nothing is removed. When it is on, the messages your memory covers stop being sent with the prompt, and the bot works from your summary instead. Automatic summarizing can only run with it on. Janitor’s own account of the test that introduced it says bots with less of the real conversation gave vaguer replies and forgot details, so leave it off unless you want automatic summaries.
Why did my Janitor AI chat memory disappear? If it happened in mid-August 2026, it was very likely a Janitor bug. A test of a new memory system leaked to all users, and between 18 and 20 August deleting a message that your memory covered also cleared the memory, on about 15,000 chats. Janitor found that the bug was hiding memories rather than destroying them and restored them, so check the chat again. The only ones it could not recover were memories made after 18 August that had since been overwritten.
Does Janitor AI have automatic chat memory summaries? Yes, but only if you turn them on. Janitor says auto-summarizing can only run when the memory replaces old messages toggle is on, and it has its own off switch next to it. With the toggle off, which is the default, nothing is summarized automatically. You can still generate a summary yourself from the chat memory panel, and the summarize since last update option adds only what is new instead of replacing everything.
What should I put in Janitor AI chat memory? Janitor’s help centre suggests six headings: Environment, Relationship Dynamic, Current Plot Points, character notes, user notes and Important Past Events. Fill them with short facts rather than scenes. The most valuable things are the ones that only move one way, such as deaths, debts, wounds and betrayals, because those do the most damage when they fall out of the conversation. Delete plot points when they are finished, so the memory does not keep growing.
Does chat memory work with a proxy on Janitor AI? Yes. Chat memory is text in the prompt, so any model reads it. What does not apply on a proxy is the August 2026 toggle and automatic summarizing, which Janitor says do not show on proxy chats. The memory still counts toward your model’s context limit, and Janitor’s OpenRouter error guide lists chat memory among the things that can cause the error saying you have exceeded the model’s maximum context length.
Does janitor+ improve chat memory? It gives it more room rather than making it smarter. Janitor says janitor+ has five times more context for better memory. The free tier is around 9,000 tokens, so by our arithmetic janitor+ is around 45,000. The chat memory box works the same way on both, but the same memory takes a much smaller share of the bigger budget, so the bot can see far more of the conversation around it.
The August 2026 memory incident, the toggle, auto-summarizing, the restored memories and the proxy exception are quoted from Janitor AI’s own changelog posts of 19 and 20 August 2026. The permanent and temporary token split, the 1,500 and 2,500-token guidance, the memory template, the summary prompt format and the OpenRouter error are from Janitor’s help centre, checked on 23 September 2026, and the free-tier context and janitor+ figures are from its subscription FAQ. The exchange counts and the reading of the toggle are our own arithmetic and inference from those figures, and are marked as such. Janitor does not publish a character limit for the chat memory box, and none is claimed here. Janitor AI is a third-party platform and Arcanum is an independent publication with no affiliation to it or to any model provider named here; all names are used nominatively.