markstream-vue
Integrate markstream-vue into plain Vue 3 with renderer modes, code and DOM choices, streaming state, virtualization, optional peers, and scoped components.
Install
npx skills add https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/markstream-vue
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install sickn33-agentic-awesome-skills@llmmart
git clone https://github.com/sickn33/agentic-awesome-skills.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole sickn33/agentic-awesome-skills collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Markstream Vue 3
Overview
Configure the Vue 3 renderer beyond generic installation: surface modes, streaming lifecycle, code rendering, long-message virtualization, and scoped overrides.
When to Use
Use for a plain Vue 3 application after the package has been selected. Use markstream-nuxt when SSR-specific Nuxt boundaries matter.
Workflow
Before changing dependencies or source files, inspect the existing package manager and project conventions, preview the intended edits, and obtain explicit user approval.
- Confirm Vue 3 and not Nuxt. Install only requested peers and import
markstream-vue/index.cssafter resets. - Start with
content. Usemode="chat"for AI streams,docsfor rich documents, andminimalfor lightweight non-chat surfaces. - Choose fenced-code rendering explicitly:
prewithout a peer,shikiwithstream-markdown, or compatibility-namedmonacobacked bystream-diffs. - For live chat use smooth streaming
auto, no fade, and an optional cursor. On completion keep the same mode, setfinal, and disable pacing/cursor. - Use
nodesonly for worker parsing or structural AST ownership. - For long transcripts, keep an existing outer message virtualizer in charge. Use Markstream logical height rather than mounted DOM height.
- Use scoped component registration and preserve safe HTML and Mermaid strict mode.
- Validate the smallest build/typecheck plus one incremental stream and one long-message case.
Example
<script setup lang="ts">
import MarkdownRender from 'markstream-vue'
import 'markstream-vue/index.css'
defineProps<{ content: string; isDone: boolean }>()
</script>
<template>
<MarkdownRender
mode="chat"
:content="content"
:final="isDone"
:fade="isDone"
:typewriter="!isDone"
:smooth-streaming="isDone ? false : 'auto'"
html-policy="safe"
/>
</template>
Limitations
- Optional peers add bundle and browser-runtime cost.
- DOM-minimal mode disables wrapper-dependent features.
- Virtualization integration requires stable content and measurement keys.
Security & Safety Notes
Review dependency changes. Never enable trusted HTML or loose Mermaid rendering for untrusted model output.
Files (agentic-awesome-skills)
-
SKILL.md 2.8 KB
--- name: markstream-vue description: "Integrate markstream-vue into plain Vue 3 with renderer modes, code and DOM choices, streaming state, virtualization, optional peers, and scoped components." category: frontend risk: critical source: https://github.com/Simon-He95/markstream-vue/tree/main/.agents/skills/markstream-vue source_repo: Simon-He95/markstream-vue source_type: official date_added: "2026-07-21" author: Simon-He95 tags: [vue, markdown, streaming, virtualization, ai-chat] tools: [claude, cursor, gemini, codex] license: MIT license_source: https://github.com/Simon-He95/markstream-vue/blob/main/license --- # Markstream Vue 3 ## Overview Configure the Vue 3 renderer beyond generic installation: surface modes, streaming lifecycle, code rendering, long-message virtualization, and scoped overrides. ## When to Use Use for a plain Vue 3 application after the package has been selected. Use `markstream-nuxt` when SSR-specific Nuxt boundaries matter. ## Workflow Before changing dependencies or source files, inspect the existing package manager and project conventions, preview the intended edits, and obtain explicit user approval. 1. Confirm Vue 3 and not Nuxt. Install only requested peers and import `markstream-vue/index.css` after resets. 2. Start with `content`. Use `mode="chat"` for AI streams, `docs` for rich documents, and `minimal` for lightweight non-chat surfaces. 3. Choose fenced-code rendering explicitly: `pre` without a peer, `shiki` with `stream-markdown`, or compatibility-named `monaco` backed by `stream-diffs`. 4. For live chat use smooth streaming `auto`, no fade, and an optional cursor. On completion keep the same mode, set `final`, and disable pacing/cursor. 5. Use `nodes` only for worker parsing or structural AST ownership. 6. For long transcripts, keep an existing outer message virtualizer in charge. Use Markstream logical height rather than mounted DOM height. 7. Use scoped component registration and preserve safe HTML and Mermaid strict mode. 8. Validate the smallest build/typecheck plus one incremental stream and one long-message case. ## Example ```vue <script setup lang="ts"> import MarkdownRender from 'markstream-vue' import 'markstream-vue/index.css' defineProps<{ content: string; isDone: boolean }>() </script> <template> <MarkdownRender mode="chat" :content="content" :final="isDone" :fade="isDone" :typewriter="!isDone" :smooth-streaming="isDone ? false : 'auto'" html-policy="safe" /> </template> ``` ## Limitations - Optional peers add bundle and browser-runtime cost. - DOM-minimal mode disables wrapper-dependent features. - Virtualization integration requires stable content and measurement keys. ## Security & Safety Notes Review dependency changes. Never enable trusted HTML or loose Mermaid rendering for untrusted model output.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.