Project

ChartForgeX

Render deterministic charts, dashboards, topology, hierarchy, and report visuals directly from .NET.

Stars 47
Forks 2
NuGet downloads 75,067
Release ChartForgeX-v2.0.0
Language: HTML Updated: 2026-10-12

API Reference

Class

TerminalStory

Namespace ChartForgeX.Terminal
Assembly ChartForgeX.Stories
Modifiers sealed

Models a deterministic, script-free animated terminal presentation.

Inheritance

  • Object
  • TerminalStory

Usage

Explore 58 API references to this type

This type appears in these public API surfaces even when no hand-authored example is attached directly to the page.

Accepted by parameters 33

Methods

public TerminalStory Blank() #
Returns: TerminalStory

Adds a blank output line.

public TerminalStory Command(String command, Double durationSeconds = 0) #
Returns: TerminalStory

Adds a typed command.

Parameters

command System.String requiredposition: 0
durationSeconds System.Double = 0 optionalposition: 1
public static TerminalStory Create() #
Returns: TerminalStory

Creates an empty terminal story.

public TerminalStory DeclareTab(String id, String title, TerminalDialect dialect, String workingDirectory, TerminalTheme theme, TerminalTabIcon icon = Terminal, String? customPrompt = null) #
Returns: TerminalStory

Declares a persistent terminal tab without changing the active tab.

Parameters

id System.String requiredposition: 0
title System.String requiredposition: 1
dialect ChartForgeX.Terminal.TerminalDialect requiredposition: 2
workingDirectory System.String requiredposition: 3
theme ChartForgeX.Terminal.TerminalTheme requiredposition: 4
icon ChartForgeX.Terminal.TerminalTabIcon = Terminal optionalposition: 5
customPrompt System.String? = null optionalposition: 6
public TerminalStory OpenTab(String id, String title, TerminalDialect dialect, String workingDirectory, TerminalTheme theme, TerminalTabIcon icon = Terminal, String? customPrompt = null, Double transitionSeconds = 0.2) #
Returns: TerminalStory

Declares and activates a persistent terminal tab.

Parameters

id System.String requiredposition: 0
title System.String requiredposition: 1
dialect ChartForgeX.Terminal.TerminalDialect requiredposition: 2
workingDirectory System.String requiredposition: 3
theme ChartForgeX.Terminal.TerminalTheme requiredposition: 4
icon ChartForgeX.Terminal.TerminalTabIcon = Terminal optionalposition: 5
customPrompt System.String? = null optionalposition: 6
transitionSeconds System.Double = 0.2 optionalposition: 7
public TerminalStory Output(String text, TerminalTextTone tone = Default) #
Returns: TerminalStory

Adds one or more output lines.

Parameters

text System.String requiredposition: 0
tone ChartForgeX.Terminal.TerminalTextTone = Default optionalposition: 1
public TerminalStory Pause(Double seconds) #
Returns: TerminalStory

Adds a silent pause to the animation timeline.

Parameters

seconds System.Double requiredposition: 0
public TerminalStory Progress(String label, Double fraction, Int32 width = 22) #
Returns: TerminalStory

Adds a compact text progress bar.

Parameters

label System.String requiredposition: 0
fraction System.Double requiredposition: 1
width System.Int32 = 22 optionalposition: 2
public TerminalStory SelectTab(String id, Double transitionSeconds = 0.2) #
Returns: TerminalStory

Activates a previously declared terminal tab without clearing its buffer.

Parameters

id System.String requiredposition: 0
transitionSeconds System.Double = 0.2 optionalposition: 1
public TerminalStory Table(TerminalTable table) #
Returns: TerminalStory

Adds a formatted terminal table.

Parameters

table ChartForgeX.Terminal.TerminalTable requiredposition: 0
public TerminalStory Transcript(IEnumerable<String> lines, TerminalTextTone tone = Default) #
Returns: TerminalStory

Adds captured transcript lines.

Parameters

lines System.Collections.Generic.IEnumerable<System.String> requiredposition: 0
tone ChartForgeX.Terminal.TerminalTextTone = Default optionalposition: 1
public TerminalStory WithDialect(TerminalDialect dialect, String? customPrompt = null) #
Returns: TerminalStory

Sets the prompt dialect and optional custom prompt.

Parameters

dialect ChartForgeX.Terminal.TerminalDialect requiredposition: 0
customPrompt System.String? = null optionalposition: 1
public TerminalStory WithFinalPrompt(Boolean visible = true) #
Returns: TerminalStory

Configures whether the completed story shows a final prompt.

Parameters

