cocosmos/filament-quick-add-select
Speed up data entry in Filament by enabling users to create and select new relationship options directly from the search dropdown - no modals, no interruptions.
When using Filament's Select component with relationships, users must:
This workflow interrupts the user's flow and slows down data entry.
Quick Add Select adds a "+ Add 'search term'" option directly in the search results. When clicked, it:

You can install the package via composer:
composer require cocosmos/filament-quick-add-select
Simply add ->quickAdd() to any Select component with a relationship:
use Filament\Forms\Components\Select;
Select::make('profession_id')
->relationship('profession', 'name')
->searchable()
->quickAdd()
That's it! Now when users search for a term that doesn't exist, they'll see an "+ Add 'term'" option.
Works seamlessly with multiple selects:
Select::make('skills')
->multiple()
->relationship('skills', 'name')
->searchable()
->quickAdd()
Customize the "Add" button label:
Select::make('category_id')
->relationship('category', 'name')
->searchable()
->quickAdd(label: fn(string $search) => "Create new: {$search}")
Or use a simple string template:
->quickAdd(label: "New category: {search}")
By default, after creating a new record, only the "Add" option is removed from the dropdown while keeping the current search text and results intact. This lets users continue working in the same context.
If you prefer to fully clear the search input and results after creation:
->quickAdd(resetSearch: true)
You can conditionally disable the feature:
->quickAdd(enabled: auth()->user()->can('create', Category::class))
The plugin includes translations for the default "Add" label in multiple languages:
To customize translations, publish the language files:
php artisan vendor:publish --tag=quick-add-translations
Then edit the files in lang/vendor/quick-add/.
Create a new translation file in lang/vendor/quick-add/{locale}/quick-add.php:
<?php
return [
'add' => '+ Your translation ":term"',
];
New workflow: Search, click "Add", done!
Works perfectly with multiple selects
The plugin extends Filament's Select component using Laravel's macro system. When you add ->quickAdd():
All of this happens client-side with Livewire, so there's no page refresh.
createOptionForm() approachcomposer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.
How can I help you explore Laravel packages today?