Imported from sickn33/agentic-awesome-skills (
skills/markstream-angular/SKILL.md). Install upstream withnpx skills add sickn33/agentic-awesome-skills --skill markstream-angular. Copyright stays with the author (MIT).
Markstream Angular
Overview
Add Markstream to Angular 20+ while preserving standalone-component patterns, signal-friendly bindings, safe rendering defaults, and explicit optional dependencies. Use markstream-install for framework selection; use this skill once Angular is confirmed.
When to Use
Use for Angular-specific standalone imports, CSS, signals, custom tags or components, streaming state, and optional peers. Do not use below Angular 20 or when the application cannot accept an alpha renderer API.
Workflow
Inspect the existing package manager, installed package version and project conventions. A requested scoped integration already authorizes routine source/dependency edits; seek approval only for a material scope expansion or unresolved beta/alpha adoption decision.
- Confirm Angular 20+ and record that
markstream-angularis alpha. - Install the package plus only requested peers. Import
markstream-angular/index.css; add KaTeX CSS only for math. - Import
MarkstreamAngularComponentinto the standalone component'simports. - Start with
[content]and[smoothStreaming]="'auto'". Usenodesplusfinalonly when another layer owns the AST. - For live chat use
[fade]="false"and opt into[typewriter]="true". On completion set[final]="true", disable pacing/cursor, and enable fade only if desired. - Use
[customHtmlTags]and[customComponents]only for trusted tag workflows. - Keep
[htmlPolicy]="'safe'"and Mermaid strict mode unless a narrowly scoped trusted legacy surface requires otherwise. - Validate with the smallest Angular build, typecheck, or dev command.
Example
import { Component, signal } from '@angular/core'
import { MarkstreamAngularComponent } from 'markstream-angular'
import 'markstream-angular/index.css'
@Component({
selector: 'app-answer',
standalone: true,
imports: [MarkstreamAngularComponent],
template: `
<markstream-angular
[content]="markdown()"
[final]="done()"
[fade]="done()"
[typewriter]="!done()"
[smoothStreaming]="done() ? false : 'auto'"
[htmlPolicy]="'safe'"
/>
`,
})
export class AnswerComponent {
markdown = signal('# Streaming answer')
done = signal(false)
}
Limitations
- Requires Angular 20+ and an alpha package.
- Browser-heavy peers may need bundler or client-boundary work.
- This skill does not design the host chat architecture or visual system.
Security & Safety Notes
Review dependency changes before installation. Never broaden HTML or Mermaid trust settings for untrusted model output.
Verify props, export paths and peer ranges against the installed package, not a mutable upstream main. Test partial and completed streams, malformed/untrusted Markdown, links and image URLs, cancellation and reduced motion. Safe HTML and strict diagrams reduce exposure but do not alone enforce URL/network privacy or application component permissions.
