An open-source, self-hostable AI hardware workbench for Arduino Uno, ESP32, and Raspberry Pi Pico. Describe your gadget in plain language to generate:
- Firmware — Arduino C++ sketch and
platformio.iniconfig. - Wiring Diagrams — Color-coded interactive SVG maps.
- BOM — Component list, estimated prices, and reference designators.
- Build Steps — Assembly instructions with part-specific tips.
- ZIP Export — Complete, flash-ready PlatformIO workspace.
- Framework: Next.js 15 (App Router)
- Database: SQLite (via Prisma 7 &
better-sqlite3) - API: tRPC v11 & React Query
- Styling: Tailwind CSS
- Authentication: NextAuth (Credentials)
Copy .env.example to .env and fill in your keys:
GROQ_API_KEY="your-groq-api-key"
NEXTAUTH_SECRET="any-random-32-char-string"
NEXTAUTH_URL="http://localhost:3000"A Groq API key is required for AI generation. Get one free at console.groq.com/keys.
bun install
bun run setup # Push schema + seed initial templates
bun run dev # Start development server at http://localhost:3000├── prisma/ # Schema & seeding scripts
├── public/ # Branding & OG image assets
├── src/
│ ├── app/ # Next.js pages & routes (/, /app, /guides, etc.)
│ ├── components/ # Workbench IDE, SVG viewers, landing blocks, and shared UI
│ ├── lib/engine/ # Pin allocator, code gen, catalog, and parser
│ └── server/ # tRPC, auth, and database helpers
├── evals/ # Vitest eval suites for the engine
└── harbor/ # Harbor AI eval benchmark dataset
The Dockerfile defines the sandbox image used by Harbor evaluations. It is not required to run the web app.
# Build wirecraft-base and wirecraft-buggy images
./harbor/build_base.shThe image is based on node:20-alpine with bash, grep, and sed installed — chosen for its minimal CVE surface while maintaining full compatibility with npm, npx, and tsx.
Wirecraft ships a Harbor benchmark dataset for testing AI coding agents. See harbor/README.md for full details.
# Build sandbox images first
./harbor/build_base.sh
# Run all tasks with the oracle agent (should score 1.000)
harbor run --path ./harbor/dataset --agent oracle
# Run with a real agent
export ANTHROPIC_API_KEY="sk-ant-..."
harbor run --path ./harbor/dataset --agent claude-code| Task | Difficulty | Goal |
|---|---|---|
add-catalog-component |
Easy | Add a KY-026 flame sensor to catalog.ts |
fix-allocator-bug |
Medium | Debug & fix 2 injected bugs in allocator.ts |
add-new-template |
Medium | Add a Greenhouse Climate Controller template |
| Variable | Description |
|---|---|
DATABASE_URL |
PostgreSQL URL |
NEXTAUTH_SECRET |
Random secret string (≥32 chars) |
NEXTAUTH_URL |
Base URL (e.g. http://localhost:3000) |
GROQ_API_KEY |
Groq API key for LLM inference |