← all repositories
tnm/zclaw

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.

zclaw
Velocity · 7d
+19
★ / day
Trend
steady
star history

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.h and 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.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.