Source profileQuality 94/100

event4u-app/agent-config/src/skills/laravel-reverb/SKILL.md

laravel-reverb

Use when configuring Laravel Reverb — the first-party WebSocket server with Pusher protocol compatibility, horizontal scaling, and Pulse monitoring.

Source repository stars
7
Declared platforms
0
Static risk flags
1
Last source update
2026-07-28
Source checked
2026-07-28

Decision brief

What it does—and where it fits

Use when configuring Laravel Reverb — the first-party WebSocket server with Pusher protocol compatibility, horizontal scaling, and Pulse monitoring.

Best for

  • Reverb installation, configuration, and environment setup
  • Reverb server deployment and scaling
  • Reverb-specific debugging and monitoring

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/laravel-reverb"
Safe inspection promptEditorial

Inspect the Agent Skill "laravel-reverb" from https://github.com/event4u-app/agent-config/blob/0adf49a8ae84b0ff6e2de8759eea43257e020eff/src/skills/laravel-reverb/SKILL.md at commit 0adf49a8ae84b0ff6e2de8759eea43257e020eff. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Procedure: Set up Reverb

    1. Inspect current broadcasting — Check config/broadcasting.php, .env, and composer.json for Pusher / Reverb / Soketi presence and current driver. 2. Install — php artisan install:broadcasting or manual setup (see below). 3. Configure — Set environment variables for Reverb host,…

    Inspect current broadcasting — Check config/broadcasting.php, .env, and composer.json for Pusher / Reverb / Soketi presence and current driver.Install — php artisan install:broadcasting or manual setup (see below).Configure — Set environment variables for Reverb host, port, app credentials.
  2. 02

    Reverb is a long-running process, it must be managed by a process monitor

    ini [program:reverb] command=php /path/to/artisan reverb:start autostart=true autorestart=true user=www-data redirectstderr=true stdoutlogfile=/var/log/reverb.log stopwaitsecs=3600 env REVERBSCALINGENABLED=true REVERBSCALINGCHANNEL=reverb php // In your Pulse dashboard nginx loc…

    Reverb is a long-running process — always use Supervisor/systemd in production.TLS via reverse proxy — Reverb doesn't handle SSL directly.Scale with Redis — enable REVERBSCALINGENABLED for multi-server setups.
  3. 03

    When to use

    Use this skill for anything specific to Laravel Reverb as the WebSocket server: - Reverb installation, configuration, and environment setup - Reverb server deployment and scaling - Reverb-specific debugging and monitoring - Pusher protocol compatibility questions

    Reverb installation, configuration, and environment setupReverb server deployment and scalingReverb-specific debugging and monitoring
  4. 04

    Installation

    This scaffolds: - config/broadcasting.php with Reverb driver - config/reverb.php with server settings - routes/channels.php for channel authorization - .env variables for Reverb

    config/broadcasting.php with Reverb driverconfig/reverb.php with server settingsroutes/channels.php for channel authorization
  5. 05

    Configuration

    env REVERBAPPID=455493 REVERBAPPKEY=your-app-key REVERBAPPSECRET=your-app-secret REVERBHOST="localhost" REVERBPORT=8080 REVERBSCHEME=http

    env REVERBAPPID=455493 REVERBAPPKEY=your-app-key REVERBAPPSECRET=your-app-secret REVERBHOST="localhost" REVERBPORT=8080 REVERBSCHEME=http

Permission review

Static risk signals and limitations

Network access

medium · line 156

The documentation includes network, browsing, or remote request actions.

proxy_pass http://127.0.0.1:8080;

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score94/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars7SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
event4u-app/agent-config
Skill path
src/skills/laravel-reverb/SKILL.md
Commit
0adf49a8ae84b0ff6e2de8759eea43257e020eff
License
MIT
Collected
2026-07-28
Default branch
main
View the original SKILL.md

laravel-reverb

When to use

Use this skill for anything specific to Laravel Reverb as the WebSocket server:

  • Reverb installation, configuration, and environment setup
  • Reverb server deployment and scaling
  • Reverb-specific debugging and monitoring
  • Pusher protocol compatibility questions

For general WebSocket patterns, broadcasting events, channel authorization, and Laravel Echo client setup, see the laravel-websocket skill.

Procedure: Set up Reverb

  1. Inspect current broadcasting — Check config/broadcasting.php, .env, and composer.json for Pusher / Reverb / Soketi presence and current driver.
  2. Installphp artisan install:broadcasting or manual setup (see below).
  3. Configure — Set environment variables for Reverb host, port, app credentials.
  4. Start serverphp artisan reverb:start.
  5. Connect client — Configure Laravel Echo with Reverb credentials.
  6. Verify — Confirm WebSocket connection in browser console, test event delivery.

Laravel Reverb is Laravel's first-party, blazing-fast WebSocket server. It uses the Pusher protocol, making it compatible with Laravel Echo and any Pusher-compatible client. A single Reverb server can handle thousands of concurrent connections.

