zclaw docs

chapter 0

The 888 KiB Assistant

zclaw is an ESP32-resident AI agent written in C. It runs as a practical assistant over Telegram or host relay, with scheduling, GPIO control, memory, and a tight firmware budget.

Enjoy with zclaw

  • "Remind me in 20 minutes."
  • "Water the plants every day at 8:15."
  • "Set GPIO 5 high."
  • "Remember that my office sensor is on GPIO 4."

You send plain language, zclaw maps to tool calls, firmware executes on silicon.

You: In 20 minutes, check the garage sensor
Agent: Created schedule #7: once in 20 min -> check the garage sensor
Lobster soldering a Seeed Studio XIAO ESP32-C3
Tested targets: ESP32-C3, ESP32-S3, and ESP32-C6. Other ESP32 variants should work fine.

What "888 KiB" Means

The 888 KiB target is an all-in firmware cap, not just zclaw application logic. It includes app code plus ESP-IDF/FreeRTOS runtime, Wi-Fi/networking, TLS/crypto, and cert bundle overhead.

Current default esp32s3 build (grouped loadable image bytes from idf.py -B build size-components; rows sum to total image size):

LayerSizeShare
zclaw app logic (libmain.a)35,742 bytes (~34.9 KiB)~4.1%
Wi-Fi + networking stack397,356 bytes (~388.0 KiB)~45.7%
TLS/crypto stack112,922 bytes (~110.3 KiB)~13.0%
Cert bundle + app metadata99,722 bytes (~97.4 KiB)~11.5%
Other ESP-IDF/runtime/drivers/libc224,096 bytes (~218.8 KiB)~25.8%

Total image size from this build is 869,838 bytes; padded zclaw.bin is 869,952 bytes (~849.6 KiB), under the 888 KiB cap.

Read This Manual In Order

Project Character

  • Language/runtime: C + ESP-IDF + FreeRTOS.
  • LLM backends: Anthropic, OpenAI, OpenRouter.
  • Interface: Telegram and optional host web relay.
  • Philosophy: ship useful automation under strict resource bounds.