
This guide introduces Perigon.CLI, its capabilities, value, and technology choices so you can quickly judge whether it fits your needs and make an informed decision.
Perigon is a streamlined form of "peregrine," referring to the peregrine falconโa remarkably swift bird of prey that symbolizes efficiency and agility. Additionally, the word "Perigon" itself carries the meaning of "panorama," reflecting the tool's commitment to delivering comprehensive development support and empowering developers to build applications efficiently.
Perigon.CLI is a .NET-based tool distributed through NuGet. It offers four core capabilities:
In short, Perigon.CLI builds on solution templates and automates code generation to help you deliver business features efficiently.
Perigon.CLI targets common pain points to raise overall development efficiency:
It also supports custom code generation and integrates an MCP Server so you can drive generation with natural language inside your IDE.
The overarching goal is to supply a solid framework and toolset for quickly building backend services and frontend applications:
The result is faster delivery, a better coding experience, rapid implementation of business needs, and lower development cost and risk.
Perigon.CLI focuses on mainstream, general-purpose scenarios, but it may not fit if you require:
Details:
Using the default template and tech stack lets you fully leverage built-in generation and maximize efficiency.
Note
The project template is an ASP.NET Core Web API. It does not restrict any libraries or development approaches. To reduce complexity, we choose effective defaults and provide generation options out of the box.
Important
You can build custom generators for other ORMs or patterns and bypass the built-ins, but you must configure them and own the associated trade-offs. See Advanced topics.
Perigon.CLI is both general-purpose and flexible:
Included by default in the template:
Runtime components integrated via Aspire Tooling; not included in the template by default:
In object-oriented design, classes and interfaces model real or abstract entities and their relationships. Whether you are handling business logic, data access, backend services, or frontend apps, everything revolves around these entities.
Entity definitions are the starting point. Code generation uses Roslyn to analyze entities and automatically produce DTOs, database queries, and API services. OpenAPI describes the interfaces for frontend/backend interaction and enables multi-language client generation. Names, comments, and attributes defined on entities flow through the generation pipeline to keep everything consistent and accurate.
Beyond coding, environment setup, configuration, debugging, testing, documentation, and client integration consume significant effort. We encourage focusing on code and business logic while reducing peripheral work:
graph TD;
Entity[Entity]
Dto[Dto]
Controller[API]
Manager[Manager]
Entity-->|Generate|Dto;
Entity-->|Generate|Manager;
Entity-->|Generate|Controller;
DTO/Manager/Controller relationship:
graph RL;
Dto[Dto]
Controller[API]
Manager[Manager]
Manager-->|Uses|Dto;
Controller-->|Calls|Manager;
Controller-->|Uses|Dto;
One command can generate CRUD-ready code and usable APIs; you can extend from there.
We avoid debates over patterns for their own sake. Development should serve customer needs and business outcomes.
Fast does not mean low quality. Poor code slows you down. Speed comes from solid architecture plus tools that generate clean, conventional code so you can focus on business logic and skip unproductive disputes.