
مساعدك الشخصي للذكاء الاصطناعي بحجم 888KiB (~35KB في كود التطبيق). يعمل على ESP32. GPIO، cron، أدوات مخصصة، ذاكرة، والمزيد.

أصغر مساعد شخصي بالذكاء الاصطناعي ممكن لـ ESP32.
zclaw مكتوب بلغة C ويعمل على لوحات ESP32 بهدف صارم لميزانية البرنامج الثابت الكامل يبلغ <= 888 KiB في البناء الافتراضي. يدعم المهام المجدولة، والتحكم في GPIO، والذاكرة الدائمة، وتكوين الأدوات المخصصة من خلال اللغة الطبيعية.
الحد 888 KiB هو حجم البرنامج الثابت الكامل، وليس كود التطبيق فقط. يتضمن منطق zclaw بالإضافة إلى زمن تشغيل ESP-IDF/FreeRTOS، والشبكات/الواي فاي، و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)؛ اطلع على توثيق البدء.apt-get أو pacman أو dnf أو zypper أثناء تشغيل install.sh.no إلا إذا قمت بتمرير -y (أو تم تطبيق التفضيلات المحفوظة/العلامات الصريحة).--flash-mode secure في تدفق التثبيت، أو ./scripts/flash-secure.sh مباشرة).daily، periodic، ومرة واحدة once)get_diagnostics (نطاقات quick/runtime/memory/rates/time/all)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 - مرحل مستضاف + واجهة الدردشة المحمولة./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.
قياس أداء مسار المرحل (يشمل معالجة مرحل الويب + رحلة ذهاب وإياب الجهاز):
./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 في أي وقت (بدون الحاجة إلى إعادة الفلاش) لتحديث بيانات اعتماد وقت التشغيل: WiFi SSID/كلمة المرور، وLLM backend/النموذج/مفتاح API (أو Ollama URL API)، ورمز 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)../scripts/test-api.sh - تشغيل فحوصات API الحية للمزود (يدوي/محلي)| المقطع | Bytes | Size | Share |
|---|
منطق تطبيق 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% |