
Ваш персональный ИИ-ассистент размером всего 888 КБ (~35 КБ в коде приложения). Работает на ESP32. GPIO, cron, пользовательские инструменты, память и многое другое.

Самый маленький из возможных AI-персональный помощник для ESP32.
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); см. документацию Getting Started.apt-get, pacman, dnf или zypper во время выполнения install.sh.no, если вы не передадите -y (или не примените сохраненные предпочтения/явные флаги).--flash-mode secure в потоке установки или напрямую ./scripts/flash-secure.sh).daily, periodic и однократные once)get_diagnostics (области: быстрая/выполнение/память/скорость/время/все)gpio_read_all, i2c_scan, i2c_read/i2c_write и dht_read)neutral, friendly, technical, Проверенные цели: 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
# отредактируйте ~/.config/zclaw/dev.env
./scripts/provision-dev.sh --show-config
./scripts/provision-dev.sh
# если Telegram продолжает повторять устаревшие обновления:
./scripts/telegram-clear-backlog.sh --show-config
Больше подробностей в руководстве Local Dev & Hacking.
./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 — размещенный ретранслятор + мобильный чат-интерфейс./scripts/benchmark.sh — тестирование задержки ретранслятора/последовательного порта./scripts/test.sh — запуск тестовых потоков хоста/устройстваКогда плата находится в безопасном режиме, не настроена или путь LLM недоступен, вы все равно можете управлять ею через USB-последовательный порт без Wi-Fi или обращения к LLM.
./scripts/monitor.sh /dev/cu.usbmodem1101
# затем введите:
/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.
Тестирование пути ретранслятора (включает обработку веб-ретранслятора + круговой обход устройства):
./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.sh или ./scripts/provision-dev.sh в любое время (перепрошивка не требуется), чтобы обновить учетные данные времени выполнения: SSID/пароль Wi-Fi, бэкенд/модель/API-ключ LLM (или URL API Ollama) и белый список токенов/чат-идентификаторов Telegram.100/час и 1000/день; измените лимиты времени компиляции в main/config.h (RATELIMIT_*)../scripts/web-relay.sh и отправьте тестовое сообщение, чтобы убедиться, что устройство может ответить../scripts/release-port.sh и повторите попытку../scripts/provision-dev.sh с локальным файлом профиля (provision-dev.sh является оберткой для provision.sh --yes).witty./scripts/test-api.sh — выполнение проверок API провайдера в реальном времени (вручную/локально)| Сегмент | Байты | Размер | Доля |
|---|
логика приложения 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% |