
适用于 ESP32 的最小 AI 个人助手。
zclaw 使用 C 语言编写,运行在 ESP32 开发板上,默认构建的固件总大小严格限制在 <= 888 KiB。它支持定时任务、GPIO 控制、持久化内存以及通过自然语言组合自定义工具。
888 KiB 上限是固件总大小,不仅仅是应用代码。它包括 zclaw 逻辑以及 ESP-IDF/FreeRTOS 运行时、Wi-Fi/网络、TLS/加密和证书包开销。
使用有趣,破解也有趣。
使用文档站点获取完整指南和参考。
一行脚本引导 (macOS/Linux):
bash <(curl -fsSL https://raw.githubusercontent.com/tnm/zclaw/main/scripts/bootstrap.sh)
已经克隆了?
./install.sh
非交互式安装:
./install.sh -y
bootstrap.sh 克隆/更新仓库,然后运行 ./install.sh。您可以先检查/验证引导流程(包括 ZCLAW_BOOTSTRAP_SHA256 完整性检查);请参阅入门文档。install.sh 运行时自动检测 apt-get、pacman、dnf 或 zypper。no,除非您传递 -y(或应用已保存的偏好设置/显式标志)。--flash-mode secure,或直接运行 ./scripts/flash-secure.sh)。./scripts/provision.sh 配置 WiFi + LLM 凭据。daily、periodic 和一次性 once)get_diagnostics 运行时诊断(快速/运行时/内存/速率/时间/所有范围)gpio_read_all、i2c_scan、i2c_read/i2c_write 和 dht_read)neutral、friendly、technical、witty已测试目标:ESP32、ESP32-C3、ESP32-S3 和 ESP32-C6。
支持经典的 ESP32-WROOM/ESP32 DevKit 开发板。
非常欢迎提供其他 ESP32 变体的测试报告!
推荐入门板:Seeed XIAO ESP32-C3
典型快速循环:
./scripts/test.sh host
./scripts/build.sh
./scripts/flash.sh --kill-monitor /dev/cu.usbmodem1101
./scripts/provision-dev.sh --port /dev/cu.usbmodem1101
./scripts/monitor.sh /dev/cu.usbmodem1101
配置文件设置一次,然后重复使用:
./scripts/provision-dev.sh --write-template
# edit ~/.config/zclaw/dev.env
./scripts/provision-dev.sh --show-config
./scripts/provision-dev.sh
# if Telegram keeps replaying stale updates:
./scripts/telegram-clear-backlog.sh --show-config
更多详情请见本地开发与破解指南。
./scripts/flash-secure.sh - 带加密刷写./scripts/provision.sh - 配置凭据到 NVS./scripts/provision-dev.sh - 本地配置文件包装器,用于重复配置./scripts/telegram-clear-backlog.sh - 清除排队的 Telegram 更新./scripts/erase.sh - 带保护措施地仅擦除 NVS (--nvs) 或全部刷写 (--all)./scripts/monitor.sh - 串口监视器./scripts/emulate.sh - 运行 QEMU 配置文件./scripts/web-relay.sh - 托管中继 + 移动聊天 UI./scripts/benchmark.sh - 基准测试中继/串口延迟./scripts/test.sh - 运行主机/设备测试流程当开发板处于安全模式、未配置或 LLM 路径不可用时,您仍然可以通过 USB 串口操作它,无需 Wi-Fi 或 LLM 往返。
./scripts/monitor.sh /dev/cu.usbmodem1101
# then type:
/wifi status
/wifi scan
/bootcount
/gpio all
/reboot
可用的本地命令:
/gpio [all|pin|pin high|pin low]/diag [scope] [verbose]/reboot/wifi [status|scan]/bootcount/factory-reset confirm(破坏性操作;清除 NVS 并重启)完整参考:本地管理控制台
当前默认 esp32 分布(来自 idf.py -B build size-components 的分组镜像字节):
此构建的镜像总大小为 853034 字节;填充后的 zclaw.bin 为 853184 字节(约 833.2 KiB),剩余 56128 字节(约 54.8 KiB)在 888 KiB 限制内。
中继路径基准测试(包括 Web 中继处理 + 设备往返):
./scripts/benchmark.sh --mode relay --count 20 --message "ping"
直接串口基准测试(主机往返 + 首次响应时间)。如果固件记录 METRIC request ... 行,报告还将包括设备端时序:
./scripts/benchmark.sh --mode serial --serial-port /dev/cu.usbmodem1101 --count 20 --message "ping"
MIT
./scripts/provision.sh 或 ./scripts/provision-dev.sh(无需重新刷写)以更新运行时凭据:WiFi SSID/密码、LLM 后端/模型/API 密钥(或 Ollama API URL)以及 Telegram Token/聊天 ID 白名单。100/小时 和 1000/天;在 main/config.h 中更改编译时限制(RATELIMIT_*)。./scripts/web-relay.sh 并发送测试消息以确认设备能够响应。./scripts/release-port.sh 后重试。./scripts/provision-dev.sh 并配合本地配置文件(provision-dev.sh 包装了 provision.sh --yes)。./scripts/test-api.sh| 段 | 字节 | 大小 | 占比 |
|---|
zclaw 应用逻辑 (libmain.a) | 39276 | ~38.4 KiB | ~4.6% |
| Wi-Fi + 网络协议栈 | 378624 | ~369.8 KiB | ~44.4% |
| TLS/加密协议栈 | 134923 | ~131.8 KiB | ~15.8% |
| 证书包 + 应用元数据 | 98425 | ~96.1 KiB | ~11.5% |
| 其他 ESP-IDF/运行时/驱动/libc | 201786 | ~197.1 KiB | ~23.7% |