Spectre.Console Documentation

Create beautiful console applications with Spectre.Console

Welcome to the Spectre.Console documentation! Spectre.Console is a .NET library that makes it easier to create beautiful, cross-platform console applications.

What is Spectre.Console?

Spectre.Console is a library that helps you create rich, interactive console applications with features like:

  • Rich Text Formatting: Colors, styles, and markup language
  • Tables and Trees: Display structured data beautifully
  • Charts and Visualizations: Bar charts, breakdown charts, and more
  • Progress Indicators: Progress bars, spinners, and status displays
  • Interactive Prompts: User input with validation and selection menus
  • Layout System: Panels, grids, and alignment controls

Getting Started

Choose your learning path:

Tutorials

Start here if you're new to Spectre.Console:

How-To Guides

Learn how to accomplish specific tasks:

Reference

Quick lookups and API details:

Explanation

Understand the concepts and design:


Widget Documentation

Explore detailed documentation for each Spectre.Console widget:

Layout Widgets

Build structured layouts and organize content:

  • Table - Tabular data with columns, rows, and borders
  • Panel - Bordered boxes with headers
  • Grid - Row and column layouts without borders
  • Columns - Side-by-side content
  • Rows - Vertical stacking
  • Layout - Complex multi-section layouts
  • Padder - Add padding around content
  • Align - Control content alignment

Visual Widgets

Create visual elements and decorations:

  • Rule - Horizontal dividers and separators
  • Tree - Hierarchical data structures
  • Canvas - Pixel-level graphics with Braille characters
  • CanvasImage - Display images in console
  • FigletText - Large ASCII art text banners

Chart Widgets

Visualize data with charts:

Special Widgets

Specialized content rendering:

  • Json - Syntax-highlighted JSON display
  • TextPath - Smart file path truncation
  • Text - Precise text rendering control

Live Rendering

Create dynamic, updating console displays:


Interactive Prompts

Gather user input with validation: