cocouvi / xn-orchestrator
Installs and configures Laravel packages from a community-driven catalog
Fund package maintenance!
Requires
- php: ^8.3
- composer/semver: ^3.4
- illuminate/contracts: ^10.0||^11.0||^12.0||^13.0
- spatie/laravel-package-tools: ^1.16
- symfony/process: ^7.0||^8.0
- symfony/yaml: ^7.0||^8.0
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.8
- orchestra/testbench: ^11.0.0||^10.0.0||^9.0.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- spatie/laravel-ray: ^1.35
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Install and configure Laravel packages from a catalog directly from the CLI.
Features
-
Interactive installer : browse by category and accumulate packages in a cart across selections
-
YAML-driven catalog : one file per package, easy to read and contribute; no PHP required to add entries
-
Dependency resolution : missing
depends_onpackages are offered before installation,conflicts_withblocks incompatible combinations, circular dependencies are detected -
Compatibility checks : packages are tagged
⚠ incompatiblewhen they do not support your current Laravel or PHP version (or hidden entirely via config), with an explicit confirmation before forcing the install -
Failure reporting : a failing step stops the installation and reports the affected packages
-
Install logging : installations are recorded in a dedicated log channel for auditing what was run and when
Installation
You can install the package via composer:
composer require cocouvi/xn-orchestrator --dev
Usage
Start the interactive installer:
php artisan x:install
The main menu lets you:
- Browse categories : choose a category, select packages, then press
Enterto add them to the cart - Finish and install : resolve dependencies, confirm compatibility when needed, then execute the selected package steps
- Quit : leave the installer
Press Esc to go back or exit. Esc cancels the current package selection; use Enter to save the checked packages first. The menu always displays the current number of selected packages.
The catalog
The bundled catalog ships 24 essential packages across 15 categories:
| Category | Packages |
|---|---|
| Admin Panels | filament/filament |
| Authentication | laravel/sanctum, laravel/breeze, laravel/jetstream, laravel/socialite |
| Authorization | spatie/laravel-permission |
| Backups | spatie/laravel-backup |
| Billing | laravel/cashier |
| Debugging | laravel/telescope, barryvdh/laravel-debugbar, laravel/pulse |
| Development | barryvdh/laravel-ide-helper, reliese/laravel, mrpunyapal/laravel-auditor |
| Exports | maatwebsite/excel, barryvdh/laravel-dompdf |
| Frontend | livewire/livewire |
| Media | spatie/laravel-medialibrary |
| Queues | laravel/horizon |
| Scheduling | laravel-zap |
| Real-Time | laravel/reverb |
| Scaffolding | devalade/crudify |
| Search | laravel/scout |
| Testing | pestphp/pest, laravel/dusk |
Contributing packages
Adding a package to the catalog is a single YAML file. Schema:
name: spatie/laravel-permission # composer package name (required) category: Authorization # category shown in the menu (required) tags: [roles, permissions, acl] # package metadata install: # commands executed in order (required) - 'composer require spatie/laravel-permission' - 'php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"' - 'php artisan migrate' supported: laravel: ['^11.0', '^12.0', '^13.0'] # version constraints checked against app()->version() php: '^8.3' # constraint checked against PHP_VERSION depends_on: [] # composer names installed first conflicts_with: [] # composer names that cannot coexist
Validate your entry before submitting a PR:
vendor/bin/testbench x:catalog:validate
# or validate a specific directory
vendor/bin/testbench x:catalog:validate resources/catalog
Invalid or malformed files are skipped with a warning at load time, so one broken entry never breaks the whole catalog — but they will be reported by the validator.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Credits
Windows
Windows users can run xn-orchestrator, but for the best experience, WSL (Windows Subsystem for Linux) is recommended.
The interactive CLI relies on terminal features that work more reliably in a POSIX environment such as WSL.
License
The MIT License (MIT). Please see License File for more information.