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:
- Spectre.Console vs Traditional Output
- Understanding Spectre.Console's Rendering Model
- Best Practices for Console Applications
- Extending with Custom Renderables
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:
- BarChart - Horizontal and vertical bar charts
- BreakdownChart - Proportional data segments
- Calendar - Monthly calendars with events
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:
- Progress - Progress bars for long-running tasks
- Status - Animated status with spinners
- Live Display - Update any content in real-time
- Async Patterns - Best practices for async operations
Interactive Prompts
Gather user input with validation:
- TextPrompt - Text input with validation
- SelectionPrompt - Single-choice selection
- MultiSelectionPrompt - Multiple-choice selection