A tool to queue Claude Code prompts and automatically execute them when token limits reset, preventing manual waiting during 5-hour limit windows.
- Markdown-based Queue: Each prompt is a
.mdfile with YAML frontmatter - Automatic Rate Limit Handling: Detects rate limits and waits for reset windows
- Priority System: Execute high-priority prompts first
- Retry Logic: Automatically retry failed prompts
- Persistent Storage: Queue survives system restarts
- CLI Interface: Simple command-line interface
pip install claude-code-queueOr, for local development:
cd claude-code-queue
pip install -e .After installation, use the claude-queue command:
-
Test Claude Code connection:
claude-queue test -
Add a quick prompt:
claude-queue add "Fix the authentication bug" --priority 1 -
Create a detailed prompt template:
claude-queue template my-feature --priority 2 # Edit ~/.claude-queue/queue/my-feature.md with your prompt -
Start the queue processor:
claude-queue start
Quick prompt:
claude-queue add "Implement user authentication" --priority 1 --working-dir /path/to/projectTemplate for detailed prompt:
claude-queue template auth-featureThis creates ~/.claude-queue/queue/auth-feature.md:
---
priority: 0
working_directory: .
context_files: []
max_retries: 3
estimated_tokens: null
---
# Prompt Title
Write your prompt here...
## Context
Any additional context or requirements...
## Expected Output
What should be delivered...Check status:
claude-queue status --detailedList prompts:
claude-queue list --status queuedCancel a prompt:
claude-queue cancel abc123Start processing:
claude-queue startStart with verbose output:
claude-queue start --verbose- Queue Processing: Runs prompts in priority order (lower number = higher priority)
- Rate Limit Detection: Monitors Claude Code output for rate limit messages
- Automatic Waiting: When rate limited, waits for the next 5-hour window
- Retry Logic: Failed prompts are retried up to
max_retriestimes - File Organization:
~/.claude-queue/queue/- Pending prompts~/.claude-queue/completed/- Successful executions~/.claude-queue/failed/- Failed prompts~/.claude-queue/queue-state.json- Queue metadata
claude-queue --helpKey options:
--storage-dir: Queue storage location (default:~/.claude-queue)--claude-command: Claude CLI command (default:claude)--check-interval: Check interval in seconds (default: 30)--timeout: Command timeout in seconds (default: 3600)
Each prompt supports these YAML frontmatter options:
---
priority: 1 # Execution priority (0 = highest)
working_directory: /path/to/project # Where to run the prompt
context_files: # Files to include as context
- src/main.py
- README.md
max_retries: 3 # Maximum retry attempts
estimated_tokens: 1000 # Estimated token usage (optional)
---# Add a simple prompt
claude-queue add "Run tests and fix any failures" --priority 1
# Create template for complex prompt
claude-queue template database-migration --priority 2
# Start processing
claude-queue start---
priority: 1
working_directory: /Users/me/my-project
context_files:
- src/auth.py
- tests/test_auth.py
- docs/auth-requirements.md
max_retries: 2
estimated_tokens: 2000
---
# Fix Authentication Bug
There's a bug in the user authentication system where users can't log in with special characters in their passwords.
## Context
- The issue affects passwords containing @, #, $ symbols
- Error occurs in the password validation function
- Tests are failing in test_auth.py
## Requirements
1. Fix the password validation to handle special characters
2. Update tests to cover edge cases
3. Ensure backward compatibility
## Expected Output
- Fixed authentication code
- Updated test cases
- Documentation update if neededThe system automatically detects Claude Code rate limits by monitoring:
- "usage limit reached" messages
- Claude's reset time information
- Standard rate limit error patterns
When rate limited:
- Prompt status changes to
rate_limited - Naively loop every fixed interval until rate limit is lifted (there's probably a way smarter way to find the end time of rate limit window, open to contributions)
- Once the rate limit is lifted, continue processing the requests
Queue not processing:
# Check Claude Code connection
claude-queue test
# Check queue status
claude-queue status --detailedPrompts stuck in executing state:
- Stop queue processor (Ctrl+C)
- Restart with
claude-queue start - Executing prompts will reset to queued status
Rate limit not detected:
- Check if Claude Code output format changed
- File an issue with the error message you received
~/.claude-queue/
├── queue/ # Pending prompts
│ ├── 001-fix-bug.md
│ └── 002-feature.executing.md
├── completed/ # Successful executions
│ └── 001-fix-bug-completed.md
├── failed/ # Failed prompts
│ └── 003-failed-task.md
└── queue-state.json # Queue metadata