Installation
Install Wirechat in a Laravel application, publish its configuration, and prepare the frontend assets used by the chat UI.
Requirements
Wirechat requires the following before installing:
Install Wirechat
Require the Package
Install the free package with Composer:
composer require wirechat/wirechat
Activate Wirechat Pro (Optional)
Wirechat Pro is optional. Activate it from an application that already has the free package installed:
php artisan wirechat:activate
The command asks for the email address on the license and the license key, then prepares Composer to download the private Pro package.
Get a Wirechat Pro license before running this command on a project that needs Pro features.
Activation creates an auth.json file in the project root. Composer uses that file for private package credentials, so keep it out of version control.
Single Project licenses require an activation domain or project ID. Use the same value for local development, CI, staging, and production for that project:
php artisan wirechat:activate --fingerprint=example.com
See Wirechat Pro for direct Pro installation, CI, Forge, and Laravel Cloud setup.
Run the Installer
Publish Wirechat's configuration and starter files:
php artisan wirechat:install
The installer will:
- publish
config/wirechat.php; - publish migration files;
- create a default panel provider at
app/Providers/Wirechat/ChatsPanelProvider.php; - create a storage symlink;
- enable chat search and the new-chat action on the default panel.
After installation, continue to panel configuration to adjust routes, middleware, actions, and optional features.
Configure UUIDs
This step is optional. To store conversation IDs as UUIDs, update config/wirechat.php before running migrations:
'uses_uuid_for_conversations' => true,
Configure this during initial setup only. After Wirechat tables exist, switching between UUIDs and auto-incrementing IDs is not supported.
Run Migrations
Create the Wirechat database tables:
php artisan migrate
This creates the conversation, participant, message, group, attachment, request, setting, and related tables used by Wirechat features.
Add Styles
Wirechat requires Tailwind CSS v4.0 or later.
If Tailwind is already installed, add the free package stylesheet to resources/css/app.css:
/* resources/css/app.css */
@import '../../vendor/wirechat/wirechat/resources/css/app.css';
For Wirechat Pro, use the Pro stylesheet instead:
/* resources/css/app.css */
@import '../../vendor/wirechat/wirechat-pro/resources/css/app.css';
Keep only one Wirechat stylesheet import in your app. The Pro import replaces the free package import.
Configure Realtime Delivery
Wirechat uses Laravel broadcasting for realtime conversation updates.
Enable Broadcasting
In newer Laravel applications, broadcasting is disabled by default. Enable it with:
php artisan install:broadcasting
Accept the Reverb and frontend package prompts when the application does not already have a WebSocket server.
Start Reverb during local development:
php artisan reverb:start
Start a Queue Worker
Run a queue worker for message broadcasts and related events:
php artisan queue:listen --queue=messages,default
Panels can customize these queue names with messagesQueue() and eventsQueue(). See Panels.
Start the Development Server
Laravel's default Composer dev command can run the server, queue worker, logs, and Vite together:
composer run dev
For applications that do not use that workflow, run the PHP server and frontend build separately:
php artisan serve
npm run dev
Publishing Optional Files
Publish translations when you need to customize language strings:
php artisan vendor:publish --tag=wirechat-translations
Publish views when you need to customize Wirechat's Blade files:
php artisan vendor:publish --tag=wirechat-views
Published files are copied to:
lang/vendor/wirechat/resources/views/vendor/wirechat/
Next Step
Continue with Quick Start to prepare your user model and open your first Wirechat panel.