$ bull-cli

A terminal dashboard for BullMQ job queues. It works like bull-board, but runs in your shell. Point it at a Redis instance, then browse queues, jobs and job details, or retry, promote, pause and drain them, without opening a browser.

$ npm install -g @angelkar/bull-cli

Requires Node.js >= 20 and a reachable Redis with one or more BullMQ queues.

bull-cli v0.1.0
[Esc/h] Back    [r] Refresh    [q] Quit
[↑/↓] Move      [1-5] Status    [Enter] Detail    [/] Filter

Queues > emailQ
[Delayed](0) | Waiting (12) | Active (2) | Failed (1) | Completed (4)

   ID    Name                State     Attempts  CreatedAt
❯  12    send-email          waiting          0  2026-07-26 10:41
   13    send-email          waiting          0  2026-07-26 10:41
   14    welcome-digest      waiting          0  2026-07-26 10:42

                                                    Page 1 of 2
redis://localhost:6379

features

usage

bull-cli [options]

  --redis <url>      Redis URL           # > REDIS_URL > redis://localhost:6379
  --prefix <prefix>  BullMQ key prefix   # > BULLMQ_PREFIX > bull
  --output <format>  Output mode         # json
  --queue <name>     Queue filter for --output=json
  -h, --help
  -v, --version
$ bull-cli
$ bull-cli --redis redis://:secret@redis.internal:6379
$ bull-cli --prefix myapp
$ bull-cli --output=json --queue=email

keys

global

qquit
rrefresh now
Esc / hback one view
Shift+Hjump to the queue dashboard

queue list

↑ / ↓move
Enteropen queue
ppause / resume
Shift+Ddrain (asks to confirm)

job list

← / →previous / next status
1–5delayed, waiting, active, failed, completed
b / nprevious / next page
/search by ID or name
Enterjob detail
Rretry (failed only)
ppromote (delayed only)
cduplicate as a new delayed job
Shift+Ddelete (asks to confirm)

job detail

Rretry (failed only)
Shift+Ddelete
ccopy job data JSON

config

Optional. The CLI reads ./bull-cli.json, then ~/.config/bull-cli/config.json (or the same path under $XDG_CONFIG_HOME). Both files may use JSONC, and the project file overrides the user file key by key.

{
  // poll interval, ms (>= 250)
  "refreshIntervalMs": 3000,
  // per-refresh timeout, ms (>= 250); raise for remote/tunnelled Redis
  "refreshTimeoutMs": 5000,
}

hack on it

$ git clone https://github.com/ang3lkar/bull-cli.git && cd bull-cli
$ npm install
$ npm run redis:up   # redis:7-alpine via docker compose
$ npm run seed       # demo queues and jobs
$ npm run dev