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.
"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.
- 🔑 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.
You can use our hosted version for a zero-config setup or deploy your own instance.
- Install the GitHub App: Click the button below and authorize it for the repositories you want to use.
- Add the
juleslabel to any GitHub issue to start processing.
Deploy your own instance with one click:
For detailed instructions on self-hosting with Docker, Vercel, or Firebase, please see our documentation:
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
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.
This project is licensed under the MIT License - see the LICENSE file for details.
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.