Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
November 4, 2018 05:15
November 16, 2018 22:23
November 16, 2018 22:21
October 10, 2018 18:46
October 26, 2018 03:13
October 10, 2018 20:37
November 16, 2018 22:32
October 10, 2018 18:46
October 10, 2018 18:46
September 8, 2018 06:37
November 16, 2018 22:22
October 10, 2018 18:46
October 10, 2018 18:46
October 10, 2018 18:46

Build Status Build Status Latest Version Total Downloads License

Table of Contents


Mercurius is a real-time messenger system using Laravel and Vue.js, featuring a complete application that you can easily install with any Laravel project.



  • Real-time Messenger
  • Responsive
  • Multilingual
  • Browser notifications
  • Unique UX, with dark theme
  • Typing indicator
  • Remove conversations and messages
  • Search recipients with auto-complete


Click thumbs to enlarge image


You can try a demo of Mercurius. Authenticate using any of the following credentials:


Password: password

Tip: Open 2 different browsers and login with different usernames, so you can test send/receiving messages.


Make sure Laravel 5.6+ is installed before proceed.

1. Setup Pusher

If you don't have an account, create a free one on website. Go to the dashboard, create a new app and take note of the API credentials.

Now, let's add the API keys to the .env file. Also, change the BROADCAST_DRIVER to pusher (default is log).

2. Register BroadcastServiceProvider

Open config/app.php and uncomment the line App\Providers\BroadcastServiceProvider::class,.

3. Laravel Authentication

Skip this step if authentication is already setup, otherwise type:

php artisan make:auth
4. Install Mercurius
composer require launcher/mercurius
5. Configuration (optional)

If you want to change the default configuration, publish the config file, by typing the command:

php artisan vendor:publish --tag=mercurius-config

For editing the config, open /config/mercurius.php and add your own values.

return [

    | Mercurius Models
    | Defines the models used with Mercurius, use it to extend Mercurius and
    | create your own implementation.

    'models' => [
        'user' => App\User::class,
        'messages' => Launcher\Mercurius\Models\Message::class,

    | User Table Fields
    | You can specify the column names for the user table. The `name` accepts
    | an array of fields, for building custom names with multiple columns.

    'fields' => [
        // 'name'   => ['first_name', 'last_name'],
        'name'   => 'name',
        'slug'   => 'slug',
        'avatar' => 'avatar',
6. Install Mercurius
php artisan mercurius:install
composer dump-autoload
7. User trait

Add Launcher\Mercurius\MercuriusUser trait to your User model:

// ...
use Illuminate\Foundation\Auth\User as Authenticatable;
use Launcher\Mercurius\MercuriusUser;

class User extends Authenticatable
    use MercuriusUser;
    // ...
8. Install dummy data (for testing)
php artisan db:seed --class=MercuriusDatabaseSeeder

Will add Messages and Users to the system, like in the demo example:

Demo Users:

  • Ian:
  • Noa:
  • Lua:

Password: password

Update Mercurius

Whenever you update Mercurius, make sure to publish assets to apply the new versions of CSS/JS.

php artisan vendor:publish --tag=mercurius-public --force


Please see Customization for more information.


Check the roadmap for more information.

  • Unit Tests
  • Conversation w/ multiple users #13
  • Webhooks #16
  • Upload photos & files #14
  • Preview images and videos #15
  • Emoji support #18
  • Video Chat #19
  • Support #20
  • Search messages #17



Please see CONTRIBUTING for more information.


We keep a CHANGELOG with the information that has changed.


Copyright and license

Copyright 2018 Bruno Torrinha. Mercurius is released under the MIT License.