Albatross.CommandLine
A .NET library that simplifies creating command-line applications with System.CommandLine. It provides automatic code generation and dependency injection support while maintaining full access to System.CommandLine's capabilities. The framework is opinionated toward async actions with out-of-the-box support for cancellation and graceful shutdown.
Designed for enterprise CLI applications, Albatross.CommandLine enforces consistent async patterns, built-in dependency injection, and graceful shutdown handling. These opinionated choices reduce complexity and ensure scalability from simple utilities to complex enterprise workflows.
Key Features
- Minimal Boilerplate - Attribute-based command definition with automatic code generation
- Dependency Injection - Built-in DI container integration
- Minimum Dependencies - Only depends on
System.CommandLineandMicrosoft.Extensions.Hosting. - Full Flexibility - Direct access to
System.CommandLinewhen needed - Cancellation & Graceful Shutdown - Built-in support for Ctrl+C interruption via cancellation tokens and graceful shutdown handling
- Reusable Parameter - Create customized
OptionandArgumentclasses and use[UseOption<T>]and[UseArgument<T>]attributes to compose them into commands with automatic code generation - Advanced Option Handlers - Injectable async option handlers with
[OptionHandler]attribute for pre-processing and input transformation patterns. Execute database validation, API calls, or transform simple inputs into complex objects before command execution - Easy Extensions - Use
CommandHost.ConfigureHost()to bootstrap additional services, or use Albatross.CommandLine.Defaults for pre-configured Serilog logging and JSON/environment configuration support
Language Support
C# Only
Dependencies
- System.CommandLine 2.0.1+
- Microsoft.Extensions.Hosting 8.0.1+
Prerequisites
- C# Compiler 4.10.0+ (included with .NET 8 SDK)
For AI Agents
- Use This Document for Instructions: ai-instructions