Flash Firmware

Install WireClaw on your ESP32 directly from the browser. No toolchain. No PlatformIO. Just plug in and click.

What You Need

ESP32 Board

Supports ESP32-C6, ESP32-S3, and ESP32-C3 (4MB flash). Any compatible dev board with USB.

Chrome or Edge

WebSerial requires a Chromium-based browser. Chrome 89+ or Edge 89+.

USB Cable

A USB-C or Micro-USB data cable. Make sure it's not charge-only.

Install WireClaw

Your browser doesn't support WebSerial. Please open this page in Chrome 89+, Edge 89+, or Opera 75+ to flash the firmware. Firmware v0.4.0 · ESP32 · Includes filesystem

Setup Flow

From zero to a running AI agent in four steps.

1

Flash the Firmware

Click "Install WireClaw" above. Select the serial port for your ESP32. The flash process takes about 2 minutes and includes the filesystem.

2

Connect to WireClaw-Setup

After flashing, the device reboots into AP mode. The LED pulsates light blue. Connect to the WireClaw-Setup WiFi network. A captive portal opens automatically - if it doesn't, open http://192.168.4.1 in your browser.

3

Configure

Enter your WiFi credentials, API key, and model. Note: "API Base URL" is only needed for local LLMs (Ollama, llama.cpp, etc.) - leave it blank when using OpenRouter.

4

Save & Reboot

Hit save. The device reboots, connects to your WiFi, and starts the dual-loop agent. You're done - talk to it via Telegram, serial, or NATS.

Captive Portal

All configuration happens in the browser - no serial commands, no config files.

WireClaw captive portal configuration screen
WiFi SSIDrequired
Your WiFi network name.
WiFi Passwordrequired
Your WiFi password.
OpenRouter API Key
NOT required for local LLM. Get one at openrouter.ai.
Model
The LLM model to use (e.g. google/gemini-2.0-flash-001).
Device Name
A friendly name for this device (used in NATS and multi-device chat).
API Base URL
Only for local LLMs (Ollama, llama.cpp). Leave blank for OpenRouter.
NATS Host / Port
Optional. Connect to a NATS server for mesh communication.
Telegram Bot Token / Chat ID
Optional. Enable Telegram bot integration.
Timezone
POSIX timezone string for NTP sync (e.g. CET-1CEST,M3.5.0,M10.5.0/3).

Browser Support

WebSerial is required for flashing. Chromium-based browsers only.

Chrome 89+
Edge 89+
Opera 75+
Firefox
Safari

Linux / Ubuntu Users

If Chromium shows "No compatible devices found", it's likely installed as a snap, which blocks access to serial ports. Fix it by granting USB access:

sudo snap connect chromium:raw-usb

Then restart Chromium. You also need to be in the dialout group: sudo usermod -aG dialout $USER (log out and back in after).

Want the Source Code?

View on GitHub
← Back to Home