What is pi-cli?
pi-cli is the most flexible cross-platform framework for building modern terminals.
Build enterprise-grade unicode terminals for your company, product, service, or developer tools. We support customers across engineering, manufacturing, semiconductors, technology, hardware, software, automation, digital industries, artificial intelligence, machine learning, finance, media, and creative design.
Start with simple terminal apps with a few flags or build advanced terminals with groups, sub-commands, arguments, and options.
Take your app or service to the command line with Unicode support and build terminals in a user language of your choice.
We crafted the
pi-cli framework to be cross-platform, modular, deployment agnostic, and fully customizable. .NET provides a rich set of DDD tools and languages.
pi-cli directly supports the .NET (traditional), .NET Standard, .NET6+ (.NET Core), and ASP.NET Core. It lets enterprises build ground-up terminals or migrate their existing console apps to terminals. Thus it is the de-facto standard in developing cross-platform terminals for your apps, services, and developer tools in the entire .NET ecosystem.
- Build and configure your terminal using microservices-based architecture principles, Dependency Injection(DI services), and options pattern.
- Use default handlers or provide custom implementations to handle terminal UX, command parsing, error handling, command validations, storage, and type checking.
- Use default console routing, default TCP/IP client-server routing, or define your custom HTTP, Named-Pipes, or gRPC routing.
- Provide self-hosting implementations for stores and hosts in an environment of your choice, e.g., Windows, Linux, macOS, Docker, Kubernetes, etc.
- Build deployment agnostic terminals with all dependencies, test them in local environments, and deploy the production terminals on-premise, cloud (public, private, or government), or hybrid.
- Enable enterprise-grade secured terminal applications for your products and services similar to Github CLI, .NET CLI, Stripe CLI or terminals with custom formats.
- Collaborate in an open-source environment, troubleshoot issues, and provide your feedback on the features and documentation
- Use demo license for quick onboarding, testing, and evaluating ready-to-use samples on GitHub. No account is needed.
The framework handles the entire terminal infrastructure, so your focus is building modern terminal apps and services.
In short, if what you want to achieve is doable in the .NET ecosystem, it is possible with
Our entire source code is on GitHub. It enables community collaboration, troubleshoot issues, and helps get us your feedback on the features and documentation. It also promotes a better understanding of architecture and design.
Our DevOps builds the framework with Github hosted runners for the following OS platform. However, it supports all the additional platforms that .NET supports.
The licensed libraries can be accessed via Nuget:
The GitHub repo contains the artifacts to build, test and publish the
pi-cli framework does not enforce any specific terminal UX experience because this is always custom to the project. However, we provide you with a hosted service to manage the terminal application lifetime and UX customization.
Learn to Use
pi-cli framework, you don't have to be a microservices or distributed systems expert to build a modern and scalable terminal apps. You create and learn as you go on, and eventually, you become an expert :) similar to an eventually-consistent system. Build terminals for simple use cases, terminals that provides complex commands or options, or terminals that interact with a complex distributed system via protected APIs. We believe in agile development and agile learning. So, pick a learning model that works for you!
I want to explore the samples on GitHub
- Use our demo license for quick onboarding, evaluation, and testing sample code base on GitHub
- No account is needed
I want to create my first modern terminal
- Start by subscribing or buying the
- Pick a pricing plan that works for you.
- Activate your subscription on our Consumer Portal.
- Generate your online, offline, dev, or on-premise license keys.
- Browse our read-to-use templates and tutorials.
- Build, debug, and learn the concepts as you go.
- We can't wait to see the fantastic terminals you build!
I want to understand the concepts first
Continue reading, and we will explain all the concepts. We recommend you get familiar with the typical architectural principles first. They enable our framework to be extensible, customizable and remain scalable.
- Dependency Injection
- Dependency Inversion
- Options Patterns
- Separation of concerns
- Single Responsibility
- Bounded Context
Code Samples and Tutorials
Licensing and Pricing
The software license and pricing model is flexible and fits all, whether you are a developer, solo entrepreneur, small-medium business, large enterprise, or a service vendor.
Issues and feature requests
Please report issue or feature request directly on our official github repo.