Skip to main content

Introducción

laravel/multiplex es una interfaz de terminal (TUI) para ejecutar varios comandos a la vez. Se utiliza desde el php artisan dev de Laravel 13 y permite gestionar en una sola terminal los procesos necesarios para el desarrollo local, como el servidor de desarrollo de PHP, los workers de cola, la vigilancia de logs y Vite. Muestra la salida de cada proceso en su propia pestaña, y también soporta buscar y desplazarse por la salida. Al terminar, la salida de cada proceso se vuelve a escribir en el scrollback normal de la terminal, por lo que puedes seguir consultando los logs después de cerrar el TUI.

Instalación y ejecución directa

En una aplicación Laravel no suele hacer falta instalar Multiplex por separado, ya que php artisan dev se encarga de la configuración necesaria. Si quieres usarlo por separado, prepara Node.js 22.13 o posterior e instálalo con npm.
Los comandos se pasan con el formato label,command.

Modo TUI y modo inline

Si tanto la entrada como la salida estándar son un TTY, se lanza el TUI con pestañas. Con s cambias a la vista en modo stream, con / buscas en la salida y con r reinicias el proceso seleccionado. q cierra la ejecución. En CI o en procesos pasados por pipe, donde no hay TTY, cambia automáticamente al modo inline. Cada línea lleva la etiqueta del proceso y la salida se muestra en el orden en el que llega. Para usar explícitamente el modo inline, pasa -i.
En modo inline, la ejecución termina cuando termina el último proceso, y los fallos del comando se reflejan en el código de salida. Si quieres manejar el resultado del procesamiento en formato JSON, usa --json.

Reinicio automático y cierre

Los procesos que caen se reinician automáticamente tras esperar 1 segundo, hasta un máximo de 5 veces. Los procesos que terminan dentro del primer segundo desde el arranque no se reintentan, ya que es probable que ni siquiera hayan podido iniciarse, por ejemplo por un ejecutable ausente o por un conflicto de puertos. En comandos que solo se ejecutan una vez, como una build o una migración, indica --no-restart.
Al salir o al recibir una señal, Multiplex termina el grupo de procesos de los procesos hijos. De este modo puedes detener varios procesos a la vez y evitas la situación en la que solo el servidor de desarrollo se queda ocupando el puerto.

Consideraciones

A los procesos hijos no se les pasa la entrada estándar. Por eso, los comandos que requieren interacción con el usuario, como php artisan tinker o los prompts de confirmación de las migraciones, no se pueden ejecutar desde Multiplex. Ejecuta los comandos interactivos en otra terminal. Multiplex también expone una API programática, pero los comandos se ejecutan con sh -c. No incrustes valores en los que no confíes (archivos de configuración, requests, etc.) dentro de las cadenas de comando.

Referencias

Última modificación el 21 de agosto de 2026