A minimalist, dependency-free framework for building CLI-centric PHP applications.
Minicli is a minimalist, dependency-free framework for building command-line interface (CLI) applications in PHP. It provides a structured way to organize commands, handle arguments, and manage colored output, solving the need for a lightweight yet scalable CLI development tool. The framework is designed to be simple and unobtrusive, allowing developers to focus on their application logic.
PHP developers who need to build or maintain command-line tools, scripts, or utilities, especially those who prefer minimal dependencies and a clean, structured approach to CLI development.
Developers choose Minicli for its zero-dependency core, which eliminates bloat and gives full control over project dependencies, combined with a flexible structure that supports both quick prototyping and scalable application architecture.
A minimal framework for command-line applications in PHP. Join our Discord: https://discord.gg/hY5UNC4XPf
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Minicli has no user-land dependencies, giving developers full control over their project's dependency tree, as emphasized in the README's 'Dependency-free' section.
Supports command namespaces and controllers for organizing commands into scalable applications, demonstrated in the 'Structured App' setup with directories like app/Command/Help.
Includes built-in themes like Unicorn, Dalton, and Dracula, and allows custom theme creation by extending DefaultTheme, detailed in the 'Color Themes' section.
Enables rapid setup with anonymous functions for commands, making it easy to prototype CLI tools without extensive boilerplate, as shown in the 'Minimalist App' example.
For user input functionality, Minicli requires the PHP readline extension, which might not be available in all environments, adding a system dependency.
Lacks advanced CLI utilities like automatic help generation, table rendering, or progress indicators, which are standard in frameworks like Symfony Console.
While structured, setting up command namespaces and controllers requires manual configuration and directory organization, which can be more effort compared to auto-discovering frameworks.