Skip to main content

Inleiding

laravel/multiplex is een terminal-UI (TUI) om meerdere commando’s tegelijk uit te voeren. Het wordt gebruikt door php artisan dev in Laravel 13, waarmee je processen die je nodig hebt voor lokale ontwikkeling — zoals de PHP-ontwikkelserver, queue workers, logmonitoring en Vite — in één terminal kunt beheren. Je kunt de output van elk proces per tab bekijken, en zoeken en scrollen door de output wordt ook ondersteund. Bij het afsluiten wordt de output van elk proces teruggeschreven naar de normale scrollback van je terminal, zodat je de logs ook na het sluiten van de TUI kunt bekijken.

Installatie en direct uitvoeren

In een Laravel-applicatie regelt php artisan dev de benodigde configuratie, dus normaal gesproken hoef je Multiplex niet zelf te installeren. Wil je het standalone gebruiken, zorg dan voor Node.js 22.13 of nieuwer en installeer het via npm.
Commando’s geef je door in het formaat label,command.

TUI- en inline-modus

Als de standaardinvoer en standaarduitvoer een TTY zijn, start de TUI met tabs. Met s schakel je naar streamweergave, met / doorzoek je de output en met r herstart je het geselecteerde proces. Met q sluit je af. In CI of bij pipes zonder TTY schakelt Multiplex automatisch over naar de inline-modus. Elke regel krijgt het label van het proces en de output wordt getoond in volgorde van binnenkomst. Wil je de inline-modus expliciet gebruiken, geef dan -i op.
In de inline-modus stopt de uitvoering zodra het laatste proces eindigt, en wordt een mislukt commando weerspiegeld in de exitcode. Wil je de resultaten in JSON-formaat verwerken, gebruik dan --json.

Automatisch herstarten en afsluitgedrag

Gecrashte processen worden na één seconde wachten maximaal vijf keer automatisch herstart. Processen die binnen één seconde na de start eindigen, worden niet opnieuw geprobeerd, omdat ze mogelijk helemaal niet konden starten — bijvoorbeeld door een ontbrekend uitvoerbaar bestand of een poortconflict. Voor commando’s die je maar één keer uitvoert, zoals builds of migraties, geef je --no-restart op.
Multiplex beëindigt bij het afsluiten of bij ontvangst van een signaal de procesgroep van de kindprocessen. Zo voorkom je dat alleen de ontwikkelserver achterblijft en een poort bezet houdt, en kun je meerdere processen in één keer stoppen.

Aandachtspunten

Kindprocessen krijgen geen standaardinvoer doorgegeven. Daarom kun je commando’s die invoer vereisen, zoals php artisan tinker of bevestigingsprompts bij migraties, niet vanuit Multiplex uitvoeren. Voer interactieve commando’s uit in een aparte terminal. Multiplex biedt ook een programmatische API, maar commando’s worden uitgevoerd met sh -c. Verwerk geen onbetrouwbare waarden — zoals configuratiebestanden of requests — in de commandostring.

Referenties

Laatst gewijzigd op 6 september 2026