Parts and status, not improvised state
Render message.parts exhaustively and drive every control from useChat status instead of shadow loading booleans.
Premium skill
Opinionated principles for useChat interfaces: parts, statuses, streaming, scroll, composer, and persistence. Build or review — same checklist.
$ npx skills add … --skill better-chat-uiSign in with Premium to generate a fresh install link.
Browse the authored file tree — tools, references, and evals included. Source unlocks with Premium.
SKILL.mdmarkdownBrowse every authored SKILL.md with premium.
File tree for better-chat-ui stays visible so you can see the pack before unlocking.
Render message.parts exhaustively and drive every control from useChat status instead of shadow loading booleans.
Pin to bottom with a 100px escape hatch, memoize markdown blocks, and keep mid-stream errors recoverable.
Enter sends, Shift+Enter newlines, attachments preview before send, and typing stays unlocked while the model answers.
Never write useChat from memory. Verify hooks, parts, and statuses against the bundled docs for the version in the repo.
The skill covers the edge states tutorials skip — and pairs with Better Generative UI when tool results need real components.
A support chat that stops cleanly mid-stream and keeps partial answers.
A product assistant with citation chips, collapsible reasoning, and resumable threads.
A mobile chat composer that never triggers iOS input zoom.
An existing useChat UI that feels janky — audit it with Before/After tables.
Available with Premium. The private install link expires; the downloaded skill does not. Generate a fresh link when you want to update it.
Lifecycle skills and UI craft skills