> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Laravel Multiplex — un TUI pour piloter tous vos processus de développement local

> Première analyse de laravel/multiplex. Présentation de l'interface terminal utilisée par la commande php artisan dev de Laravel 13, avec affichage par onglets, recherche et redémarrage automatique.

## Introduction

[`laravel/multiplex`](https://github.com/laravel/multiplex) est une interface terminal (TUI) permettant d'exécuter plusieurs commandes en parallèle. Utilisée par `php artisan dev` de Laravel 13, elle permet de gérer dans un unique terminal l'ensemble des processus nécessaires au développement local : serveur PHP, worker de file d'attente, surveillance des logs, Vite, etc.

Chaque processus dispose de son propre onglet pour afficher sa sortie, avec prise en charge de la recherche et du défilement. À la fermeture, la sortie de chaque processus est réécrite dans le scrollback classique du terminal, ce qui permet de consulter les logs même après avoir quitté le TUI.

## Installation et exécution directe

Dans une application Laravel, `php artisan dev` effectue la configuration nécessaire, ce qui vous évite en général d'installer Multiplex directement. Pour l'utiliser de manière autonome, installez-le avec npm après avoir installé Node.js 22.13 ou plus récent.

```bash theme={null}
npm install -g @laravel/multiplex
```

Les commandes se passent au format `label,command`.

```bash theme={null}
multiplex 'server,php artisan serve' 'queue,php artisan queue:listen' 'vite,npm run dev'
```

## Mode TUI et mode inline

Lorsque l'entrée et la sortie standard sont un TTY, l'interface TUI par onglets est lancée. `s` bascule vers l'affichage en flux, `/` recherche dans la sortie et `r` redémarre le processus sélectionné. `q` permet de quitter.

En l'absence de TTY (CI ou pipeline), Multiplex bascule automatiquement en mode inline. Chaque ligne est préfixée du label du processus et les sorties s'affichent dans leur ordre d'arrivée. Pour forcer explicitement le mode inline, utilisez `-i`.

```bash theme={null}
multiplex -i 'build,npm run build' 'test,npm test'
```

En mode inline, l'exécution se termine dès que le dernier processus s'arrête, et le code de sortie reflète les éventuels échecs. Pour manipuler les résultats au format JSON, utilisez `--json`.

```bash theme={null}
multiplex --json 'build,npm run build' 'test,npm test'
```

## Redémarrage automatique et fin d'exécution

Un processus qui plante est redémarré automatiquement jusqu'à cinq fois, après une seconde d'attente. Un processus qui se termine dans la seconde qui suit son démarrage n'est pas relancé, car cela indique généralement qu'il n'a jamais pu démarrer correctement (exécutable manquant, port déjà utilisé, etc.). Pour les commandes destinées à être exécutées une seule fois, comme un build ou une migration, utilisez `--no-restart`.

```bash theme={null}
multiplex --no-restart 'build,npm run build'
```

À la fermeture ou lors de la réception d'un signal, Multiplex termine le groupe de processus des enfants. Cela évite qu'un serveur de développement reste seul en cours d'exécution en monopolisant un port, et permet d'arrêter en bloc plusieurs processus.

## Points d'attention

L'entrée standard n'est pas transmise aux processus enfants. Les commandes qui exigent une saisie — `php artisan tinker`, invite de confirmation des migrations, etc. — ne peuvent donc pas être lancées depuis Multiplex. Les commandes interactives doivent être exécutées dans un autre terminal.

Multiplex expose également une API programmatique, mais les commandes sont exécutées via `sh -c`. N'insérez pas dans les chaînes de commande des valeurs provenant de sources non fiables (fichiers de configuration, requêtes utilisateur, etc.).

## Références

* [Documentation Laravel officielle : Artisan - The Dev Command](https://laravel.com/docs/13.x/artisan#the-dev-command)
* [README de laravel/multiplex](https://github.com/laravel/multiplex)


## Related topics

- [Créer un agent personnalisé pour Boost](/fr/advanced/boost-custom-agent.md)
- [La console Artisan](/fr/artisan.md)
- [Laravel Sail](/fr/sail.md)
- [Processus](/fr/processes.md)
- [Laravel Cloud CLI — piloter Laravel Cloud depuis le terminal](/fr/blog/laravel-cloud-cli.md)