visible System.Boolean = true optionalposition: 0
public TerminalStory WithInitialTab(String id, String title, TerminalDialect dialect, String workingDirectory, TerminalTheme theme, TerminalTabIcon icon = Terminal, String? customPrompt = null) #
Returns: TerminalStory

Defines the initial persistent terminal tab before timeline authoring begins.

Parameters

id System.String requiredposition: 0
title System.String requiredposition: 1
dialect ChartForgeX.Terminal.TerminalDialect requiredposition: 2
workingDirectory System.String requiredposition: 3
theme ChartForgeX.Terminal.TerminalTheme requiredposition: 4
icon ChartForgeX.Terminal.TerminalTabIcon = Terminal optionalposition: 5
customPrompt System.String? = null optionalposition: 6
public TerminalStory WithPlaybackSpeed(TerminalStoryPlaybackSpeed speed) #
Returns: TerminalStory

Applies a reusable playback pace for typing, output reveals, and tab reading time.

Parameters

speed ChartForgeX.Terminal.TerminalStoryPlaybackSpeed requiredposition: 0
public TerminalStory WithPngOutputScale(Int32 scale) #
Returns: TerminalStory

Sets the PNG output density multiplier.

Parameters

scale System.Int32 requiredposition: 0
public TerminalStory WithTabHold(Double seconds) #
Returns: TerminalStory

Sets the minimum reading time after new content appears and before the active tab changes.

Parameters

seconds System.Double requiredposition: 0
public TerminalStory WithTheme(TerminalTheme theme) #
Returns: TerminalStory

Sets the terminal theme.

Parameters

theme ChartForgeX.Terminal.TerminalTheme requiredposition: 0
public TerminalStory WithTiming(Double initialDelaySeconds, Double charactersPerSecond, Double lineDelaySeconds) #
Returns: TerminalStory

Sets automatic animation timing.

Parameters

initialDelaySeconds System.Double requiredposition: 0
charactersPerSecond System.Double requiredposition: 1
lineDelaySeconds System.Double requiredposition: 2
public TerminalStory WithTitle(String title) #
Returns: TerminalStory

Sets the terminal title.

Parameters

title System.String requiredposition: 0
public TerminalStory WithTypography(Double fontSize, Double lineHeight) #
Returns: TerminalStory

Sets terminal typography.

Parameters

fontSize System.Double requiredposition: 0
lineHeight System.Double requiredposition: 1
public TerminalStory WithWidth(Int32 width) #
Returns: TerminalStory

Sets the logical SVG width.

Parameters

width System.Int32 requiredposition: 0
public TerminalStory WithWindowStyle(TerminalWindowStyle style) #
Returns: TerminalStory

Sets the visible terminal window chrome independently of colors and command syntax.

Parameters

style ChartForgeX.Terminal.TerminalWindowStyle requiredposition: 0
public TerminalStory WithWorkingDirectory(String workingDirectory) #
Returns: TerminalStory

Sets the working directory used by shell prompts.

Parameters

workingDirectory System.String requiredposition: 0

Properties

public IReadOnlyList<TerminalStoryStep> Steps { get; } #

Gets the configured steps.

public IReadOnlyList<TerminalTab> Tabs { get; } #

Gets the persistent terminal tabs in display order.

public String ActiveTabId { get; } #

Gets the tab that will be active when the completed story is shown.

public TerminalTheme Theme { get; } #

Gets the terminal theme.

public TerminalWindowStyle WindowStyle { get; private set; } #

Gets the visible terminal window chrome.

public String Title { get; } #

Gets the title-bar text.

public String WorkingDirectory { get; } #

Gets the working directory shown in prompts.

public TerminalDialect Dialect { get; } #

Gets the prompt dialect.

public String CustomPrompt { get; } #

Gets the explicit custom prompt, when configured.

public Int32 Width { get; private set; } #

Gets the logical SVG width.

public Double FontSize { get; private set; } #

Gets the terminal font size.

public Double LineHeight { get; private set; } #

Gets the terminal line height.

public Double InitialDelaySeconds { get; private set; } #

Gets the initial animation delay.

public Double CharactersPerSecond { get; private set; } #

Gets the simulated typing speed.

public Double LineDelaySeconds { get; private set; } #

Gets the delay between output lines.

public Double TabHoldSeconds { get; private set; } #

Gets the minimum time completed tab content remains visible before the next tab switch.

public Boolean ShowFinalPrompt { get; private set; } #

Gets whether a final prompt and cursor are shown.

public Int32 PngOutputScale { get; private set; } #

Gets the PNG output scale.

Extension Methods

public static Void SaveApng(TerminalStory story, String path, TerminalStoryAnimationOptions? options = null) #
Returns: Void

