markstream-custom-components
Override built-in Markstream node renderers and add trusted custom tags across Vue, React, Svelte, and Angular.
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-custom-components
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-custom-components
What's inside
- Skill name
markstream-custom-components- Description
- Override built-in Markstream node renderers and add trusted custom tags across Vue, React, Svelte, and Angular. Use when Codex needs scoped `setCustomComponents`, renderer-local React `streamingComponents` or `htmlComponents`, Angular/Svelte `customComponents`, Vue app-scoped components, node override keys such as `image`, `code_block`, `mermaid`, or `link`, or nested renderers for tags such as `thinking`.
- License
- MIT
- Instructions
- 50 lines in SKILL.md · view on GitHub
Files (3)
- SKILL.md
- openai.yaml · agents/
- patterns.md · references/
SKILL.md (first lines)
# Markstream Custom Components
Use this skill when the task is to change how Markstream renders specific nodes or custom tags.
Read [references/patterns.md](references/patterns.md) before choosing an override strategy.
## Workflow
1. Classify the request.
- `built-in override`: replace an existing renderer such as `image`, `link`, `code_block`, `mermaid`, `d2`, or `inline_code`.
- `custom tag`: support trusted HTML-like tags such as `thinking`.
- `parser-level`: requires token transforms or AST reshaping. Only then should you leave this skill and use low-level parser hooks.
2. Prefer scoped mappings.
- Vue, Vue 2, Svelte, and shared Angular registration: use `setCustomComponents(customId, mapping)` instead of global mappings whenever practical, and pass the same `customId` / `custom-id`.
- React custom tags: prefer renderer-local `streamingComponents` for parser-backed nodes or `htmlComponents` for sanitized HTML props plus `children`. Use `defineStreamingComponents(...)` / `defineHtmlComponents(...)` for typed maps. Keep `setCustomComponents` for built-in node overrides or shared legacy registration.
- Svelte and Angular can also pass a renderer-local `customComponents` map when the override should not enter the shared registry.
- In Vue 3 app/plugin setup, import `{ VueRendererMarkdown }` from `markstream-vue` and install it with `{ components }` when the override should be scoped to the Vue app instance.
3. Start with the smallest safe override.
- Leaf-like nodes (`image`, `link`, `inline_code`, `mermaid`) are easier than container nodes (`heading`, `paragraph`, `list_item`).
- If the request only changes Mermaid, use `mermaid`, not `code_block`.
4. Preserve nested Markdown when needed.
- For trusted custom tags with inner Markdown, render `node.content` with a nested renderer.
- Pass the same custom-tag allowlist to nested renderers.
- Nested renderers inside a smooth-streaming parent are automatically suppressed from double pacing — do not add `smooth-streaming` to child renderers.
- In React, `streamingComponents` automatically contributes its keys to the effective custom-tag list; do not duplicate those keys in `customHtmlTags` unless another parser path needs them.
5. Keep props and cleanup intact.
- Preserve `node`, `loading`, `indexKey`, `customId`, and `isDark`.
- For `mermaid` and `infographic` overrides, preserve `estimatedPreviewHeightPx` so async preview shells keep stable height during remounts.
- Remove temporary scoped mappings with `removeCustomComponents(customId)` when the scope is no longer needed.
6. Validate with the smallest useful check.
- Prefer a local demo, targeted test, or docs build.
- Call out whether the implementation is safe for repeated and nested custom tags.
## Default Decisions
- Scoped overrides first, global overrides only when the whole app truly needs them.
- Leaf-node overrides before container-node overrides.
- `customHtmlTags` plus scoped custom components before parser hooks.
- In React, renderer-local component maps before registry mutation.
- Nested renderers for tag bodies that contain Markdown.
## Useful Doc Targets
- `docs/guide/component-overrides.md`
- `docs/guide/custom-components.md`
- `docs/guide/react-components.md`
- `docs/guide/components.md`
- `docs/guide/advanced.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.837score
markstream-angular
Simon-He95
Integrate the alpha markstream-angular package into an Angular 20+ app.
SkillAFreshness: A★ 3KClaude Code +9 - 0.837score
markstream-nuxt
Simon-He95
Integrate markstream-vue into a Nuxt 3 or Nuxt 4 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.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.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
Featured in
Signals
- Stars
- 3,033
- Forks
- 188
- Open issues
- 1
- Last commit (this folder)
- Jul 21, 2026 (3 months ago)
- Last release
- Oct 18, 2026 (9 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-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-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.837score
markstream-nuxt
Simon-He95
Integrate markstream-vue into a Nuxt 3 or Nuxt 4 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.837score
markstream-vue2
Simon-He95
Integrate markstream-vue2 into a Vue 2.6 or 2.7 app.
SkillAFreshness: A★ 3KClaude Code +9
Cite this page
markstream-custom-components skill. Agent Mart. https://agentmart.dev/skills/simon-he95-markstream-custom-components (last updated 2026-10-24)