@gistui/vue

GistUI for Vue 3.5+: a component that renders streamed GistUI programs, with the default components built in and your own Vue components for any name.
657 3
Install
npm install @gistui/vue
Latest Version:0.2.1
Vue:3
License:MIT
Last Updated:Oct 5, 2026
Links: GitHub  ·  npm
Maintainer: rahul_gangotri
GistUI: the rendering engine for generative UI, next to a dashboard it rendered

@gistui/vue

GistUI for Vue.
Render a model's streamed answer as real, interactive UI in Vue 3.5+ and Nuxt.

npm version MIT licence Written in strict TypeScript Website: gistui.com

Website · Quick start · Benchmarks · Changelog


GistUI for Vue 3.5+ (and Nuxt): render a model's streamed answer as real UI (dashboards, forms, reports, slide decks) with GistUI's components, or with your own Vue components.

npm install @gistui/vue @gistui/styles

On the server, give the model GistUI's system prompt:

import { prompt } from "@gistui/catalog";
const system = prompt().text; // prompt({ mode: "inline" }) for chat text with ```gistui blocks

In your app:

<script setup lang="ts">
import { GistUI } from "@gistui/vue";
import "@gistui/styles/styles.css";
</script>

<template>
  <GistUI :source="answer" :streaming="loading" @action="onAction" />
</template>

Props: source + streaming (a growing string) or stream (a ReadableStream), inline, theme, color, tokens, darkTokens, classNames, tools, mutations, onToolCall, allowedHosts, paused, initialState, lockUntil, openLinks, autofix (default true), components, library. Events: action, error, stateChange, prose, autofix.

Tools and safety. A program is untrusted (a model wrote it, possibly steered by content it read). tools are read-only and may run as soon as the UI renders; mutations change something and run only when the person presses a button; onToolCall is called before every tool call and can block it by returning false. allowedHosts (["cdn.example.com", "*.example.com"]) limits where images, video and backgrounds load from; without it, a URL the program assembled from data is not loaded. paused stops timed data refreshes.

Autofix. When a stream ends with mistakes, the program is repaired in code (no model call) and shown repaired, in place; the autofix event lists what changed.

Your own components

Any Vue component (shadcn-vue, Reka UI, your design system) can replace a built-in one:

<!-- MyCard.vue -->
<script setup lang="ts">
import { GistChildren, type GistUIComponentProps } from "@gistui/vue";
defineProps<GistUIComponentProps>(); // props (what the model wrote), node, ctx
</script>
<template>
  <section class="my-card"><GistChildren /></section>
</template>
<GistUI :source="answer" :components="{ Card: MyCard }" />

Your components see the app's plugins and what the components around <GistUI> provide. For a form field, useGistField(props) joins the GistUI Form around it: validation from the field's props, error messages, and bind:$var.

const field = useGistField(props); // field.name, label, required, error, locked, value, setValue

All packages

GistUI is one project in several packages, released together under one version.

Package What it is
@gistui/react React renderer and default components
@gistui/vue Vue 3.5+ and Nuxt
@gistui/svelte Svelte 5 and SvelteKit
@gistui/solid Solid and SolidStart
@gistui/vanilla Vanilla JavaScript renderer, no framework
@gistui/catalog Component schemas, the system prompt and the agent skill
@gistui/styles One stylesheet for every framework
@gistui/server Stream reading, validation and repair on the server
@gistui/chat Headless chat store, model adapters, React chat layouts
@gistui/core The language: streaming parser, validator, autofix, prompt generator
@gistui/headless Shared internals: engine, themes, forms
@gistui/widgets Shared internals: charts, Markdown

Licence

MIT

Related Packages

@json-render/vue

Vue renderer for @json-render/core. JSON becomes Vue components.

433,381 18,809
@xmachines/json-render-vue

Vue renderer for @xmachines/json-render-core. JSON becomes Vue components.

9,327
@smoothstream/vue

Deterministic, paced Markdown reveal for Vue 3

2,186 5
@comark/vue

Vue 3 renderer for Comark. Render Markdown with components at runtime, with stre...

1,255,538 1,080
@openuidev/vue-lang

Define component libraries, generate LLM system prompts, and render streaming Op...

8,033 13,022

Version History

Version Released Vue License
0.2.1 ^3.5 MIT
0.2.0 ^3.5 MIT
0.1.0 ^3.5 MIT
Pre-releases (1)
Version Released License
0.0.0-stage