An AI assistant that fits in a 1980s screensaver
zclaw squeezes a Telegram-chatting, GPIO-wiggling, cron-running AI assistant into under 888 KiB of ESP32 firmware.

What it does
zclaw is a C-based AI assistant for ESP32 microcontrollers. You chat with it over Telegram or a web relay, ask it to flip GPIO pins, read I2C sensors, run scheduled tasks, or recall things across reboots. The whole firmware — Wi-Fi stack, TLS, FreeRTOS, and all — ships under an 888 KiB cap. The actual application logic is roughly 38 KiB; the rest is the boring infrastructure that usually eats your flash budget.
The interesting bit
The project treats firmware size as a creative constraint, not an afterthought. The 888 KiB ceiling is enforced by design, and the README breaks down exactly where every byte goes — 44% is Wi-Fi, 16% is crypto, 4.6% is the actual zclaw code. It’s a rare peek under the hood of embedded bloat.
Key highlights
- Natural-language tool composition: chain built-in or custom C handlers through chat
- USB local admin console works without Wi-Fi or LLM —
/gpio all,/wifi scan,/factory-reset confirm - Persistent NVS memory, timezone-aware cron (
daily,periodic,once), and per-persona tone settings - Supports Anthropic, OpenAI, OpenRouter, Ollama; rate-limited at 100/hour default
- One-line bootstrap script with SHA256 verification, plus dev-provisioning scripts for iterative flashing
Caveats
- Default rate limits are conservative; bumping them requires editing
main/config.hand recompiling - Secure flash mode and credential encryption exist but are off the default path
- Telegram backlog can get stale; there’s a dedicated script to clear it
Verdict
Grab a $5 XIAO ESP32-C3 if you want a hackable, offline-capable home-automation brain that doesn’t need a Raspberry Pi and a Docker stack. Skip it if you need video, audio, or anything that wouldn’t fit in a 1993 shareware demo.