Chatting & roleplay
The chat screen is the heart of Pyre: a streaming roleplay against the provider you chose, with tools to steer, re-roll, group, and branch a scene without losing your place.
Live streaming and stopping
Replies stream token by token, so you can watch the character write in real time and stop a generation early if it is heading the wrong way.
Tip
If a model emits reasoning output, Pyre recognizes common reasoning fields, wraps them in <think> tags, and hides them by default. Toggle reasoning visibility under Chat Settings -> Customize chat.
Variants and re-rolls
Every assistant reply can hold multiple alternate generations. Swipe between variants and keep the one you like.
- Regenerate re-rolls the selected assistant message as a fresh variant.
- Continue streams more text into the same message. It works on assistant replies, on your own messages in your persona's voice, and on party/group scene messages.
- Branch lets a rewritten user, OOC, or scene message keep its own downstream timeline instead of destroying the old path.
Branching that keeps your history
Rewriting one of your messages does not destroy the conversation that followed the old version. Each variant keeps its downstream timeline, and that timeline comes back when you swipe back to it. Nested branches are supported, and the chat tree lets you navigate them.
This is what non-destructive means in Pyre: exploring an alternate story path is free.
Writing tools
- Impersonate me writes your next turn in your persona's voice, using persona dialogue examples and the current scene as style context.
- Guide the reply arms a one-shot instruction for the next character reply. It is not saved to the transcript.
- Regenerate with a guide re-rolls an existing assistant reply under a one-shot instruction.
- Guide my message drafts your next message from an optional outline and a first/second/third-person choice, then places the draft in the input box for review.
- Slash commands create special message kinds without leaving the input box. See Slash commands.
In group chats and persona-party chats, Impersonate and Guide my message understand the whole roster instead of pretending there is only one speaker on your side.
Regex find/replace rules
Pyre keeps a global list of find/replace rules that can clean up text as it flows through chat. A rule can affect:
- Saved text, changing what is stored in the transcript.
- Prompt text, changing what the model sees without changing what is saved.
- Displayed text, changing only what is rendered on screen.
Rules can target model output, your own input, or display-only text. The editor has a test field and an invalid-pattern guard, and SillyTavern regex imports are supported. See Regex rules.
Editing the transcript
Long-press a message, or use the desktop hover toolbar, to reveal actions such as Edit, Copy, Continue, Regenerate, Branch, and Delete.
Delete behavior is configurable: remove only the selected message, or remove it and everything after it.
OOC and scene notes are first-class messages. They can be edited, deleted, branched, and navigated as variants.
Alternate greetings and Fill-In opener
A character with alternate_greetings exposes them as swipeable variants of the first message.
Regenerating the opening message can also use Fill-In opener. Give Pyre a scenario twist, or write your own rough opening, and it generates a new opener grounded in the character, persona, active preset, and any lorebooks that fire. Fill-In is group-aware and persona-party-aware.
Group chat
Put multiple characters in one conversation. Create a group from the Chats tab, from a character menu/details sheet, or by adding members from the chat title's member sheet.
When Party Mode is off, a responder chip row lets you pick who speaks next. Each member contributes its own bound lorebooks regardless of who is currently responding.
When Party Mode is on, the model writes one joint scene featuring the whole cast. The message appears as a Narrator scene with stacked member avatars, reply length scales with party size, and Continue / Fill-In keep narrating the ensemble instead of collapsing to one speaker.
Each message uses a frozen character snapshot, so attribution stays correct even if a card is edited or removed later.
Persona party
Your side can be a group too. Pick several personas for one chat and Pyre tells the model about each member's description, voice, dialogue examples, and bound lorebooks. Your bubbles show a stacked persona cluster, and {{user}} resolves to the joined roster names.
Use this when you want to play a duo, a crew, or a rotating cast of "you" without cramming everyone into one persona description.
Chat backdrop
Set soft art behind the bubbles from the character avatar, persona avatar, a custom uploaded image, dynamic scene background, or none. Each chat can override source, opacity, and image fit, while global chat appearance controls set the defaults.
Chat bubble customization
Tune how bubbles look: separate colors for your bubbles and the character's, corner radius, border, padding, backdrop blur, opacity, and text size.
Quick preset switch and {{summary}}
You can change the active preset from inside a chat and quick-edit the main prompt for unlocked flat presets. The selection is global, not a per-chat lock.
If you use Checkpoints, the {{summary}} macro lets you drop the recap exactly where you want it in a preset. See Presets & sampling, Macros & template tokens, and Checkpoints.
Resilient generation
Pyre tries to tell you what went wrong, not just that something failed.
- Typed errors distinguish offline, timeout, server, and provider failures.
- Smart fallback can offer to retry the same turn on the next provider in your chain when a provider fails, returns empty text, or appears to refuse.
- Context recovery learns a model's practical context limit after overflow errors and retries with a trimmed history window.
- Stall detection prevents a "Generating..." bubble from hanging forever. Hosted providers use tighter windows; localhost providers get longer patience for cold loads and slow inference.
Android keep-alive
On Android, a foreground service keeps an in-flight generation alive if you minimize the app mid-stream.
Web via hub
When you use the web/PWA client through a paired desktop or self-host hub, the browser streams chat through the hub's provider. The browser keeps no API key, but the proxy forwards normal token streaming, image attachments for multimodal OpenAI-style providers, and reasoning output when the host/provider emits it.
Staying put
A jump-to-bottom pill gets you back to the latest message after you scroll up. The chat auto-saves continuously and flushes when the app goes to the background.