Integrate the appropriate Markstream package into an existing application without installing unnecessary optional dependencies or weakening its security defaults.
Read references/scenarios.md before choosing packages or peers.
Use this skill when the user asks to:
Before changing dependencies, inspect:
package.json;Do not assume the Vue package is correct merely because the source repository is named markstream-vue. Select the framework-specific package from the scenario table.
Install exactly one framework package. Add optional peers only when the requested UI uses their feature.
Examples:
npm install markstream-vue
npm install markstream-react
npm install markstream-svelte
npm install markstream-angular
npm install markstream-vue2
Preserve the repository's existing package manager. Do not install every optional peer preemptively.
Import application resets before Markstream styles. Import package CSS explicitly; do not rely on component imports to inject it.
For Tailwind or UnoCSS, use the relevant package subpath in a component layer:
@import 'markstream-vue/index.css' layer(components);
Use the matching package name for React, Svelte, Angular, or Vue 2. If math rendering is enabled, also import:
@import 'katex/dist/katex.min.css';
Vue CLI 4 and other Webpack 4-based Vue 2 applications cannot resolve package export maps. In those projects, import the published file directly:
import 'markstream-vue2/dist/index.css'
Prefer content for static documents and most streaming chat interfaces. Markstream's built-in smooth streaming can pace irregular token delivery without requiring the host to maintain an AST.
For Vue 3 chat surfaces, start with:
<MarkdownRender
mode="chat"
:content="markdown"
:final="false"
smooth-streaming="auto"
:fade="false"
typewriter
/>
For completed chat history, keep the same renderer mode and switch pacing off:
<MarkdownRender
mode="chat"
:content="markdown"
:final="true"
:smooth-streaming="false"
:fade="true"
:typewriter="false"
/>
In React, Svelte, and Angular, use the equivalent camelCase or framework binding syntax. Keep smoothStreaming="auto", fade=false, and typewriter=true while streaming; use smoothStreaming=false and typewriter=false for completed history.
Use nodes plus final only when a worker, shared AST store, custom transform, or another application layer already owns parsing.
markstream-react entry inside a 'use client' component for live SSE or WebSocket streams. Use markstream-react/next for SSR-first HTML with hydration, or markstream-react/server for server-only rendering.markstream-svelte only with Svelte 5.markstream-angular version requirement.mode="chat" for AI chat, mode="docs" for rich documents, and mode="minimal" for lightweight non-chat surfaces.HTML policy defaults to safe, and Mermaid uses strict mode. Do not broaden either setting unless the user explicitly identifies a trusted legacy surface that requires it. Scope any exception to that surface.
Run the smallest relevant build, typecheck, or test command. Confirm:
Report the selected package, added peers, CSS location, streaming input choice, and validation command.