Laravel Chisel — Biblioteca de scripts de post-instalación para starter kits
Presentación de laravel/chisel. Paquete que ofrece primitivas para scripts de post-instalación destinados a eliminar funcionalidades innecesarias de los starter kits. Publicado en mayo de 2026 como v0.1.
Este artículo se basa en la investigación del código fuente. Es un paquete en fase inicial de desarrollo, recién etiquetado como v0.1 (a fecha de mayo de 2026).
Laravel Chisel es un paquete que proporciona primitivas para construir scripts de post-instalación que eliminan funcionalidades innecesarias de los starter kits de Laravel.Los starter kits incluyen muchas funciones predefinidas, pero según el proyecto puede haber funciones que no se necesitan. Chisel resuelve este problema ofreciendo un mecanismo que, tras la instalación, permite de forma interactiva “conservar solo las funciones necesarias”.
Los starter kits de Laravel empaquetan muchas funcionalidades, pero no todos los proyectos necesitan todas ellas. Por ejemplo:
Proyectos que no requieren verificación por email
Proyectos que no usan autenticación con passkeys
Configuraciones que no necesitan ciertos componentes de Livewire
Antes había que eliminar manualmente las funciones innecesarias, pero con Chiel la personalización se completa mediante prompts interactivos en el momento de la instalación.
Los starter kits que usan Chisel colocan un archivo chisel.php en la raíz del proyecto. Ese archivo define “qué funcionalidades son opcionales”.
<?phprequire getenv('LARAVEL_INSTALLER_AUTOLOADER');use Laravel\Chisel\Chisel;use Laravel\Chisel\Question;return Chisel::script(dirname(__DIR__)) ->questions([ Question::multiselect( name: 'auth_features', label: 'Which authentication features would you like to enable?', options: [ 'email-verification' => 'Email verification', ], hint: 'Use space to select, enter to confirm.', ), ]) ->selected('auth_features', 'email-verification', then: function (Chisel $c) { // Si se selecciona: elimina los marcadores de sección y conserva el código $c->files( 'resources/js/pages/settings/profile.tsx', 'app/Providers/FortifyServiceProvider.php', )->removeSectionMarkers('email-verification'); }, else: function (Chisel $c) { // Si no se selecciona: elimina los archivos y funcionalidades relacionados $c->php('app/Models/User.php') ->removeImport('Illuminate\Contracts\Auth\MustVerifyEmail') ->removeInterface('MustVerifyEmail'); $c->file('config/fortify.php')->removeLinesContaining('Features::emailVerification()'); $c->files( 'app/Providers/FortifyServiceProvider.php', 'resources/js/pages/settings/profile.tsx', )->removeSection('email-verification'); $c->files( 'resources/js/components/email-verification-notice.tsx', 'resources/js/pages/auth/verify-email.tsx', 'tests/Feature/Auth/EmailVerificationTest.php', 'tests/Feature/Auth/VerificationNotificationTest.php', )->delete(); }, );
collectAnswers() devuelve un recolector de respuestas. Todos los métodos son fluidos y pueden llamarse en cualquier orden. En entornos no interactivos se usan automáticamente valores por defecto.Un comando Artisan externo muestra el prompt usando Laravel Prompts y pasa las respuestas a Chisel.
php($path) ofrece edición basada en el AST de PHP. Cuando el objeto se descarta, los cambios se guardan automáticamente.Los fundamentos del AST (árbol sintáctico abstracto) de PHP y el uso de nikic/php-parser se explican aquí.
Duración del desarrollo: se publicó tras 3 meses de desarrollo privado
Chisel no es un paquete que los usuarios finales instalen directamente en sus aplicaciones Laravel, sino una biblioteca que los starter kits usan internamente. Se espera que en el futuro los starter kits oficiales de Laravel proporcionen scripts de post-instalación basados en Chisel.
Repositorio laravel/chisel
Aquí puedes consultar el código fuente y la referencia de API más reciente.
Documentación oficial de starter kits de Laravel
Para el uso de los propios starter kits, consulta la documentación oficial.