A beautiful terminal-based user interface for monitoring and managing BullMQ job queues.
- π Real-time Queue Monitoring - View queue counts and stats updated live
- π― Job Management - Browse, view, retry, and delete jobs across all states
- β Job Creation - Add new jobs directly from the TUI with JSON input
- π Bulk Operations - Retry all failed jobs, drain queue states, or clean entire queues
- π Clipboard Integration - Copy job JSON data with a single keystroke
- π Visual Analytics - Sparkline charts showing throughput trends
- β‘ Fast Navigation - Vim-style keybindings for efficient workflow
- π Event Streaming - Real-time updates via Redis pub/sub
- πΎ Multiple Connections - Easily manage and switch between Redis instances
- π¨ Beautiful Interface - Clean, colorful TUI powered by Bubbletea
For clipboard functionality to work, you need:
- Linux: Install
xsel,xclip, orwl-clipboard(Wayland)# Debian/Ubuntu sudo apt-get install xsel # or sudo apt-get install xclip # or for Wayland sudo apt-get install wl-clipboard # Fedora/RHEL sudo dnf install xsel # or sudo dnf install xclip # or for Wayland sudo dnf install wl-clipboard # Arch Linux sudo pacman -S xsel # or sudo pacman -S xclip # or for Wayland sudo pacman -S wl-clipboard
- macOS: Works out of the box (uses
pbcopy) - Windows: Works out of the box
go install github.com/AurelienConte/bullmq-tui@latestgit clone https://github.com/AurelienConte/bullmq-tui
cd bullmq-tui
make build- Initialize configuration:
bullmq-tui config init- Add your Redis connection:
bullmq-tui config add production \
--host redis.example.com \
--port 6379 \
--password "${REDIS_PASSWORD}" \
--tls- Launch the TUI:
bullmq-tui# Launch TUI with default connection
bullmq-tui
# Launch with specific connection
bullmq-tui connect production
bullmq-tui -c staging
# Configuration management
bullmq-tui config init # Create default config
bullmq-tui config add <name> # Add new connection
bullmq-tui config remove <name> # Remove connection
bullmq-tui config list # List all connections
bullmq-tui config set-default <name> # Set default connection
bullmq-tui config edit # Open config in $EDITOR
bullmq-tui config path # Show config file location
# Other
bullmq-tui version # Show version infoββorj/k- Navigate up/downββorh/l- Navigate left/right or switch tabstab/shift+tab- Switch between panels1-5- Jump to job state tabs (Waiting/Active/Delayed/Completed/Failed)
a- Add new job to selected queueenter- View job details (presscto copy JSON)r- Retry selected jobR- Retry all failed jobs in queued- Delete selected jobD- Drain current state (from jobs panel) / Clean all jobs (from queue panel)p- Pause/resume queuectrl+r- Force refresh
?- Show helpq/ctrl+c- Quit
Config file location (follows XDG Base Directory Specification):
- Linux/macOS:
~/.config/bullmq-tui/config.yaml - Windows:
%APPDATA%\bullmq-tui\config.yaml
version: 1
default_connection: local
connections:
local:
name: Local Development
host: localhost
port: 6379
password: ""
db: 0
tls: false
prefix: "bull"
production:
name: Production Redis
host: redis.example.com
port: 6380
password: "${PROD_REDIS_PASSWORD}" # Environment variable expansion
db: 0
tls: true
tls_skip_verify: false
prefix: "bull"
settings:
refresh_interval_ms: 1000 # Refresh rate in milliseconds
stats_window_minutes: 30 # Stats collection window
max_jobs_display: 100 # Max jobs to show per state
theme: default
date_format: "2006-01-02 15:04:05"You can use environment variable expansion in connection passwords:
connections:
prod:
password: "${REDIS_PASSWORD}"BullMQ TUI is built with:
- Go 1.24+ - Modern, fast, compiled language
- Cobra - CLI framework
- Bubbletea - Terminal UI framework
- Lipgloss - Style definitions and layout
- Bubbles - TUI components
- go-redis - Redis client
bullmq-tui/
βββ cmd/ # CLI commands (Cobra)
βββ internal/
β βββ config/ # Configuration management
β βββ redis/ # Redis client & BullMQ operations
β βββ stats/ # Statistics collection
β βββ ui/ # Bubbletea application
β βββ components/ # UI components
βββ main.go
- Go 1.24 or higher
- Redis server (for testing)
- Access to a BullMQ instance
make build # Build binary
make install # Install to $GOPATH/bin
make test # Run tests
make clean # Clean build artifactsgo run . -c localThis project uses a two-branch workflow:
main- Stable release branch. All releases are tagged from this branch.develop- Development branch. All feature work is merged here first.
- Create feature branches from
develop - Submit pull requests to
develop - When ready for release, merge
developintomain - Tag the release on
mainwithv*(e.g.,v1.0.0)
Releases are automated via GitHub Actions:
- Merge all changes to
developbranch - Merge
developintomain - Create and push a version tag:
git tag v1.0.0 git push origin v1.0.0
- GitHub Actions will automatically:
- Run tests
- Build binaries for Linux (amd64, arm64), macOS (amd64, arm64), and Windows (amd64)
- Create a GitHub release with binaries and checksums
- Generate release notes
The project uses GitHub Actions for continuous integration:
-
Test Workflow - Runs on all pushes and PRs to
mainanddevelop- Runs tests, formatting checks, and linting
- Builds the binary to ensure compilation succeeds
-
Release Workflow - Triggers on version tags (e.g.,
v1.0.0)- Builds multi-platform binaries
- Creates GitHub release with assets
Contributions are welcome! Please feel free to submit a Pull Request.