KQ-212 · PROMPT/WELL

Prompt Well

A composer that deepens as the thought gets longer, growing line by line to a row cap and then holding and scrolling so the send control never walks down the page. Typing @ opens the sources it can draw on and / opens the commands it can run, filtered as you type; the list rises on snap, arrow keys move, Enter or Tab takes one. The field is a combobox over that list with an active descendant, so the highlighted row is announced without the caret leaving the text.

KQ-212 · PROMPT/WELL
@ sources · / commands

Last sent nothing yet

Loaded composer — attachments, queue, credits

flavour-photo.jpg2.1 MBsupplier-ledger.csv48 KB
@ sources · / commands41/60
2 queued

Install

One command — the source lands in your repo. Or copy it from the Code tab.

$ pnpm dlx shadcn@latest add @kinetiq/prompt-well

Props

attachments / onAttach / onRemoveAttachment
WellAttachment[] · () => void · (id: string) => void
default
A chip row above the field and a paperclip in the tool row; all optional.
queued / credits
string[] · { used: number; limit: number; label?: string }
default
Messages waiting while busy, and a small usage pill in the tool row.
sources
WellOption[]
default
Offered after @, anywhere a word can start.
commands
WellOption[]
default
Offered after /, and only when it leads the prompt.
busy
boolean
default
Swaps send for stop and blocks submission.
maxRows
number
default
Rows the well grows to before it scrolls.
models / model / onModelChange
string[] · string · (model) => void
default
A cycling model chip in the footer — the current choice is always printed, never hidden in a menu.
onDictate
() => void
default
Offers a dictation control beside send; the well never records audio itself.
shape
"well" | "pill"
default "well"
The container silhouette.