The missing dashboard for BullMQ.
Inspect, debug, and replay your BullMQ queues. Run it as a native desktop app, drop it into any Node framework, or deploy it as a standalone Docker container.
macOS 11+ · Apple-signed · MIT
Every queue, every job — at a glance.
Live counters, p50/p95 latency, throughput sparklines, and per-queue health without ever shelling into Redis. Built for the way modern apps actually run on BullMQ.
Inspect every run. Replay any failure.
A virtualized table with sharp status colors, real timestamps, and full job payloads one click away. Filter by status, search by ID, retry from the keyboard.
Visualize FlowProducer graphs.
Parent/child relationships rendered as a real DAG with per-node status and duration. Drill into any node, replay subtrees, and see where time is going.
Cron + delayed jobs you can actually trust.
See which schedulers are active, when they last ran, and what's next. Pause, resume, and edit cron expressions without redeploying.
Enqueue jobs straight from the dashboard.
Compose a payload, pick a queue, hit ⌘↵. Validates against your schema and shows the run on the next render.
{
"src": "s3://uploads/IMG_4827.heic",
"sizes": [128, 512, 2048],
"format": "webp"
}Triage failures, not log files.
Errors are grouped by class, ranked by frequency, and trended over time so you can spot regressions the moment they hit production.
Everything a BullMQ dashboard should do.
Metrics, runs, errors, flows, schedulers, and an enqueue form — wired together so the thing you need next is always one keystroke away.
Completed, failed, active, waiting — per queue, updated as workers move jobs. p50/p95 latency and throughput tracked alongside.
A virtualized table of every job. Filter by status, search by ID, expand the full payload and attempts history without leaving the row.
Failures grouped by error class and ranked by frequency, with a 24h trend per class. See the regression the moment it spikes.
Click any line in a failed job's stack trace — Workbench jumps straight to that file in Cursor or VS Code. No copy-paste, no grep.
Parent/child flows rendered as a real graph with per-node status and duration. Drill into any node, replay subtrees, see where time is going.
Which schedulers are active, when they last ran, what's next. Pause, resume, edit cron expressions — without a redeploy.
Compose a payload, pick a queue, hit ⌘↵. Validates against your schema and shows the run on the next render. Faster than `redis-cli`.
⌘K to search, ⌥1–9 to switch queues, R to retry, ↵ to drill in. Every action you reach for has a binding — no menu hunting.
One dashboard. Three ways to run it.
Native macOS app for local debugging, one command to mount the dashboard inside your Node server, or a standalone Docker container pointed at your Redis. Same UI, same open-source core.
Native macOS app
Local-first. Auto-discovers queues from any Redis URL. Stores credentials in the OS keychain. Auto-updates via signed releases.
Drop into your Node app
One command wires the dashboard into your existing server. Works with Hono, Elysia, Express, Fastify, NestJS, AdonisJS, Next.js, TanStack Start, Koa, Astro, Nuxt, Bun, and h3 — share the same Redis as your workers.
Standalone container
Run Workbench without embedding it in your app. Set REDIS_URL and QUEUE_NAMES — published to GHCR on every release tag.