Svelte AI Elements is a unofficial port of Vercel AI Elements for Svelte. It provides a set of components and utilities to help developers build AI-powered applications with Svelte.
pnpm dlx sv create my-appcd my-app
pnpm dlx shadcn-svelte@latest initpnpm dlx shadcn-svelte@latest add https://svelte-ai-elements.vercel.app/r/prompt-input.jsonHere is a very basic Prompt Input example f:
<script lang="ts">
import * as PromptInput from "$lib/components/ai-elements/prompt-input";
import type { Message } from "$lib/components/ai-elements/prompt-input";
import { Chat } from "@ai-sdk/svelte";
let chat = new Chat({});
function handleSubmit(message: Message) {
chat.sendMessage({
text: message.text,
});
}
</script>
<div class="space-y-4">
<PromptInput.Root class="w-xl" onSubmit={handleSubmit}>
<PromptInput.Body>
<PromptInput.Textarea />
</PromptInput.Body>
<PromptInput.Toolbar class="justify-end">
<PromptInput.Submit />
</PromptInput.Toolbar>
</PromptInput.Root>
<!-- Showcase messages -->
<ul>
{#each chat.messages as message, messageIndex (messageIndex)}
<li>
<div class="text-base font-semibold">{message.role}</div>
<div>
{#each message.parts as part, partIndex (partIndex)}
{#if part.type === "text"}
<div class="text-muted-foreground text-sm">{part.text}</div>
{/if}
{/each}
</div>
</li>
{/each}
</ul>
</div>Full-featured components for chat apps, streaming responses, reasoning UIs, tools, and workflow-style AI interfaces.
- Docs: https://svelte-ai-elements.vercel.app/components
- Registry: https://svelte-ai-elements.vercel.app/r/index.json
Lightweight prompt engineering and conversational UI components that are easy to compose into simple AI interfaces.
| Component | What it helps with |
|---|---|
Message |
Role-based chat messages and response layout |
Prompt Input |
Prompt submission with AI-focused input controls |
Conversation |
Scrollable conversation containers and chat structure |
Response |
Streaming markdown response rendering |
Reasoning |
Expandable AI thinking and reasoning views |
For markdown and streaming response rendering, this project uses streamdown-svelte, the Svelte port used throughout the repo for streamed markdown output.
This project is licensed under the MIT License. See LICENSE for details.
Made with ❤️ by Bhide Svelte
