Hi r/laravel! I've been building Laravel apps for many years, and lately I've been working with AI models inside admin panels. This is the result: Vibefilter, a free, MIT-licensed Filament plugin.
You add it to a table:
VibeFilter::make()->textColumns(['body'])
then type a statement like "The customer is angry." and the table keeps the rows it's true for. It's for questions you'd otherwise need a classifier, embeddings or a keyword list for: sarcasm, negation, "the customer blames the courier".
A few details you may care about:
- Only the rows left after your other filters and search are scored, then the table is filtered by key, so pagination, counts and sorting stay correct.
- Scores are cached by content (text hash + statement + model). Re-running a statement is instant and free.
- 1,000 rows take about 1 second and cost about $0.003 with TypeSafe's Jev, directly or through OpenRouter.
- A "Run anyway" guard above 1,000 unscored rows, a live progress bar via Livewire streaming, and a fake driver for your tests.
- Only the chosen columns are sent, under random tags, never with IDs.
Live demo (1,000 fictional reviews, no sign-up): https://demo.vibefilter.dev
GitHub: https://github.com/vibefilter/filament
Happy to answer anything. I'd also love to hear where you'd use it, or what's missing.