Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Cli Laravel Package

aura/cli

Aura.Cli provides request/response-style objects for PHP CLI apps: Context for environment and argv discovery, Stdio for input/output, Getopt for option parsing, plus a standalone Help builder to describe commands. Lightweight, no userland deps.

View on GitHub
Deep Wiki
Context7

Command-Line Interface tools

Frequently asked questions about Cli
How does Aura.Cli’s Context class compare to Laravel’s Symfony Console Input/Output for CLI apps?
Aura.Cli’s Context class provides a request-like object for CLI environments, mirroring Laravel’s HTTP request paradigm, while Symfony’s Input/Output focuses on stream handling. Context gives you direct access to `$_ENV`, `$_SERVER`, and `$argv` as immutable objects, which is useful for parsing environment variables or script arguments in a structured way. For Laravel CLI tools, you can use Context alongside Symfony’s Input/Output or replace parts of it for more granular control.
Can I use Aura.Cli to build custom Artisan commands in Laravel?
Yes, Aura.Cli integrates seamlessly with Laravel’s Artisan. You can inject the Context and Stdio objects into your custom commands via Laravel’s service container, replacing or extending Symfony’s Input/Output interfaces. This approach keeps your CLI commands consistent with Laravel’s request/response patterns while offering additional features like Getopt parsing.
What’s the advantage of using Aura.Cli’s Getopt over Symfony’s OptionParser for CLI argument parsing?
Aura.Cli’s Getopt provides a lightweight, standalone solution for parsing command-line options, which can be more straightforward for simple scripts or when you need fine-grained control over argument handling. Unlike Symfony’s OptionParser, it doesn’t require the full Console component and integrates natively with Aura.Cli’s Context/Stdio objects, making it easier to manage CLI input/output in a unified way.
Will Aura.Cli work with Laravel 10, and what PHP version is required?
Aura.Cli requires PHP 7.2+, which aligns with Laravel 10’s minimum PHP version (8.1+). There are no known conflicts with Laravel 10, but always test thoroughly in your environment. The package’s lightweight design ensures compatibility without requiring additional dependencies or Laravel-specific tweaks.
How do I migrate an existing Laravel CLI tool using Symfony Console to Aura.Cli?
Start by wrapping Symfony’s Input/Output in adapter classes to bridge the gap with Aura.Cli’s Stdio. For example, create a `SymfonyStdioAdapter` that converts Symfony’s Input/Output streams to Aura.Cli’s Stdio methods. Gradually replace Symfony-specific logic with Aura.Cli’s Context/Stdio in new commands or features, ensuring backward compatibility during the transition.
Does Aura.Cli support help generation for CLI commands like Symfony’s HelperSet?
Yes, Aura.Cli includes a standalone Help object designed to describe commands and their options in a structured way. Unlike Symfony’s HelperSet, which is tightly coupled to the Console component, Aura.Cli’s Help is lightweight and can be used independently or alongside other CLI tools. It’s ideal for building custom help documentation for Artisan commands or standalone CLI scripts.
Is Aura.Cli actively maintained, and what are the risks of using it in production?
Aura.Cli’s last release was in 2021, and while it’s stable and well-tested, the lack of recent updates may raise concerns about long-term support. However, its BSD-2-Clause license allows for forks or community-driven maintenance. For production use, monitor the repository for updates or consider forking it if critical issues arise. The package’s simplicity reduces risk compared to larger, more complex libraries.
Can Aura.Cli replace Symfony’s Console component entirely in a Laravel project?
Aura.Cli can replace parts of Symfony’s Console, particularly for request-like Context objects and Getopt parsing, but it doesn’t offer the full feature set of Console (e.g., command trees, event dispatchers, or advanced styling). For a full replacement, you’d need to build additional wrappers or combine Aura.Cli with other lightweight libraries. It’s best suited for projects where you want to avoid Symfony’s dependencies or need more control over CLI input/output.
How do I register Aura.Cli’s Context and Stdio in Laravel’s service container?
Bind the Context and Stdio objects in Laravel’s `AppServiceProvider` or a dedicated CLI service provider. For example, register Context as a singleton with `$app->singleton(Context::class, function ($app) { return (new CliFactory)->newContext($GLOBALS); })`. Stdio can be similarly bound and injected into commands or services that require CLI I/O operations. This approach ensures consistency with Laravel’s dependency injection patterns.
Are there performance benefits to using Aura.Cli over Symfony’s Console for CLI tools in Laravel?
Aura.Cli is significantly lighter than Symfony’s Console, as it has no userland dependencies and a smaller footprint. While performance differences may be negligible for most CLI tools, the reduced overhead can be beneficial for scripts running in high-frequency environments or resource-constrained systems. Benchmark your specific use case to confirm, but Aura.Cli is generally faster for simple, structured CLI operations.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky