📈 GH Trending Explorer 🎲 Surprise me

← all repos

welcoMattic / messenger-central

git clone https://github.com/welcoMattic/messenger-central.git v0.1.0 · 6d ago

A terminal UI to drive Symfony Messenger workers during development

—
stars, 24h
+29
stars, 7 days · #1,354
+29
stars, 30 days · #9,077
29
★ total · +29% this week
0
forks · 0 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguagePHP
LicenseMIT
Created2026-10-13 (7d ago)
Last push6d ago
Watchers0
OwnerUser

Links

README excerpt
# Messenger Central
A terminal UI to drive Symfony Messenger
workers while you develop: list the transports of your application, start and
scale their workers, watch messages flow in real time, and send failed messages
back once fixed.
Built on top of the Symfony TUI component.
If it saves you time, you can sponsor my open source work.
> [!WARNING]
> This is a development tool, and the Symfony TUI component it relies on is
> experimental.
> Do not enable the bundle in production. It is tested with Symfony 8.1, and
> with the development version of Symfony 8.2.
## Features
- **Transports** in a sidebar, with their running workers and waiting messages.
 Open a transport to reach its actions:
 - **Message classes** routed to it, from the routing configuration and the
 `#[AsMessage]` attribute of handled messages;
 - **Start workers**, as many as you want (one by default);
 - **Concurrency**: how many messages each worker handles at the same time,
 with Symfony 8.2;
 - **Options**: DSN, transport options, retry strategy, failure transport,
 serializer. Credentials are masked.
- **Live view** of the selected transport:
 - incoming messages per second, as a sparkline;
 - each worker, with the messages it handles and for how long, or why it
 exited;
 - the messages waiting in the transport, when it can tell;
 - the last handled, retried and failed messages, with their error.
- **Failed messages**: workers do not consume failure transports. Open one to
 list its messages, then edit a message and send it back to the transport it
 failed on.
- **Output of the workers**: what they write, like logs and `dump()`, with the
 time and the worker.
- **Stats** in the footer: processed, failed and retried messages, throughput,
 memory used by the workers and their peak.
## Requirements
- PHP 8.4.1 or higher; with the `pcntl` extension, workers finish their current messages when stopped
- Symfony 8.1 or higher, with Messenger enabled; Symfony 8.2 and
 amphp/parallel to handle several
 messages at the same time in each worker
- A Unix-like system (Linux, macOS, WSL)
## Installation
 [code] 
With Symfony Flex, the bundle is enabled by itself in the `dev` and `test`
environments. To enable it in `dev` only, or without Flex, set it in
`config/bundles.php`:
 [code] 
The command refuses to run when the kernel runs without debug, like in
production; `--force` runs it anyway.
## Usage
 [code] 
| Key | Action |
|------------------|-------------------------------------------------------------------------|
| `↑` `↓` | Move in the sidebar |
| `⏎` | Open a transport, or run the action under the cursor |
| `←` | Close the opened transport |
| `s` | Start or stop the workers of the selected transport |
| `+` `-` | Scale the workers up or down (before or after starting) |
| `c` | Type the concurrency of the workers (Symfony 8.2) |
| `a`, `Esc` | Live view |
| `l` | Output of the workers: logs, dumps, errors |
| `m` | Message classes |
| `o` | Options |
| `?` | Every key |
| `q`, `C