Saves a terminal story as an animated PNG.

Parameters

story ChartForgeX.Terminal.TerminalStory requiredposition: 0
path System.String requiredposition: 1
options ChartForgeX.Terminal.TerminalStoryAnimationOptions? = null optionalposition: 2
public static Void SaveGif(TerminalStory story, String path, TerminalStoryAnimationOptions? options = null) #
Returns: Void

Saves a terminal story as an animated GIF.

Parameters

story ChartForgeX.Terminal.TerminalStory requiredposition: 0
path System.String requiredposition: 1
options ChartForgeX.Terminal.TerminalStoryAnimationOptions? = null optionalposition: 2
public static Void SaveHtml(TerminalStory story, String path) #
Returns: Void

Saves a terminal story as a complete HTML document.

Parameters

story ChartForgeX.Terminal.TerminalStory requiredposition: 0
path System.String requiredposition: 1
public static Void SavePng(TerminalStory story, String path) #
Returns: Void

Saves the completed state of a terminal story as PNG.

Parameters

story ChartForgeX.Terminal.TerminalStory requiredposition: 0
path System.String requiredposition: 1
public static Void SaveSvg(TerminalStory story, String path) #
Returns: Void

Saves a terminal story as SVG.

Parameters

story ChartForgeX.Terminal.TerminalStory requiredposition: 0
path System.String requiredposition: 1
public static Void SaveTranscript(TerminalStory story, String path) #
Returns: Void

Saves the exact terminal transcript as UTF-8 text.

Parameters

story ChartForgeX.Terminal.TerminalStory requiredposition: 0
path System.String requiredposition: 1
public static Byte[] ToApng(TerminalStory story, TerminalStoryAnimationOptions? options = null) #
Returns: Byte[]

Renders a terminal story as an animated PNG.

Parameters

story ChartForgeX.Terminal.TerminalStory requiredposition: 0
options ChartForgeX.Terminal.TerminalStoryAnimationOptions? = null optionalposition: 1
public static Byte[] ToGif(TerminalStory story, TerminalStoryAnimationOptions? options = null) #
Returns: Byte[]

Renders a terminal story as an animated GIF.

Parameters

story ChartForgeX.Terminal.TerminalStory requiredposition: 0
options ChartForgeX.Terminal.TerminalStoryAnimationOptions? = null optionalposition: 1
ToHtmlFragment 2 overloads
public static String ToHtmlFragment(TerminalStory story) #
Returns: String

Renders a terminal story as an embeddable HTML fragment.

Parameters

story ChartForgeX.Terminal.TerminalStory requiredposition: 0
public static String ToHtmlFragment(TerminalStory story, String idScope) #
Returns: String

Renders a terminal story as an embeddable HTML fragment with a deterministic ID scope.

Parameters

story ChartForgeX.Terminal.TerminalStory requiredposition: 0
idScope System.String requiredposition: 1
public static String ToHtmlPage(TerminalStory story) #
Returns: String

Renders a terminal story as a complete HTML document.

Parameters

story ChartForgeX.Terminal.TerminalStory requiredposition: 0
public static Byte[] ToPng(TerminalStory story) #
Returns: Byte[]

Renders the completed state of a terminal story to PNG bytes.

Parameters

story ChartForgeX.Terminal.TerminalStory requiredposition: 0
ToSvg 2 overloads
public static String ToSvg(TerminalStory story) #
Returns: String

Renders a terminal story to SVG markup.

Parameters

story ChartForgeX.Terminal.TerminalStory requiredposition: 0
public static String ToSvg(TerminalStory story, String idScope) #
Returns: String

Renders a terminal story to SVG markup with a deterministic ID scope.

Parameters

story ChartForgeX.Terminal.TerminalStory requiredposition: 0
idScope System.String requiredposition: 1
public static String ToTranscript(TerminalStory story) #
Returns: String

Exports the exact command, output and table transcript in playback order.

Parameters

story ChartForgeX.Terminal.TerminalStory requiredposition: 0

Exceptions

  • InvalidOperationException – The expanded transcript exceeds 16 Mi UTF-16 characters.
public static VisualArtifact ToVisualArtifact(TerminalStory story, String? id = null, VisualArtifactSourceLanguage sourceLanguage = Native) #
Returns: VisualArtifact

Captures the completed terminal display and its command/output transcript.

Parameters

story ChartForgeX.Terminal.TerminalStory requiredposition: 0
id System.String? = null optionalposition: 1
sourceLanguage ChartForgeX.VisualArtifacts.VisualArtifactSourceLanguage = Native optionalposition: 2