A declarative, ASP.NET Core-inspired framework for building interactive and direct-mode command-line applications in .NET.
Typin is a declarative framework for building command-line applications in .NET. It enables developers to create both interactive CLI applications and command-line tools using an attribute-based, ASP.NET Core-inspired approach. The framework handles argument parsing, command routing, and application infrastructure, allowing developers to focus on implementing business logic.
.NET developers building command-line tools, utilities, or interactive terminal applications who prefer a structured, declarative framework with modern .NET ecosystem integration.
Developers choose Typin for its rich feature set, including interactive mode with auto-completion, a middleware pipeline, and deep integration with the .NET dependency injection and configuration systems. It offers greater flexibility and extensibility compared to simpler parsers, while maintaining competitive performance.
Declarative framework for interactive CLI applications
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes built-in interactive mode with auto-completion, command history, and user-defined shortcuts, as highlighted in the features list, making it ideal for terminal applications.
Supports a customizable pipeline for cross-cutting concerns like logging and validation, similar to ASP.NET Core, allowing for clean separation of infrastructure code.
Natively integrates with Microsoft.Extensions.DependencyInjection, logging, and options, providing a seamless experience for .NET developers familiar with these patterns.
Handles conversions for built-in types, custom types, and newer .NET types like DateOnly and TimeOnly, reducing manual parsing code.
Benchmarks show Typin is slower than alternatives like CliFx, with higher execution times per command, which may impact latency-sensitive tools.
The attribute-based declarative approach and dependency injection configuration require more boilerplate and familiarity with ASP.NET Core patterns compared to simpler parsers.
As a newer project, Typin has a smaller ecosystem of third-party integrations and plugins compared to more established CLI libraries, which might limit out-of-the-box functionality.