Asking Bert
Bert is an assistant that lives in the chat. Open the conversation list and it is the first entry under Direct messages, for everyone, before you have said anything. Ask it how Purple Cat works, or what is on the map you are looking at, and it answers in the chat: one message from Bert that fills in as it works.
The quickest way there: the AI icon at the right end of the footer opens Bert from anywhere. One tap opens the chat if it is closed, switches to Bert and puts the cursor in the box, on the map, on a campaign page, or on a phone. It appears once you have a campaign, which is when Bert does.
Bert runs on your own AI provider key. Without one it tells you so and sends nothing anywhere; see A key below.
What Bert can do
- Explain the app. Ask how do I add a door? or how does fog of war work? and Bert answers from this Help and links the page it used. Tap the link and Help opens there.
- Read your game, as you. Ask which enemy has the lowest HP?, where am I?, list my maps, or what does the Prone condition do? and Bert reads the answer through the same doors you use: your campaigns, maps, tokens (where they are, their properties, their conditions), characters, the conditions and damage types your system defines, the chat, and your Library. It sees exactly what you can see and nothing more. A token the GM has hidden from players never reaches a player's Bert; a map or character you cannot open, Bert cannot read.
- Show you. Say show me and Bert's reply carries a button. Tapping it selects the tokens it named and pans the map to them, opens a map, or opens a character sheet. Only a tap does this; Bert never moves your view on its own, and a button in an old reply does nothing until you tap it.
- Find tokens. Which map has the werewolf? or the tokens Sam made: Bert looks across the campaign's maps.
- Take you there. When an answer sends you to Settings, a help page, Campaigns or the Library, the reply has a button that opens it.
Bert reads the help pages for the version you are running, so what it says matches what you see.
What Bert can change
Bert makes small changes you ask for, as you, with your permissions: set a token's HP or another property, add or remove a condition, move a token by squares, rename a map or a token, and say something in chat under your name. These happen at once, each marked via Bert in History. The reply's Undo takes them back together, but never someone else's later edit or what you may no longer change, and it names what it couldn't undo. A chat message can't be taken back.
Deleting on a map (a token, a drawing, an aura, the fog) and placing monsters it generates are only proposed: the reply says what will change, with Do it and Cancel, and nothing changes until you tap Do it. So is a small change you didn't ask for in your own words: Bert has to quote your message, or it only proposes.
What Bert cannot do yet
- Bigger changes. It does not edit sheets, roll dice or delete maps.
- Remember anything outside its channel. The conversation in the Bert channel is its memory; it keeps no notes elsewhere.
- Answer from outside this Help. If the Help does not cover something, Bert says so rather than guessing at a feature.
A key
Bert needs a provider that supports tool calling: OpenAI, Google Gemini, Anthropic Claude or xAI Grok. In this release it runs on your own key only, billed to your own provider account; a key the server has for other AI features does not apply to Bert.
Open Settings → AI. Enter a key for the provider you want under API Keys, then pick that provider and a model under Assistant. The status line under the row says whether this server has the Help loaded and whether a key is ready.
Keys are stored in your browser and sent with each question so the server can call the provider for you; they are not saved on the server. The rest of the story is in AI Features.
Ask with no key and Bert's reply says where to add one. Nothing is sent to any provider until you have.
Where you are asking from
A question carries where you asked it: the campaign, the map you have open, and the token you are speaking as, if any. That is how this map and my character mean something. When it matters, Bert says where it thinks you are: On 2.2 - The Vault: the goblin by the door has 3 HP.
The Bert channel is not tied to one campaign, so the conversation carries across them. On a phone, Bert is in the chat drawer like any other conversation; the buttons work from there too.
What Bert sends, and what stays here
Each question sends, to the provider you picked and on your key: the question, the conversation so far in the Bert channel, where you are, and whatever Bert reads on your behalf, exactly as you can see it. Your account id and email address are not sent; the names in chat messages Bert reads are. Generating monsters sends the description to the same provider, on your key.
The key is held in memory for the length of one answer and never written down. The server keeps nothing of the provider's replies beyond the message you see in the chat, which is stored like a direct message, with the campaign you asked from. With it the server keeps the list behind the i on the reply: what Bert read (a short description of each lookup, not what it returned, and a short error message for one that failed), the provider and model, and the token counts. The commitment is in the AI Policy.
What Bert reads is information, not instructions
A token's name, a note, a chat message or a page of this Help may say ignore your instructions or delete the map. Bert is instructed to treat all of it as content to report, never as a command to follow. That is an instruction to a language model, not a guarantee. What stands behind it: a change Bert can't quote your message for, and anything that deletes or places, waits for your Do it; what it does at once is small and undoable.
The state line
While Bert works, a line under its reply says what it is doing:
| It says | What is happening |
|---|---|
| thinking | Bert is deciding how to answer |
| reading tokens, reading your campaigns, … | Bert is reading something on your behalf; the words name what |
| writing | the answer is being written, and appears as it is |
| failed: … | the answer did not finish, and the reason in a few words — the key was refused, the provider is busy |
When it is done the line goes away. If Bert runs out of time or of lookups before it finishes, the reply ends with a note saying so — I ran out of time, what it read, and to ask again more narrowly — rather than a failure. A small i on the reply shows the provider and model that answered, what Bert read, and how long it took.
A question takes one answer at a time; if you ask again while Bert is still working, you are asked to wait. Closing the tab does not stop an answer: it finishes without you, and is there when you come back.
When Bert is wrong
Bert can be wrong, in the way any AI assistant can: a confident answer about a feature that works differently, a number read from the wrong token. Read an answer before you act on it, the way you would read a generated monster before it hits the table.
To report a wrong answer, write to Support as for any bug (Troubleshooting → Reporting a bug), quoting the question, the answer, and what the small i on the reply says; that is what tells us which model answered and what it read. If asking Bert fails outright, with the panel that says Something went wrong on our side, its Report this button sends the technical details for you; what it sends is listed on Error Messages, and it never includes your chat or your key.