Installation

php artisan install:broadcasting

This scaffolds:

  • config/broadcasting.php with Reverb driver
  • config/reverb.php with server settings
  • routes/channels.php for channel authorization
  • .env variables for Reverb

Configuration

Environment variables

REVERB_APP_ID=455493
REVERB_APP_KEY=your-app-key
REVERB_APP_SECRET=your-app-secret
REVERB_HOST="localhost"
REVERB_PORT=8080
REVERB_SCHEME=http

# Client-side (Vite)
VITE_REVERB_APP_KEY="${REVERB_APP_KEY}"
VITE_REVERB_HOST="${REVERB_HOST}"
VITE_REVERB_PORT="${REVERB_PORT}"
VITE_REVERB_SCHEME="${REVERB_SCHEME}"

config/reverb.php

Note: REVERB_HOST / REVERB_PORT are for client connections (hostname/port the client connects to). REVERB_SERVER_HOST / REVERB_SERVER_PORT are for the server binding (interface/port the server listens on).

'servers' => [
    'reverb' => [
        'host' => env('REVERB_SERVER_HOST', '0.0.0.0'),
        'port' => env('REVERB_SERVER_PORT', 8080),
        'hostname' => env('REVERB_HOST'),
        'options' => [
            'tls' => [],
        ],
        'max_request_size' => 10_000,  // bytes
        'scaling' => [
            'enabled' => env('REVERB_SCALING_ENABLED', false),
            'channel' => env('REVERB_SCALING_CHANNEL', 'reverb'),
        ],
        'pulse_ingest_interval' => 15,
    ],
],

config/broadcasting.php

'connections' => [
    'reverb' => [
        'driver' => 'reverb',
        'key' => env('REVERB_APP_KEY'),
        'secret' => env('REVERB_APP_SECRET'),
        'app_id' => env('REVERB_APP_ID'),
        'options' => [
            'host' => env('REVERB_HOST'),
            'port' => env('REVERB_PORT', 443),
            'scheme' => env('REVERB_SCHEME', 'https'),
            'useTLS' => env('REVERB_SCHEME', 'https') === 'https',
        ],
    ],
],

Running the server

# Start Reverb (foreground)
php artisan reverb:start

# Start with verbose output (debugging)
php artisan reverb:start --debug

# Production — use Supervisor or systemd
# Reverb is a long-running process, it must be managed by a process monitor

Supervisor config (production)

[program:reverb]
command=php /path/to/artisan reverb:start
autostart=true
autorestart=true
user=www-data
redirect_stderr=true
stdout_logfile=/var/log/reverb.log
stopwaitsecs=3600

Horizontal scaling

Enable Redis-based scaling to run multiple Reverb instances behind a load balancer:

REVERB_SCALING_ENABLED=true
REVERB_SCALING_CHANNEL=reverb

Requires a shared Redis instance accessible by all Reverb servers. Connections and channel subscriptions are synced across servers via Redis pub/sub.

Monitoring with Pulse

Reverb has built-in Laravel Pulse integration. Add the Reverb Pulse cards:

// In your Pulse dashboard
<livewire:reverb.connections />
<livewire:reverb.messages />

SSL/TLS in production

Reverb itself does not handle TLS. Use a reverse proxy (Nginx, Traefik, Caddy) to terminate SSL and proxy WebSocket connections to Reverb:

location /app {
    proxy_pass http://127.0.0.1:8080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_read_timeout 60s;
    proxy_send_timeout 60s;
}

Core rules

  • Reverb is a long-running process — always use Supervisor/systemd in production.
  • TLS via reverse proxy — Reverb doesn't handle SSL directly.
  • Scale with Redis — enable REVERB_SCALING_ENABLED for multi-server setups.
  • Monitor with Pulse — use the built-in Pulse cards for connection/message metrics.
  • Pusher protocol — any Pusher-compatible client works (Laravel Echo, pusher-js, etc.).
  • Max request size — default 10KB, increase for large payloads if needed.

Output format

  1. Reverb configuration with server and scaling settings
  2. Broadcasting channel definitions and client integration

Auto-trigger keywords

  • Reverb
  • reverb:start
  • WebSocket server
  • Reverb scaling
  • Reverb deployment
  • Reverb configuration

Gotcha

  • Reverb requires a persistent process — it's not compatible with serverless deployments.
  • The model forgets to configure the REVERB_HOST and REVERB_PORT environment variables.
  • WebSocket connections bypass middleware — don't rely on session auth for channel authorization.

Do NOT

  • Do NOT expose Reverb directly to the internet without a reverse proxy for TLS.
  • Do NOT run reverb:start without a process monitor in production.
  • Do NOT confuse Reverb config with Pusher SaaS — Reverb is self-hosted.
  • Do NOT skip Redis when running multiple Reverb instances.

Alternatives

Compare before choosing