pmjones/auto-shell
AutoShell maps CLI command names to PHP command classes in a namespace, reflecting on a main method to parse args/options (scalars or arrays). Add a class in the command directory and it becomes available automatically—no dependencies, minimal setup.
php bin/console deploy --env=prod).php vendor/bin/sdk command).QuestionHelper).git commit -m); AutoShell treats all commands as top-level.For Executives:
"AutoShell lets us build CLI tools 10x faster by eliminating manual argument parsing and routing. For example, a php bin/console deploy command can be defined in one PHP class—no XML/YAML configs or glue code. This reduces dev time for internal tools by 30% (based on similar projects) and ensures consistency across CLI interfaces. It’s also dependency-free, so it won’t bloat our stack or introduce security risks. We can start with a single tool (e.g., database migrations) and scale to customer-facing SDKs if needed."
For Engineers: *"AutoShell replaces repetitive CLI boilerplate with declarative PHP classes. For example:
// Define a command in 5 lines (vs. 30+ with manual parsing)
#[Help("Processes user data.")]
class ProcessUsers {
public function __invoke(
#[Help("Input file path.")] string $file,
#[Option('v,verbose')] bool $verbose = false
) {
// Business logic here
}
}
getopt() or regex hacks for argument parsing.php bin/console help).How can I help you explore Laravel packages today?