
Dein persönlicher KI-Assistent mit insgesamt 888KiB (~35KB im Anwendungscode). Läuft auf einem ESP32. GPIO, Cron, benutzerdefinierte Tools, Speicher und mehr.

Der kleinstmögliche KI-Personal-Assistent für ESP32.
zclaw ist in C geschrieben und läuft auf ESP32-Boards mit einem strengen All-In-Firmware-Budget von <= 888 KiB im Standard-Build. Es unterstützt geplante Aufgaben, GPIO-Steuerung, persistenten Speicher und die Erstellung benutzerdefinierter Tools durch natürliche Sprache.
Die 888 KiB-Grenze bezieht sich auf die gesamte Firmware-Größe, nicht nur auf den Anwendungscode.
Es beinhaltet die zclaw-Logik sowie ESP-IDF/FreeRTOS-Laufzeit, Wi‑Fi/Netzwerk, TLS/Verschlüsselung und Zertifikatbundle-Overhead.
Macht Spaß zu benutzen, macht Spaß, daran herumzubasteln.
Nutzen Sie die Dokumentationsseite für vollständige Anleitungen und Referenzen.
Einzeiliger Bootstrap (macOS/Linux):
bash <(curl -fsSL https://raw.githubusercontent.com/tnm/zclaw/main/scripts/bootstrap.sh)
Bereits geklont?
./install.sh
Nicht-interaktive Installation:
./install.sh -y
bootstrap.sh klont/aktualisiert das Repository und führt dann ./install.sh aus. Sie können den Bootstrap-Ablauf zuerst überprüfen (einschließlich ZCLAW_BOOTSTRAP_SHA256-Integritätsprüfungen); siehe die Erste-Schritte-Dokumentation.install.sh-Ausführung automatisch apt-get, pacman, dnf oder zypper.no beantwortet, es sei denn, Sie übergeben -y (oder gespeicherte Einstellungen/explizite Flags gelten).--flash-mode secure im Installationsablauf oder direkt ./scripts/flash-secure.sh).daily, periodic und einmalig once)get_diagnostics (schnell/Laufzeit/Speicher/Raten/Zeit/alle Bereiche)gpio_read_all, i2c_scan, i2c_read/i2c_write und dht_read)neutral, friendly, technical, Getestete Ziele: ESP32, ESP32-C3, ESP32-S3 und ESP32-C6. Klassische ESP32-WROOM/ESP32 DevKit-Platinen werden unterstützt. Testberichte für andere ESP32-Varianten sind sehr willkommen!
Empfohlenes Einstiegsboard: Seeed XIAO ESP32-C3
Typischer schneller Durchlauf:
./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
Profileinrichtung einmalig, dann wiederverwenden:
./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
Weitere Details im Leitfaden für lokale Entwicklung & Hacken.
./scripts/flash-secure.sh - Flashen mit Verschlüsselung./scripts/provision.sh - Anmeldeinformationen in NVS bereitstellen./scripts/provision-dev.sh - Lokaler Profil-Wrapper für wiederholte Bereitstellung./scripts/telegram-clear-backlog.sh - Ausstehende Telegram-Updates löschen./scripts/erase.sh - Nur NVS löschen (--nvs) oder vollständigen Flash (--all) mit Schutzmaßnahmen./scripts/monitor.sh - Serieller Monitor./scripts/emulate.sh - QEMU-Profil ausführen./scripts/web-relay.sh - Gehosteter Relay + mobile Chat-Benutzeroberfläche./scripts/benchmark.sh - Benchmark-Relay/serielle Latenz./scripts/test.sh - Host/Gerät-Testabläufe ausführenWenn sich das Board im abgesicherten Modus befindet, nicht bereitgestellt ist oder der LLM-Pfad nicht verfügbar ist, können Sie es weiterhin über USB-Seriell ohne WLAN oder LLM-Roundtrip betreiben.
./scripts/monitor.sh /dev/cu.usbmodem1101
# then type:
/wifi status
/wifi scan
/bootcount
/gpio all
/reboot
Verfügbare lokale Befehle:
/gpio [all|pin|pin high|pin low]/diag [scope] [verbose]/reboot/wifi [status|scan]/bootcount/factory-reset confirm (zerstörerisch; löscht NVS und startet neu)Vollständige Referenz: Lokale Administrationskonsole
Aktuelle Standard-esp32-Aufschlüsselung (gruppierte Image-Bytes aus idf.py -B build size-components):
Gesamtgröße des Images aus diesem Build beträgt 853034 Bytes; aufgefülltes zclaw.bin ist 853184 Bytes (~833.2 KiB), womit 56128 Bytes (~54.8 KiB) unter der 888‑KiB-Grenze verbleiben.
Relay-Pfad-Benchmark (beinhaltet Web-Relay-Verarbeitung + Geräte-Roundtrip):
./scripts/benchmark.sh --mode relay --count 20 --message "ping"
Direkter serieller Benchmark (Host-Roundtrip + erste Antwortzeit). Wenn die Firmware METRIC request ...-Zeilen protokolliert, enthält der Bericht auch die geräteseitige Zeitmessung:
./scripts/benchmark.sh --mode serial --serial-port /dev/cu.usbmodem1101 --count 20 --message "ping"
MIT
./scripts/provision.sh../scripts/provision.sh oder ./scripts/provision-dev.sh erneut ausführen (kein erneutes Flashen erforderlich), um Laufzeit-Anmeldeinformationen zu aktualisieren: WLAN-SSID/Passwort, LLM-Backend/Modell/API-Schlüssel (oder Ollama-API-URL) und Telegram-Token/Chat-ID-Zulassungsliste.100/Stunde und 1000/Tag; ändern Sie die Compile-Zeit-Limits in main/config.h (RATELIMIT_*)../scripts/web-relay.sh aus und senden Sie eine Testnachricht, um zu bestätigen, dass das Gerät antworten kann../scripts/release-port.sh aus und wiederholen Sie den Vorgang../scripts/provision-dev.sh mit einer lokalen Profildatei (provision-dev.sh umschließt provision.sh --yes).witty./scripts/test-api.sh - Live-Provider-API-Prüfungen ausführen (manuell/lokal)| Segment | Bytes | Größe | Anteil |
|---|
zclaw-Anwendungslogik (libmain.a) | 39276 | ~38.4 KiB | ~4.6% |
| Wi‑Fi + Netzwerkstack | 378624 | ~369.8 KiB | ~44.4% |
| TLS/Verschlüsselungsstack | 134923 | ~131.8 KiB | ~15.8% |
| Zertifikatsbundle + Anwendungsmetadaten | 98425 | ~96.1 KiB | ~11.5% |
| andere ESP-IDF/Laufzeit/Treiber/libc | 201786 | ~197.1 KiB | ~23.7% |