Skip to content
WM KeyboardWM Keyboard
Accessibility

AI chat

A full back-and-forth conversation with whichever model you set up, on the keyboard's AI panel or in the settings app, as one shared list of chats.

The AI tool runs one-shot actions against the text in a field. Chat is the other half: a normal back-and-forth conversation with the same model, kept on your device.

You can chat in two places, and they’re the same chats. The keyboard’s AI panel has a Chat mode, for asking something and dropping the answer straight into whatever you’re writing. The settings app has a full-screen version, for longer conversations. Start one on the keyboard, carry it on in the app, come back: there’s one list, and an answer that’s still streaming in shows up on both.

Open the AI tool from the toolbar. The panel’s header has two chips, Actions and Chat. Tap Chat. The panel remembers which one you left it on, so if chat is what you use, the AI button opens chat from then on.

Chat mode on the AI panel: the conversation, the newest answer's buttons, and the composer.
Chat mode on the AI panel: the conversation, the newest answer's buttons, and the composer.
Chat mode on the AI panel: the conversation, the newest answer's buttons, and the composer.

Tap the message box and the keys come up underneath, with the last few messages still in view above it. The keyboard gets taller while you type so the conversation doesn’t disappear. On a short screen the conversation gives up room first: the keys under the message box always keep their full height. Tap the conversation, or press Back, and the keys step aside again so you can read. Your half-typed message stays where it was, even if you close the panel.

Glide typing, suggestions and the caret all work in the message box the way they do in any of the keyboard’s own fields. Nothing you type there reaches the app behind the keyboard.

Your own messages sit in bubbles on the right. Answers have no bubble: each one runs the full width of the panel, as long as it is, so a table or a block of code gets all the room there is.

The newest answer always shows its buttons, a row of plain icons under it. Tap any older message to bring out its own. Long-press an icon to see its name.

  • Insert puts the answer in the field at the cursor, with markdown markers stripped, since a text field won’t render them. A table keeps one line per row, its cells between bars.
  • Copy copies the answer as written. Long-pressing a bubble copies it too, in one move.
  • Write again throws the newest answer away and asks for another.
  • Share sends the answer to another app as a Markdown file. See Sharing an answer.
  • Edit, on your own newest message, pulls it back into the message box along with the answer it got, so you can fix the question and send it again.
  • A code block gets its own Copy and Insert, which take just the code, exactly as written.

Answers are drawn with their formatting: headings, lists, bold, inline code and code blocks. While an answer is still streaming, a code block waits for its closing fence before it offers its buttons.

