SvelteVirtualChat

A high-performance virtual chat viewport for Svelte 5. Purpose-built for LLM conversations, support chat, and any message-based UI.

Quick Start

npm install @humanspeak/svelte-virtual-chat
<script lang="ts">
  import SvelteVirtualChat from '@humanspeak/svelte-virtual-chat'

  let messages = $state([...])
</script>

<SvelteVirtualChat
  {messages}
  getMessageId={(msg) => msg.id}
  estimatedMessageHeight={72}
  containerClass="h-[600px]"
  viewportClass="h-full"
>
  {#snippet renderMessage(message, index)}
    <div class="p-4">{message.content}</div>
  {/snippet}
</SvelteVirtualChat>