markstream-nuxt
Integrate markstream-vue into a Nuxt 3 or Nuxt 4 app.
Skill by Simon-He95
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/simon-he95-markstream-nuxt
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: frontend, agent-building, frontend-development
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/markstream-nuxt
What's inside
- Skill name
markstream-nuxt- Description
- Integrate markstream-vue into a Nuxt 3 or Nuxt 4 app. Use when Codex needs client-only boundaries, SSR-safe setup, browser-only peer gating, worker-aware initialization, renderer `mode` selection, or a safe `MarkdownRender` integration inside pages, components, or Nuxt plugins.
- License
- MIT
- Instructions
- 49 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
# Markstream Nuxt
Use this skill when the host app is Nuxt and SSR boundaries matter.
## Workflow
1. Confirm the repo is Nuxt 3 or 4.
2. Install `markstream-vue` plus only the optional peers required by the requested features.
3. Keep browser-only peers behind client-only boundaries.
- Prefer `<client-only>` wrappers, `.client` plugins, or guarded setup paths.
4. Import `markstream-vue/index.css` from a client-safe app shell or plugin.
- The root JS import does not inject styles; use `markstream-vue/index.css` or `markstream-vue/index.px.css` explicitly.
5. Start with `content`, choose the renderer mode by surface, and move to `nodes` plus `final` only when the UI needs custom AST control.
- Use `mode="chat"` for AI chat or SSE output. It uses lightweight batches, `fade=false`, and `max-live-nodes=0`; `smooth-streaming="auto"` paces visible output.
- Use `mode="docs"` for rich document surfaces. It is the default and enables larger batches, tooltips, and fade.
- Use `mode="minimal"` for lightweight non-chat surfaces.
- Regular fenced code uses the built-in renderer, enhanced by `stream-diffs` when the optional peer is installed. Use `render-code-blocks-as-pre` for a forced plain path or `setCustomComponents(customId, { code_block: ... })` for a scoped application-owned renderer.
- `typewriter` only controls the blinking cursor and defaults to `false`. Prefer `typewriter="simple"` for high-frequency chat.
- In Vue 3 (including Nuxt), `smooth-streaming` controls output pacing and `fade` controls opacity; they can be enabled together. `mode="chat"` keeps `fade=false` as a lightweight default. Add `fade` when gradual text reveal is desired; keep it off when animation cost matters more. Vue 3 append fades use stable batches (200 ms, 50 ms coalescing window, at most four batches per text node); later appends do not restart earlier batches.
- **Streaming vs recovering history**: in chat UIs the same `MarkdownRender` starts streaming and later switches to history when `final=true`.
- Streaming: start with `mode="chat"` and `final`; add `fade` for text reveal and `typewriter` only when a cursor is wanted.
- Recovering/completed chat history: keep `mode="chat"` on the same chat row; use `:smooth-streaming="false"`, `typewriter=false`, and choose `fade` independently for the desired entry/reveal effect. Do not bind it to the inverse of streaming state unless that visual policy is intentional.
- Use `mode="minimal"` for lightweight non-chat recovered content, and use `mode="docs"` only for rich document surfaces.
- In SSR, avoid `smooth-streaming="true"` on first-screen content; the mounted gate inside `auto` prevents hydration mismatch.
- Remember that `html-policy` now defaults to `safe`, and Mermaid strict mode is on by default through `mermaid-props`.
6. Validate with the smallest relevant Nuxt dev, build, or typecheck command.
## Default Decisions
- SSR safety comes before feature completeness.
- Omit `mode` only when the surface should use rich docs defaults.
- Smooth streaming is SSR-safe in `auto` mode (the default) because it gates on mount. Do not use `smooth-streaming="true"` for first-screen SSR content — it bypasses the mounted gate and can cause hydration mismatch or blank flash.
- For a non-virtual chat scroller, import `useStickToBottom` from `markstream-vue/utils` and call `scheduleScrollToBottom()` after Vue commits new content. The composable attaches browser listeners after mount; use `MarkstreamVirtualTimeline` with `stick-to-bottom="auto"` for long mixed timelines.
- Avoid import-time access to browser globals from server code paths.
- Treat the enhanced code runtime, Mermaid workers, and similar heavy peers as client-only unless the repo already has a proven SSR pattern.
- For large code blocks, the optional off-thread highlight pool (`setStreamDiffsWorkerPool` from `markstream-vue`, backed by an upstream `@pierre/diffs` `WorkerPoolManager`) is also client-only: inject it in a client-only plugin/component, never in server code paths.
- Enhanced code blocks in every Markstream package use `stream-diffs`; do not install `stream-monaco`.
- Use top-level `code-block-options` for supported built-in code-surface configuration. Keep theme, code/language, streaming lifecycle, header, mounting, reveal, and disposal under Markstream's control.
- Keep `html-policy="safe"` and Mermaid strict mode unless the task is preserving trusted legacy rendering.
- If a trusted client-only surface needs older behavior, opt out locally with `html-policy="trusted"` and `:mermaid-props="{ isStrict: false }"`, and document why that surface is trusted.
## Useful Doc Targets
- `docs/nuxt-ssr.md`
- `docs/guide/installation.md`
- `docs/guide/usage.md`
- `docs/guide/troubleshooting.md`From Simon-He95/markstream-vue, MIT.
More from Simon-He95/markstream-vue
- 0.842score
markstream-migration
Simon-He95
Audit and migrate existing Markdown rendering to Markstream, or upgrade a markstream-vue 1.x integration to 2.x.
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
markstream-install
Simon-He95
Install and wire markstream-vue, markstream-react, markstream-vue2, markstream-angular, or markstream-svelte into an existing repository.
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
markstream-custom-components
Simon-He95
Override built-in Markstream node renderers and add trusted custom tags across Vue, React, Svelte, and Angular.
SkillAFreshness: A★ 3KClaude Code +9 - 0.837score
markstream-vue2
Simon-He95
Integrate markstream-vue2 into a Vue 2.6 or 2.7 app.
SkillAFreshness: A★ 3KClaude Code +9 - 0.837score
markstream-vue
Simon-He95
Integrate markstream-vue into a Vue 3 app.
SkillAFreshness: A★ 3KClaude Code +9 - 0.837score
markstream-svelte
Simon-He95
Integrate the beta markstream-svelte package in Svelte 5 or SvelteKit apps.
SkillAFreshness: A★ 3KClaude Code +9 - 0.837score
markstream-react
Simon-He95
Integrate the beta markstream-react package into a React 18+ or Next app.
SkillAFreshness: A★ 3KClaude Code +9 - 0.837score
markstream-angular
Simon-He95
Integrate the alpha markstream-angular package into an Angular 20+ app.
SkillAFreshness: A★ 3KClaude Code +9 - 0.837score
markstream-vue2-vite
Simon-He95
Integrate markstream-vue2 into a Vue 2 plus Vite app.
SkillAFreshness: A★ 3KClaude Code +9 - 0.837score
markstream-vue2-cli
Simon-He95
Integrate markstream-vue2 into a Vue 2 Vue CLI or Webpack 4 app.
SkillAFreshness: A★ 3KClaude Code +9 - 0.620score
AGENTS.md · Simon-He95/markstream-vue
Simon-He95
AGENTS.md from Simon-He95/markstream-vue: 43 lines covering Project Structure & Module Organization, Build, Test, and Development Commands, Coding Style &…
TemplateAFreshness: A★ 3KCodex +5
Compare and alternatives
Signals
- Stars
- 3,033
- Forks
- 188
- Open issues
- 1
- Last commit (this folder)
- Sep 9, 2026 (1 month ago)
- Last release
- Oct 18, 2026 (10 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Simon-He95/markstream-vue
- Website
- markstream.simonhe.me
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Simon-He95
- 0.842score
markstream-migration
Simon-He95
Audit and migrate existing Markdown rendering to Markstream, or upgrade a markstream-vue 1.x integration to 2.x.
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
markstream-install
Simon-He95
Install and wire markstream-vue, markstream-react, markstream-vue2, markstream-angular, or markstream-svelte into an existing repository.
SkillAFreshness: A★ 3KClaude Code +9 - 0.842score
markstream-custom-components
Simon-He95
Override built-in Markstream node renderers and add trusted custom tags across Vue, React, Svelte, and Angular.
SkillAFreshness: A★ 3KClaude Code +9 - 0.837score
markstream-vue2
Simon-He95
Integrate markstream-vue2 into a Vue 2.6 or 2.7 app.
SkillAFreshness: A★ 3KClaude Code +9 - 0.837score
markstream-vue
Simon-He95
Integrate markstream-vue into a Vue 3 app.
SkillAFreshness: A★ 3KClaude Code +9 - 0.837score
markstream-svelte
Simon-He95
Integrate the beta markstream-svelte package in Svelte 5 or SvelteKit apps.
SkillAFreshness: A★ 3KClaude Code +9
Cite this page
markstream-nuxt skill. Agent Mart. https://agentmart.dev/skills/simon-he95-markstream-nuxt (last updated 2026-10-24)