Maths written in LaTeX is drawn as maths. A formula on its own line, between $$ signs, inside \[ and \], in a ```math block or as a bare \begin{aligned}, is set the way a textbook sets it: fractions stacked, roots under their bar, limits over and under a sum, matrices in brackets that grow with them. A wide one scrolls sideways: its cut-off edge fades out and a thin bar under it shows how much more there is, as on a wide table or code block. A formula inside a sentence, between single $ signs or \( and \), sits on the line: $x^2$ is a small raised 2, and a fraction or a matrix is drawn in place at the size of the text around it. A dollar amount is left alone, so “it costs $5 or $10” stays a sentence. When an answer is inserted into a field, which can’t draw any of this, the maths is written out in Unicode instead: x², √(x+1), (a+b)/c.

The message box is one rounded box. What you write is at the top; along its bottom edge sit its controls: the Reasoning switch at the start (see The Reasoning switch), and the mode button, + and the send arrow at the end (see Modes and answer formats). While an answer streams, the send arrow becomes Stop.

The + button in the message box opens a row of icons over it. Long-press an icon to see its name.

  • Pictures from the gallery opens the keyboard’s file manager, or the system photo picker in the Play Store build. Pick several at once.
  • A file opens the same file manager, or the system file picker in the Play Store build, for a text file, a recording, a video or a PDF. See Sending files.
  • Take a photo opens your camera app, and the photo you take is added. The first time, it asks for the camera permission.
  • Copied picture takes the newest picture in your clipboard history.
  • Newest screenshot takes the last screenshot on the phone, whenever you took it. The first time, it asks for access to your photos, and the screenshot is added once you come back from allowing it.
  • Send the text of the field quotes what you’re working on. With text selected in the field, it takes the selection; otherwise it takes the whole field. A line above the message box says which, and how long it is. The model gets your message followed by that text, clearly marked off, and the bubble notes that text went with it. Tap it again to drop the text. It’s greyed out over an empty field, and it never reads a password field.
  • Paste pastes your latest clip at the caret.

The photo picker, the file picker and the camera are system screens, so the keyboard steps aside while one is open and picks up where it was when you come back. The file manager, Copied picture and Newest screenshot don’t leave the keyboard at all.

Up to four pictures and four files can go with one message. They wait above the message box with a cross on each to take it off, and a message can be pictures or files alone. Sent, they show at the top of your bubble, on the keyboard and in the app alike. What the model does with them is the same as in the app: see Sending pictures and Sending files.

While incognito is on, or over a password field, the menu offers only the field’s text and Paste. Play Store builds leave out Newest screenshot, since they don’t ask for the photos permission a screenshot needs.

An empty chat offers a few openers: Reply to this and Explain this quote the field for you, Help me write starts the sentence. They only fill the message box. Nothing is sent until you send it.

Wikipedia, Dictionary, Vocabulary and Grammar check can hand their text to the chat. Each has an Ask AI chip (on Grammar check, a sparkle on each issue card), and in Wikipedia, Dictionary and Vocabulary a long press on the text selects a passage with Ask AI on the bar over it. Either way the AI panel opens in chat mode on a new conversation, with the text attached the way the paperclip attaches the field’s, and the line above the message box names where it came from, for example “About Wikipedia: Cat”. The keys come up under the message box, and three openers stay on screen while you type: Explain simply, Summarise and Hard words. The text goes with your first message only.

The chips show only while the AI tool is on, and not on the lock screen.

The chip in the header with the chat’s title opens your list of chats: tap one to open it, New chat to start fresh, Delete twice to remove one. Swiping a chat to the left shows a red delete button behind it, which removes it in one tap.

The pencil on a chat renames it. The name turns into a field with the keys under it; type the new name and press Enter or the tick, or the cross or Back to keep the old one.

To clear out several chats at once, long-press one. That starts picking: each tap ticks a chat on or off, and the row above the list shows how many are picked, a Select all button, and Delete, which deletes them all on its second tap. The cross, or Back, stops picking. The plus button starts a new chat from anywhere. The arrow button opens the current chat in the settings app, which is the place to go when you’d like a full screen or selectable text.

By default Enter starts a new line, and the send button sends. If you’d rather Enter sent the message, turn on WM Keyboard  Tools  AI writing tools  Enter sends the message.

On the lock screen the panel shows only its actions. Chats are stored encrypted behind your unlock, and a transcript isn’t something to draw over a lock screen.

A chat started while incognito is on is never saved. You can read it and carry it on until the keyboard’s process ends, and then it’s gone.

WM Keyboard  Tools  AI writing tools  Chat with the model

It sits in a group headed Chat on the AI tool’s settings screen, under the reasoning and panel options. There’s a faster way in too: long-press the app icon on your launcher and pick AI chat, which lands you on the conversation list without going through Home.

The AI screen on the settings home list has a round chat button in its bottom corner that opens the same list. If you’d like that button on every settings screen, turn on WM Keyboard  AI  Chat button on every screen. On a screen that already has a button of its own, such as the plus that adds something, the chat button sits above it in a smaller size. It stays off the chat screens and the Settings assistant, which are chats already.

The conversation list, newest first, with the New chat button at the top.
The conversation list, newest first, with the New chat button at the top.
The conversation list, newest first, with the New chat button at the top.

The list is your saved conversations, most recently updated first. Each row is the chat’s title and how long ago you touched it, with a pencil that renames it and a delete button that asks first and names the chat it’s about to remove. Swiping a row to the left shows the same delete button behind it.

Long-press a chat to start picking several. Taps then tick chats on and off, and a bar at the bottom shows how many are picked, with Select all and Delete. Delete asks once for the lot. Back, or the cross on the bar, stops picking. New chat is both a button at the top of the list and a plus in the top bar.

Nothing saved yet? You skip the empty list entirely and land in a new chat, because an empty list with one button on it isn’t worth a screen. A chat is only written down on your first send, so opening one and backing straight out leaves no row behind.

Until it has a better name, a chat is called after the first line of your first message, cut to 48 characters on a word boundary.

With WM Keyboard  Tools  AI writing tools  Auto-rename chats on, the default, the model that answered names the chat once its first answer is in: a few words on what it’s about, in the language you wrote your question in, even when the answer came back in another one. It’s one more short request to the same model, with your first message and the answer, and it isn’t made when Data Saver would stop or question a send. If it fails, the first-line name stays.

You can also ask the model to rename a chat (“call this chat Trip to Sylhet”, “give this a better name”). It proposes a name with its Rename chat tool, and a card under the answer asks Rename this chat to ”…”? with Accept and Decline. Nothing changes until you accept. On the keyboard, closing the keyboard while the card is up counts as Decline. The tool is offered only while Auto-rename chats is on.

Rename a chat with its pencil, on the keyboard or here, to give it a name of your own, up to 80 characters. A name you typed, or one you accepted, is never replaced by an automatic one.

The + button in the message box opens a sheet with Pictures from the gallery, A file, Take a photo and Paste. The gallery is the system photo picker, which needs no permission; Take a photo asks for the camera the first time. Pick up to four pictures for one message; they wait above the message box, each with a cross to take it off again, and a message can be pictures alone. In a sent message they show above its text.

What the model does with them depends on what it can take:

  • A cloud or self-hosted model that reads pictures (Claude, OpenAI, Gemini, Grok, Ollama, LM Studio, any OpenAI-compatible service) is sent the pictures with your newest message. Older pictures aren’t sent again with every reply after it; the model remembers what it said about them.
  • An on-device GGUF model that reads pictures (Qwen 2.5 VL and SmolVLM, or one you imported with its mmproj file) is given the pictures of your newest message itself, on the phone. Older pictures stay numbered marks, as below.
  • Any other on-device model, or a provider with no place for pictures (Brave and DeepSeek among them) can’t take one. It is told each one is there, numbered, and can use Read text in a picture from the keyboard’s own tools to read what it says.

Either way, with Search by picture turned on the model can look a picture up on the web through the camera tool’s search site, and hands you the link to the results.

The keyboard’s chat has the same menu, plus the clipboard’s picture and your newest screenshot: see The + menu.

A file, in the + menu, opens the file manager on the keyboard and the system file picker in the app or in the Play Store build. Up to four files go with one message, each shown as a chip with its name.

  • A text file (plain text, Markdown, CSV, JSON, source code and the like) is read when you pick it, and its text goes with your message, marked off with the file’s name, to any model. Up to 20,000 characters of it are kept; the rest is cut.
  • A recording, a video or a PDF is copied into the chat, up to 14 MB. Gemini is sent the file itself with your newest message. Every other model is told a file of that name and type is there, but can’t open it.
  • A picture picked this way joins the message’s pictures, as if you’d picked it from the gallery.

Anything else, such as a ZIP or an app, is refused with a line saying why.

The Settings assistant is a chat about the keyboard itself. Open it from the assistant button at the top of the settings search screen, which carries over whatever you had typed into search, or from WM Keyboard  Tools  AI writing tools  Settings assistant. Describe what you want in your own words, such as “I keep triggering long presses” or “set up a mode for typing codes”, or tap one of the three questions an empty conversation suggests. They’re drawn at random from a list of common ones each time you open it, and the shuffle button deals three more. It searches the same index the search screen uses and explains the settings it finds, with formatting, lists and links drawn as they are in the chat.

It never takes you anywhere on its own. A setting it names in its answer is a link: tap it and a sheet slides up with the row’s icon, what it does, the path of screens down to it and, for the settings it can read, the value it has now. A row it wants you to look at gets the same card in the conversation. Open on either takes you there, with the row flashing on its screen as a search result does, and back brings you to the conversation where you left it. It only ever names and links rows that exist; a link to a row it never searched for reads as plain text, and a row it makes up is refused.

For a question a settings row can’t answer, such as which dictionary files Chinese can import, it searches this documentation and answers from the sections it finds, with links to them. It only sends the search words.

For a short list of common settings it can also propose a change: autocorrect, suggestions, automatic capitals, the automatic space after punctuation and after a picked suggestion, glide typing, two-thumb typing, the number row, key vibration, key sound, typing speed on the spacebar and the long-press delay. A proposal is a card in the conversation with the setting’s current and proposed value, and nothing changes until you press Apply. Apply checks the saved setting again first, and if it has changed since the proposal was made, it refuses and asks you to ask again. If the setting can’t be saved, the card says so and keeps its Apply. Each proposal applies once. Undo on an applied card puts the old value back, unless you have changed the setting by hand in the meantime, in which case it leaves your change alone. Anything else it can only open, for you to change yourself.

It runs on any model the AI chat can use: a cloud or self-hosted provider you have set up under AI, or an on-device model you have downloaded. The one answering is shown under the title; tap it to pick another, or to set up a new provider. Like the chat’s model chips, that choice is the assistant’s alone and leaves the keyboard’s own provider as it is, and it lasts until the app is closed. Until you pick, it prefers the keyboard’s own provider when that is a cloud or self-hosted one, then the first of those, and only then an on-device model, since a cloud model calls the assistant’s tools far more dependably.

On an on-device model the assistant searches the settings for your question itself before the model starts, so the model has the matching rows in front of it even if it never asks for a search, and it skips the documentation search. If its answer still names no setting, the closest match is shown as a card anyway. Answers are slower than on a cloud model, since each one is worked out on the phone, but nothing leaves it.

Don’t want it? Turn off WM Keyboard  AI  Offer the Settings assistant. The button on the search screen, both of its rows and its search result go, and it sends nothing anywhere. A question it was still answering is stopped, and its answer never arrives. Turn it back on from the same row, which search still finds. Your providers and keys stay as they are.

The conversation is kept only while the app is running and is never saved. With a cloud or self-hosted provider, an empty conversation names it and says what goes to it. What it sends to the provider is your messages, its own answers, the setting titles, places and the few values above, and any documentation it looked up; no key, address or other secret is readable through it, and the app lock covers it like the rest of AI.

Two ways in open the chat as a sheet over whatever app you’re in, with the app still showing above it. The floating button’s Ask AI about this screen brings the text on screen along when its screen reading is on. Ask AI in any app’s text selection menu brings the selected text. Either way it waits above the message box, where View shows all of it and Delete drops it, and the first message you send carries it. The conversation lands in the same list as the rest.

If you don’t want Ask AI in the selection menu, turn off Ask AI in the selection menu in the AI tool’s options. Turning the AI tool itself off takes it out too. Either way Look up and the other apps’ entries move up into the space it leaves.

WM Keyboard  Tools  AI writing tools  Use as the phone's assistant Next release

WM Keyboard can be the app Android opens for the assistant gesture: a long press on the home or power button, a swipe up from a bottom corner, or a headset’s assistant button, whichever your phone uses. Turn on Use as the phone’s assistant on the AI tool’s page, then pick WM Keyboard under Choose the phone’s assistant, the row that appears under it. That opens Android’s own page, usually Default apps › Digital assistant app. The switch alone changes nothing; until you pick WM Keyboard there, the phone keeps the assistant it had. It is off by default, and it goes with the AI tool: turn the tool off and WM Keyboard leaves the list.

The gesture then opens a short menu at the bottom of the screen, over the app you were in:

  • Ask about this screen opens the chat with the screen’s text attached, as the floating button’s Ask AI about this screen does.
  • Explain this screen and Translate this screen do the same with a question already in the message box (“Explain what is on this screen.”, or “Translate this into” your phone’s language). Change it or send it as it is.
  • Ask by voice listens with your voice typing engines, then opens the chat with what you said in the message box, and the screen attached when there is one.
  • New chat opens the chat with nothing attached.

Every item ends in the same chat sheet as the other ways in, with the AI tool’s models, its tools and its history, so a question that needs a tool (set a timer, add a calendar event, look something up) works the way it does anywhere else in the chat. Nothing is sent until you send it.

The three screen items only appear when Android hands the assistant the screen’s text, which it does when Use text from screen is on in its assistant settings (behind the gear next to Digital assistant app). Without it, a line under the menu says so, with a button to that page. Password fields are never read, and at most 8,000 characters come along.

Android gives every assistant a speech recognizer of its own and makes it the phone’s while the assistant is picked. WM Keyboard’s is the one Voice input for other apps uses, so while WM Keyboard is the assistant, apps that ask Android’s speech recognizer are heard by your voice typing engines too. With Phone’s recognizer as the engine, their requests go on to the recognizer you had before. Turning on the assistant doesn’t put WM Keyboard’s voice input window in front of other apps’ microphone buttons; that is still Voice input for other apps’ own switch.

A message can ask for more than an answer. Each message goes out in a mode, and its answer comes back in a format. Both stay picked from one message to the next until you change them, on the keyboard and in the app alike.

  • On the keyboard, the button with the sliders in the message box opens a row of modes and a row of formats over it. While either is something other than plain chat, the button wears the mode’s icon and a line beside it names what’s picked, so a research run never starts by surprise.
  • In the app, the message box has a Mode chip and a Format chip next to Reasoning; each opens a menu. The chips scroll sideways on a narrow screen.
ModeWhat it doesFormat it uses on Auto
ChatThe chat as it always wasWhatever the model writes
Deep researchPlans sub-questions, searches the web, reads pages and writes a report with numbered sources. See Deep researchMarkdown report
SummarizeSums up what you give it. Links in your message (up to three) are read first, so every model gets the pages, on-device ones included; quoted text and files are summed up as they areBullet points
CompareCompares the things you name point by point and ends with a verdict when there is one. A model with web search looks up facts that may have changedTable

The formats are Auto format, Plain text, Markdown, Bullet points, Table, JSON and Code. Auto leaves the shape to the mode. Any other format is an instruction added to your message, not to the model’s standing prompt, so it applies to that message and the answers that follow it, and it doesn’t throw away an on-device model’s session. Plain text is the one to pick when the answer is going straight into a field.

Edit on your own message brings its mode and format back with it, and Retry and Write again run it the way it first ran.

Deep research answers a question from the web the way a research agent does, in steps you can watch. It needs two things: a cloud or server model that can call tools (any provider except On your device and Brave), and a web search provider (SearXNG, Tavily or Brave). With either missing, a line above the message box says which, and the send button waits.

  1. Plan. The model breaks your question into sub-questions, from the general (what it is, why it matters) to the specific (details, numbers, recent changes), and gives each one to three searches. The plan appears as a checklist at the top of the answer.
  2. Gather. One sub-question at a time, its searches run and the best results are read, no more than two pages from one site. Each search and each page is a step on the chain, as a tool call is, and its sub-question is ticked once it’s covered. A page that can’t be read, or is a PDF or a video, is skipped.
  3. Look again. On Standard and Deep, the model reads short notes from the pages so far and either names what is still missing as new searches, which join the checklist, or says it has enough.
  4. Write. The report streams in: a short direct answer, a section for each sub-question, a conclusion. Every fact carries the number of the source it came from, like [3]. The list of Sources under the report is added by the keyboard, not written by the model, and holds only the pages the report cites, each a link. A source the report never cited isn’t listed.

The model doing every step is the one picked in the chat. The plan and the look-again ask it not to reason, to save time; the report follows the Reasoning switch.

WM Keyboard  Tools  AI writing tools  Deep research depth sets how far a report goes:

DepthSub-questionsSearches in the first roundLooks againPages read
Quickup to 33never4
Standard (default)up to 46once8
Deepup to 69twice14

Each page is a request to its site, and up to 6,000 characters of it go to the model, with about 48,000 characters of page text in all for the report. Deeper reports take longer and cost more tokens. A Standard report on a fast cloud model takes about half a minute.

Turn on WM Keyboard  Tools  AI writing tools  Review the research plan first to see the plan before anything is searched. A card under the plan asks Research these questions? with Start and Cancel. Cancel ends the run with a Retry; rephrase the question if the plan missed the point. With the setting off, the plan runs as soon as it’s made, and Stop ends a run at its next step, keeping the steps so far.

Data Saver covers a research run twice: as a cloud AI request and as a web search. When it would hold either, the run is held, and Retry is the yes. When data saving is on and allows the run, it reads half as many pages.

Under the newest answer from a cloud or server model, up to three chips suggest what you might ask next. A tap puts the question in the message box to send or change; nothing is sent until you do. The model writes them at the end of the same answer, so they cost a few dozen tokens and no extra request, and they’re taken out of the answer before it’s shown, copied or inserted. On-device models are never asked for them. Turn them off with WM Keyboard  Tools  AI writing tools  Suggest follow-up questions.

The Share icon under an answer hands it to another app. In the app it offers a Markdown file, a PDF or the Text; on the keyboard it shares the Markdown file. The file opens with the chat’s title and your question, then the answer as written, sources and all. The PDF is laid out on A4 pages, with headings, lists, code and tables set apart. Files are made in the app’s cache and shared from there.

A scrolling row of chips above the transcript lists everything you can talk to right now: models you’ve downloaded on-device first (when On your device is on the AI providers list), then every row of that list that is on and set up. Set up means the thing it needs is filled in: an API key for the cloud services, an address for Ollama or LM Studio, and both an address and a model name for an OpenAI-compatible service. Two rows of one service show their nicknames. With fewer than two to choose from, the row doesn’t appear at all.

Model chips over a conversation, with an answer streaming in.
Model chips over a conversation, with an answer streaming in.
Model chips over a conversation, with an answer streaming in.

Two things worth knowing about that row:

  • It doesn’t touch the keyboard’s own setting. Chatting to Gemini while the AI tool is set to Claude leaves the tool on Claude. The chip is the chat’s choice and nothing else reads it.
  • It’s frozen while an answer is coming in. The chips grey out until the answer lands or you stop it, since swapping models halfway through a reply has no sensible meaning.

Your pick is remembered for next time, and each conversation also remembers the last model that answered in it.

Type in the box and hit send. The app’s message box is laid out like the keyboard’s: what you write at the top, with the Reasoning switch, + and send along its bottom edge. While the answer streams, the send button becomes Stop.

Reasoning, at the bottom left of the message box, turns a model’s reasoning on or off for your next messages. It’s one setting for both chats, on by default, and it only shows for a model it does something for:

ModelOnOff
ClaudeClaude thinks as much as it decides the question needs, and a summary of its thinking shows in the Reasoning step. Models before Claude 4.6 get a thinking budget of half the maximum response lengthNo thinking. Claude Sonnet 5.5 is set to think only between tool calls, its own way of turning thinking off. Claude Opus 5.5, Fable and Mythos can’t stop thinking, so they’re set to the lowest effort
GeminiGemini’s thoughts come back and show in the Reasoning stepThinking off on Gemini 2.5 Flash and Flash-Lite. Gemini 2.5 Pro and Gemini 3 can’t stop thinking, so they’re set to the least they allow
OllamaThe model’s own default, which for a thinking model is to thinkNo thinking
OpenAI reasoning models (GPT-5, GPT-6, o-series)The model’s own defaultLow reasoning effort, the least every one of them accepts
On-device reasoning models (Qwen 3 and the like)The model reasons, as before/no_think is added to your message, which those models read as “answer straight away”

Other providers have no field for it that they all agree on, so the switch isn’t there for them, and neither is it for models with no reasoning to switch: Claude 3 models before 3.7, and Gemini 1.5 and 2.0.

If a reasoning model spends its whole answer reasoning and writes no reply, usually because it reached the maximum response length, the turn shows as failed with a Retry, and what it reasoned is still in its Reasoning step.

  • Stop keeps what arrived. The partial answer stays in the transcript, labelled “Stopped”, rather than vanishing as if you’d never asked. A LiteRT-LM model’s generation is a native call that can’t truly be interrupted. It finishes quietly in the background instead, and the model’s own memory of the conversation is kept in step with what you can see. A GGUF model stops at once, and remembers exactly the partial answer.
  • A failed turn shows the error in its own bubble with a Retry button. Only the newest failed message gets one, because retrying something from the middle of a transcript would answer out of order. Retry re-sends the message the failure was answering, so nothing is duplicated.
  • Leaving doesn’t cancel anything. Navigate away mid-answer and the generation carries on. Come back and it’s either still streaming or already in the transcript.

Answers run the full width of the screen with no bubble around them, and your own messages sit in bubbles on the right, as on the keyboard. Every message has a Copy icon under it, and the text itself is selectable, which the keyboard’s version can’t offer. The newest answer adds Write again, and your own newest message adds Edit, both exactly as on the keyboard. Answers render the same formatting on both, and a code block has a Copy of its own. There’s no Insert here, because there’s no field behind this screen to insert into.

A Play Store build adds a Report icon, a flag, under every finished answer. It follows the same route the panel offers under Reporting a result: a draft opens in your own mail app holding the provider, the model, the message the answer replied to, and the answer itself, with a blank line at the top for what went wrong. Nothing is uploaded when you tap it, so a report only exists once you send the mail. Your own messages carry no Report button, and neither does a failed turn, because neither one is a generated answer. With no mail app installed, a message says so instead. GitHub and F-Droid builds show no Report button here at all, since Play’s AI-generated-content policy is the only reason for it. The keyboard panel’s own Report button has no such restriction.

What happened before an answer sits over it as a short chain of steps, joined by a line that runs down into the answer. Each step is folded to one line until you tap it. This works the same on the keyboard and in the app.

  • Reasoning is what a reasoning model thought before it answered. While it’s thinking the step reads Reasoning… with a spinner. Tap it to read the reasoning, drawn with its formatting, maths included, and dimmed so it never reads as the answer. A model that reasons again after each tool call has all of it gathered here.
  • A tool call gets a step of its own, one for each time the model used a tool (see Letting the model look things up). Its line says what it did, such as Searched the web for ”…” or Reading example.com…, over the tool’s own name, such as web_search call. Tap it to see the arguments the model wrote and what came back: for a search or a page, the results by title and address, where a tap opens one in your browser and a long press copies the address; for any other tool, the text the model was handed. A tap on the arguments or the output copies them. A call that failed says why.

The steps are saved with the answer, so they’re still there when you come back to the chat, and they stay even on a turn that failed or that you stopped. A lookup cut off by Stop is marked “Stopped”. A call that has to ask first shows its question under its step, open, whether or not the step is.

The Show model reasoning setting is for the panel’s actions; the chat always keeps reasoning, folded.

An on-device model gets a live session per conversation, seeded with the saved transcript, so it keeps the context of what you’ve already said. A GGUF model is given the whole conversation in its own chat template on every turn, and only the new message costs time, because the turns before it are still in its memory. When a conversation outgrows the context, its oldest exchanges are left out first. Switching conversation, model, compute backend or context size closes that session and opens a fresh one, seeded the same way.

With no downloaded model and no configured provider, the chat screen says Nothing to chat with yet and offers one button back to the AI tool settings. That’s the same setup you’d do for the keyboard panel: see Choosing where it runs.

On the F-Droid build the on-device models are the GGUF ones only: the LiteRT-LM list needs Google’s runtime, which that build leaves out. See Which build you have if you’re not sure which one you have.

A chat can remember things about you for the chats after it. When you mention something that will stay true, like where you live or how you like answers, the model saves it as one short fact, and a line under the answer says Saved to memory with an Undo beside it. Ask it to remember or forget something and it does. Every saved fact is on WM Keyboard  AI  Memory, where you can edit it or delete it.

An on-device model reads and saves memory while it’s on. A cloud or self-hosted service only does once you turn on Use with cloud models there. A chat started in incognito never touches memory. See AI memory for what’s saved, what’s refused and where it’s kept.

Conversations live in one file in the app’s private storage, in the same folder as the AI history. It shows up as AI chats on the storage screen under WM Keyboard  About  Storage, so you can at least see what it costs you. Your data covers what else is in there.

Two rows decide whether that file exists at all. Both sit on the History screen, under WM Keyboard  Tools  AI writing tools  History, in a group headed Chats:

  • Keep your conversations is on by default. Turn it off and chats live only until you close the app, and whatever is already saved is deleted with it. That’s the same contract the AI history switch has.
  • Delete all chats clears every saved conversation after a confirmation, without turning the feature off.

Three caps keep the file from growing without limit:

WhatCapWhat happens past it
Conversations50The one you touched longest ago drops off
Messages per conversation200The oldest messages drop off the front
Characters per message20,000The rest is cut

Text you attached from a field is saved with its message, under the same 20,000-character cap, because the conversation wouldn’t make sense to the model without it on the next turn.

Pictures are kept as files next to the conversations, scaled down to 1,280 pixels on the long side first, and are deleted when nothing refers to them any more: when the conversation is deleted, for example. With Keep your conversations off they go in the app’s cache instead. Recordings, videos and PDFs you sent are kept the same way, unscaled; a text file’s text is saved inside its message.

Deleting a conversation from the list removes it for good. There’s no undo, which is why the dialog names the chat first.

Exactly what the AI tool sends, and only when you hit send:

  • An on-device model sends nothing. The whole conversation stays on the phone.
  • Any other provider gets the conversation so far, because that’s what makes a reply follow on from the last one. Your saved AI memory goes with it only if you’ve turned on Use with cloud models. Pictures you sent go with your newest message, to a provider that takes them. That includes any field text you attached with the paperclip, and only the text you attached: the keyboard’s chat never reads the field on its own. A fixed instruction rides along with it: answer in plain text, and keep it as short as the question allows. Your API keys stay on the device.
  • Deep research and Summarize also go to the web. Deep research sends the searches its plan made to your search provider, then fetches each page it reads straight from its site, and the pages’ text goes to your AI provider with your question. Summarize fetches the links in your message the same way. Nothing goes to a page but an ordinary request for it.
  • The assistant’s menu reads the screen’s text only when Android sends it, and keeps it on the phone until you send a message that carries it. Its Ask by voice hears with your voice typing engine, which keeps the audio on the phone or sends it where that engine sends it.
  • The transcript itself goes nowhere. It’s deliberately left out of settings backups, the same as the AI history and for the same reason: your own conversations shouldn’t ride along in a file you export and mail to yourself. See Your data.
  • Max response length applies here too. For a cloud or self-hosted model, the AI tool’s ceiling bounds a chat reply the same way it bounds a panel result, reasoning-model multiplier included. See About “Provider maximum”. On-device, the Context size row is what bounds it, exactly as on the panel.
  • The chat prompt isn’t one of your actions. The panel’s action prompts are for transforming text in a field, which is a different job. Chat has its own fixed prompt and nothing on this screen edits it.
  • Nothing here is written to the AI history. That log records panel runs. A conversation is only in the chat file.
  • The launcher shortcut is one of four. Long-pressing the app icon offers Tools, Languages, AI chat and Themes, and nothing else. The wmkeyboard://settings/ scheme behind those four reaches three more screens (Typing, Appearance and Search) that no shortcut points at. See Deep links & launcher shortcuts.
  • Deleting a chat mid-answer is handled. If a generation finishes for a conversation you’ve already deleted, the answer is dropped rather than resurrecting the row.
  • Reasoning is saved apart from the answer. It’s kept with the message for its folded step, under the same 20,000-character cap, but never sent back to the model on later turns, and Insert and Copy take the answer alone.
  • Tool calls are saved short. A saved answer keeps each call’s arguments and the first 4,000 characters of what came back, the titles and addresses of search results, and why a call failed. A follow-up question doesn’t see any of it again: the model only has its own earlier answer to go on.

Related: AI tools covers the providers, the on-device model catalog, the panel’s actions, and the history.