From intent to a buildable device.

Start with what the device should do — describe the function in plain language, or pick parts by capability. wirestudio turns that intent into a complete, verified set of artifacts: the firmware to run it and the hardware to build it — code, schematic, PCB, enclosure, and BOM, all from one source of truth.

64components
26boards
60example designs
5firmware frameworks

Intent in. A whole device out.

A goal (or a parts pick) becomes a single design.json — the only state. Pure generators turn it into both halves of a real device: the software that runs it and the hardware you actually build.

goal / parts
design.json · pins solved once
Run it
pick a target framework — the software & network identity
ESPHome YAMLWiFi / sensor devices → Home Assistant verified
LoRaWAN firmwareRadioLib · ChirpStack · Home Assistant hardware-validated
Tasmota templatesolved pins → device template + serial config push verified
Meshtastic · CircuitPythonofficial images, one WebSerial flash dialog works
Build it
the physical object — fabricate & house it
KiCad schematic.kicad_sch via SKiDL verified
PCB + fab bundle.kicad_pcb · Freerouting autoroute · Gerber / drill / CPL / BOM verified
Enclosureparametric OpenSCAD shell verified

verified = gated against upstream tools every PR · hardware-validated = proven on a real device · works = shipped with lighter checks (mocked-upstream tests, no live-flash gate)

No LLM sits in a compile or fetch path. The agent edits the design; deterministic generators produce the artifacts — so every device is reproducible, diffable, and cheap to regenerate.

What it does

Design from intent

Describe what the device should do, or pick parts by function. The agent assembles a coherent design — board, components, wiring — that you refine, instead of starting from a blank canvas.

Verified ESPHome YAML

Every bundled example is run through upstream esphome config on each change. The output is real ESPHome, not a plausible guess.

LoRaWAN + Home Assistant

Builds RadioLib firmware for US915 radio boards, flashes it over WebSerial, provisions the device against ChirpStack, and surfaces its sensors + GPS as Home Assistant entities and a map tracker.

KiCad schematic + PCB

Emits a SKiDL script for a .kicad_sch and a placed .kicad_pcb, autoroutes it with Freerouting, and packages Gerber/drill/CPL/BOM for the fab. No LLM placing wires.

Parametric enclosure

Generates an OpenSCAD shell from board mount-hole and port geometry, so the box fits the design you just drew.

CSP pin solver

Assigns legal GPIOs automatically and surfaces boot-strap, ADC2-on-WiFi, voltage, and locked-pin conflicts before you ever flash a board.

MCP server

Drives the design tools from Claude Code or Claude Desktop over the Model Context Protocol — on your subscription, no API keys to wire up.

One flash dialog

Five firmware frameworks — ESPHome, Tasmota, LoRaWAN, Meshtastic, CircuitPython — flashed over WebSerial from the browser. Official release images fetched through the studio; CircuitPython lands with a generated starter code.py.

Fleet handoff

Pushes finished YAML to a fleet-for-esphome add-on for compile and OTA deploy with live log streaming.

Local inventory

Track parts on hand, cross-check a design's BOM against the drawer (have / partial / need), and let the recommender prefer parts you already own.

Open source, MIT licensed

Install it, run the HTTP API, or drive it from your editor.