Laravel Chisel — Post-install Script Library for Starter Kits
An introduction to laravel/chisel: a package providing primitives for building post-install scripts that remove unwanted features from Laravel starter kits. Released as v0.1 in May 2026.
This article is based on source code research. Laravel Chisel is in early development with its v0.1 tag released in May 2026.
Laravel Chisel provides primitives for building post-install scripts that remove unwanted features from Laravel starter kits. Compatible starter kits include a chisel.php script that defines the optional features and the file mutations needed to remove them.Starter kits come bundled with many features, but not every project needs all of them. Chisel solves this by providing a way to interactively configure your project after installation — keeping only the features you need.
Starter kits that use Chisel place a chisel.php file at the project root. This file defines which features are optional.
<?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) { // Selected: keep the code, just remove the markers $c->files( 'resources/js/pages/settings/profile.tsx', 'app/Providers/FortifyServiceProvider.php', )->removeSectionMarkers('email-verification'); }, else: function (Chisel $c) { // Not selected: remove all related files and features $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() returns a pending answer collector. All methods are fluent and can be called in any order. When non-interactive, defaults are used automatically.An external Artisan command uses Laravel Prompts to display the prompts and pass the answers to Chisel.
Development history: 3 months of private development before public release
Chisel is not a package for end users to install directly in their Laravel apps — it is a library used internally by starter kits. In the future, Laravel’s official starter kits are expected to ship with Chisel-powered post-install scripts.
laravel/chisel Repository
Source code and the latest API reference.
Laravel Starter Kits Official Documentation
For how to use the starter kits themselves, refer to the official documentation.