Docs / Developer / Quick-reply set entity
Quick-reply set entity
A CanonicalQuickReplySet is CanonicalEntity<"quickreply", QuickReplyBody>: a named set of buttons, each with a
label and the message pressing it sends. The type lives in src/entities/quickreply/schema.ts; the kind's descriptor
(labels "Quick reply" and "Quick replies", deck color, its blank "Untitled quick replies" set) issrc/entities/quickreply/kind.ts.
It is a kind of its own so a preset can LINK one (PresetBody.quickReplyRefs) and the Press can print them together,
the same shape as character to lorebook and preset to regex. The canonical body keeps what a person authors (the
label and the message); every other per-button switch rides extras on the reply, and the source file ridesoriginal on the envelope, untouched, so export writes it back.
A reply's message is usually a slash-command script. It is data: nothing in Bunzai executes it.
Fields
The tables are generated from the schema by scripts/docs-fields.ts and pasted verbatim from
docs/generated/fields.quickreply.md; improve the schema doc comment and
regenerate rather than editing a cell.
QuickReply
| Field | Type | Producers | Meaning |
|---|---|---|---|
id |
string |
- | Stable per-row id, minted at import when the wire has none. |
label |
string |
ST | The button's label; ST allows "" (icon-only buttons), so empty is legal here too. |
message |
string |
- | What pressing it sends - usually a slash-command script. Data, never executed here. |
title? |
string |
- | Hover text, when the wire carries one. |
hidden? |
boolean |
ST | Row disabled on the platform (ST isHidden); kept so a toggle round-trips. |
extras? |
Record<string, unknown> |
- | Unmodelled wire fields for this row, re-merged on export without semantic loss. |
QuickReplyBody
| Field | Type | Producers | Meaning |
|---|---|---|---|
name |
string |
ST | What the set is called; ST names sets, and the Library titles from the body like every kind. |
replies |
QuickReply[] |
- | |
extras? |
Record<string, unknown> |
- | Set-level wire fields the canonical model does not first-class (disableSend, color, ...). |
notes? |
string |
- | The author's own notes, same shape every other entity uses. |
Where it shows
- Library: the Quick replies deck, with a "New quick reply" action that saves an empty set.
- Workbench: the quick-reply editor (
src/ui/apps/workbench/QuickReplyEditor.tsx). - Kit: the create tool (
src/kit/tools/quickreply-create.ts); there are no Kit capabilities for editing a set,
which the Workbench owns (listed insrc/entities/kind-completeness.test.ts).
Import and export
The sillytavern-quickreply codec reads and writes ST's quick-reply set files. See
formats/sillytavern.md.