Note: Claude Draws is no longer accepting new submissions. The gallery remains available to browse all the artworks that were created.
An automated art project where Claude for Chrome created crowdsourced illustrations using Kid Pix, sourced from user submissions at claudedraws.xyz.
🎨 Gallery: claudedraws.xyz
Claude Draws was a fully automated art pipeline that:
- Accepted Submissions - Users submitted art requests via a web form
- Created Art - Used browser automation to have Claude for Chrome draw in Kid Pix (a nostalgic 90s paint program)
- Processed & Published - Automatically extracted metadata, uploaded images to R2 storage, and saved metadata to D1 database
- Notified Users - Sent email notifications when artworks were complete (if email provided)
The entire process ran autonomously - from request to published artwork - with no manual intervention required.
Web Form Submission → Cloudflare D1 Database → Browser Automation →
→ Claude Draws in Kid Pix → Temporal Workflow →
→ BAML Metadata Extraction → Cloudflare R2 Storage →
→ D1 Metadata Insert → Email Notification (optional)
Frontend
- SvelteKit - SSR-on-demand with D1 API backend
- Tailwind CSS - Styling
- Cloudflare Workers - Hosting
Backend
- Python - CLI automation
- Playwright - Browser automation via Chrome DevTools Protocol
- Temporal - Workflow orchestration
- BAML - AI-powered metadata extraction
- Cloudflare D1 - SQLite database for artwork metadata
- Cloudflare R2 - Object storage for images
Art Tool
- Kid Pix - Open-source JavaScript recreation of the classic 90s drawing program
This is a monorepo containing both the Python backend and SvelteKit frontend:
claude-draws/
├── backend/ # Python backend services
│ ├── claudedraw/ # CLI for browser automation
│ ├── workflows/ # Temporal workflows for processing
│ ├── worker/ # Temporal worker process
│ ├── baml_src/ # BAML metadata extraction configs
│ └── pyproject.toml # Python dependencies
├── gallery/ # SvelteKit static site
├── .chrome-data/ # Chrome profile for automation
├── downloads/ # Temporary artwork storage
├── docs/ # Architecture documentation
└── docker-compose.yml # Orchestrates all services
- Fully Automated - No manual steps from request to publication
- Reliable - Temporal workflows provide automatic retries and error recovery
- Scalable - Static site hosted on Cloudflare's global CDN
- Cost-Effective - R2 storage with zero egress fees
- Open Source - MIT licensed, contributions welcome
TODO: Complete local development setup instructions
For now, see CLAUDE.md for detailed technical documentation and development commands.
Visit claudedraws.xyz to browse all the artworks Claude created!
Each artwork includes:
- The finished Kid Pix illustration
- Claude's title for the piece
- Claude's artist statement explaining the creative choices
- The original user prompt
Uses Playwright with Chrome DevTools Protocol (CDP) to control Claude for Chrome extension, combined with OS-level keyboard automation to trigger browser shortcuts.
Temporal handles the complex multi-step process of extracting metadata, uploading images to R2, and inserting metadata into D1 - all with automatic retries and full visibility.
BAML (Bounded Automation Markup Language) reliably parses Claude's unstructured HTML responses to extract artwork titles and artist statements.
SvelteKit uses SSR-on-demand to render pages with fresh data from D1 database. New artworks appear immediately in the gallery without requiring a rebuild or deployment.
MIT - see LICENSE for details
- Kid Pix - Original software by Craig Hickman (1989)
- Kid Pix JS - Open-source recreation at kidpix.app
- Claude - Anthropic's AI assistant powering the artwork creation
Note: This was an experimental art project demonstrating AI automation capabilities. The artwork was generated by Claude for Chrome using browser automation, not by Claude's API.
