Skip to content

An overengineered, open-source task queue for Google Jules power users

License

iHildy/jules-task-queue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jules Task Queue Logo

Jules Task Queue

An overengineered, enterprise-grade, open-source task queue for Jules power users.
Visit Site · Report Bug · Request Feature


Jules Task Queue is a GitHub-integrated service that solves the "3 concurrent task" bottleneck when using the Google Labs - Jules AI coding assistant. It automatically queues tasks when Jules hits its limit and retries them later, allowing you to seamlessly utilize your full daily quota.

The Problem: The 3-Task Bottleneck

"Jules gives you 15 tasks per day but only 3 concurrent slots.* So you're constantly babysitting the queue, manually re-adding labels every time it hits the limit. There has to be a better way." — Every Jules power user, probably

This tool is the better way. It transforms Jules from a tool you have to manage into a true "set it and forget it" automation partner.

✨ Features

  • 🔑 User Access Token Integration: Seamlessly integrates with GitHub App user access tokens, ensuring Jules responds to automated label changes.
  • 🤖 Task Status Detection: Automatically detects when Jules is at capacity and intelligently queues new tasks.
  • 🔄 Auto-Retry Logic: 30-minute retry cycles with intelligent label swapping and failure recovery.
  • 🚀 Easy Self-Hosting: Deploy with one click to Vercel, Firebase, or use the provided Docker Compose setup.
  • 🔐 GitHub Native: Secure webhook integration with signature verification and comprehensive audit logging.
  • 📊 Enhanced Observability: Integrated structured logging with Pino for better monitoring and debugging.
  • 🔒 Type Safe: End-to-end TypeScript with tRPC and Zod validation for bulletproof deployments.
  • ⚙️ Zero Config (Hosted): Install the GitHub App and you're done. No complex setup required.

🚀 Getting Started

You can use our hosted version for a zero-config setup or deploy your own instance.

Hosted Version (Recommended)

  1. Install the GitHub App: Click the button below and authorize it for the repositories you want to use.
  2. Add the jules label to any GitHub issue to start processing.

Self-Hosting

Deploy your own instance with one click:

Deploy to Vercel Deploy to Firebase

For detailed instructions on self-hosting with Docker, Vercel, or Firebase, please see our documentation:

🛠️ How It Works

The system is designed to be a robust, hands-off automation layer on top of your existing GitHub workflow.

graph TD
    A["User adds 'jules' label to GitHub issue"] --> B["GitHub webhook triggers"]
    B --> C["Create/Update JulesTask in database"]
    C --> D["Start 60-second timer"]
    D --> E["Timer expires - Check for Jules comments"]
    E --> F{"Jules commented?"}
    F -->|No| G["End - Jules probably working or no response yet"]
    F -->|Yes| H{"Comment type?"}
    H -->|"You are currently at your concurrent task limit"| I["Task Limit Reached"]
    H -->|"When finished, you will see another comment"| J["Jules Started Working"]
    H -->|Other comment| G

    I --> K["Mark JulesTask.flaggedForRetry = true"]
    K --> L["Remove 'jules' label from GitHub issue"]
    L --> M["Add 'jules-queue' label to GitHub issue"]
    M --> N["Task queued for retry"]

    J --> O["Jules is actively working"]
    O --> P["End - Success path"]

    Q["Cron job runs every 30 minutes"] --> R["Find all JulesTask where flaggedForRetry = true"]
    R --> S{"Any flagged tasks?"}
    S -->|No| T["End cron cycle"]
    S -->|Yes| U["For each flagged task"]
    U --> V{"Issue has 'Human' label?"}
    V -->|Yes| W["Skip this task"]
    V -->|No| X["Remove 'jules-queue' label"]
    X --> Y["Add 'jules' label back"]
    Y --> Z["Set flaggedForRetry = false"]
    Z --> AA["Increment retryCount"]
    AA --> BB["Update lastRetryAt timestamp"]
    BB --> CC["Jules will see label and try again"]
    CC --> D

    W --> DD{"More tasks?"}
    BB --> DD
    DD -->|Yes| U
    DD -->|No| T

    style A fill:#e1f5fe
    style I fill:#ffebee
    style J fill:#e8f5e8
    style Q fill:#fff3e0
    style CC fill:#e1f5fe
Loading

🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

Please read the CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

📜 License

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

📢 Disclaimer

Jules Task Queue is an independent productivity tool created by the developer community. We are not affiliated with Jules, Google, or Google Labs in any way. Jules Task Queue simply helps you manage your Jules task queue more efficiently.

About

An overengineered, open-source task queue for Google Jules power users

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5