Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

Fguedes90/lazycelery

Repository files navigation

LazyCelery

CI Release License: MIT Crates.io

A terminal UI for monitoring and managing Celery workers and tasks, inspired by lazydocker and lazygit.

Features

  • Real-time worker monitoring
  • Queue management with message counts
  • Task listing with status tracking
  • Search and filter capabilities
  • Keyboard-driven interface
  • Interactive CLI configuration with subcommands
  • Automatic configuration file management
  • Helpful error messages and setup guidance

Screenshots

Main Dashboard - Workers View

Workers View

Queue Management

Queues View

Task Monitoring

Tasks View

Search Mode

Search Mode

Help Screen

Help Screen

Installation

Choose your preferred installation method:

πŸ¦€ Cargo (Rust package manager)

cargo install lazycelery

🍺 Homebrew (macOS/Linux)

brew tap Fguedes90/tap
brew install lazycelery

πŸͺ£ Scoop (Windows)

scoop bucket add lazycelery https://github.com/Fguedes90/scoop-bucket.git
scoop install lazycelery

πŸ“₯ Binary Download

Download pre-built binaries from GitHub Releases:

  • Linux x86_64: lazycelery-linux-x86_64.tar.gz
  • macOS x86_64: lazycelery-macos-x86_64.tar.gz
  • macOS ARM64: lazycelery-macos-aarch64.tar.gz
  • Windows x86_64: lazycelery-windows-x86_64.zip

πŸ”§ From Source

# Clone the repository
git clone https://github.com/fguedes90/lazycelery.git
cd lazycelery

# Install mise (task runner)
./scripts/install-mise.sh

# Setup development environment
mise run setup

# Build release binary
mise run release

Quick Start

First Time Setup

# Run interactive setup
lazycelery init

# Or start with default Redis configuration
lazycelery --broker redis://localhost:6379/0

Configuration Management

LazyCelery provides several subcommands to manage your configuration without editing files:

# Initialize configuration with interactive setup
lazycelery init

# Show current configuration
lazycelery config

# Update broker URL
lazycelery set-broker redis://localhost:6379/0

# Update refresh interval (milliseconds)
lazycelery set-refresh 2000

Running LazyCelery

# Use configured settings
lazycelery

# Override broker URL
lazycelery --broker redis://localhost:6379/0

# Use custom config file
lazycelery --config ~/.config/lazycelery/config.toml

Troubleshooting Connection Issues

If you encounter connection errors, LazyCelery provides helpful setup instructions:

  1. Start Redis (choose one):

    # Docker
    docker run -d -p 6379:6379 redis
    
    # macOS
    brew services start redis
    
    # Linux
    sudo systemctl start redis
  2. Verify Redis is running:

    redis-cli ping
  3. Run LazyCelery:

    lazycelery --broker redis://localhost:6379/0

Keyboard Shortcuts

  • Tab - Switch between Workers/Queues/Tasks
  • ↑/↓ or j/k - Navigate items
  • / - Search mode
  • ? - Show help
  • q - Quit

Development

Prerequisites

  • Rust 1.70.0 or later
  • Redis (for testing)
  • mise (task runner)

Quick Start

# Install mise if you haven't already
./scripts/install-mise.sh

# Setup development environment
mise run setup

# Run with auto-reload
mise run dev

# Run tests in watch mode
mise run test-watch

Available Tasks

mise tasks              # Show all available tasks
mise run build         # Build release binary
mise run dev           # Run with auto-reload
mise run test          # Run tests
mise run lint          # Run linter
mise run fmt           # Format code
mise run audit         # Security audit
mise run coverage      # Generate coverage report
mise run docs          # Generate documentation

Pre-commit Checks

Before committing, run:

mise run pre-commit

This runs formatting, linting, tests, and security audit.

Contributing

See CONTRIBUTING.md for guidelines.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Terminal UI for monitoring and managing Celery workers and tasks, inspired by lazydocker and lazygit

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages