livewirelisted
Install: claude install-skill majdghithan/agent-skills
# Laravel Livewire (v1 - v4)
Livewire builds reactive UIs with a PHP class + Blade view and no dedicated JS. Its behavior has **flipped in important ways between majors** - the same `wire:model` is real-time on v1/v2, deferred on v3, and non-bubbling on v4. So: **detect the version, then apply that version's rules.**
## Step 1 - Detect the installed version FIRST
```bash
composer show livewire/livewire | grep -i '^versions' # resolved version
grep '"livewire/livewire"' composer.json # the constraint (^1/^2/^3/^4)
php artisan about | grep -i livewire # if available
```
Map to major `1.x` / `2.x` / `3.x` / `4.x`. Fresh install -> default to latest stable and confirm. Can't tell -> ask, don't guess.
## Step 2 - Load the matching reference
| Version | Era (one-liner) | Reference |
|---|---|---|
| **v1** (Feb 2020) | First stable; Alpine separate; `wire:model` live by default | `references/livewire-v1.md` |
| **v2** (Sep 2020) | `$wire` + `@entangle`, `wire:model.defer`, `$rules`, scoped events | `references/livewire-v2.md` |
| **v3** (Aug 2023) | `App\Livewire`, Alpine bundled, **`wire:model` deferred by default**, `dispatch()`, PHP attributes, `wire:navigate` | `references/livewire-v3.md` |
| **v4** (Jan 2026) | Single-file & island components, parallel updates, `.async`, `wire:sort/intersect/ref`, `Route::livewire()` | `references/livewire-v4.md` |
## Step 3 - For upgrades, load the matching guide
| Path | Guide | The headline break |