
あなたのパーソナルAIアシスタント、わずか888KiB(アプリコード約35KB)でオールインワン。ESP32上で動作。GPIO、cron、カスタムツール、メモリ、その他もろもろ。

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を自動検出します。-yを渡さない限り(または保存された設定/明示的なフラグが適用されない限り)、未回答のインストールプロンプトはデフォルトでnoになります。--flash-mode secure、または直接./scripts/flash-secure.sh)を使用します。./scripts/provision.shでWiFi + LLMの認証情報をプロビジョニングします。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 - ホスト型リレー + モバイルチャットUI./scripts/benchmark.sh - リレー/シリアルレイテンシのベンチマーク./scripts/test.sh - ホスト/デバイステストフローの実行ボードがセーフモード、未プロビジョニング、またはLLMパスが利用できない場合でも、Wi-FiやLLMの往復なしでUSBシリアル経由で操作できます。
./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)で、888 KiBの上限に対して56128バイト(約54.8 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-dev.shを再実行して(再フラッシュ不要)、ランタイム認証情報(WiFi SSID/パスワード、LLMバックエンド/モデル/APIキー(またはOllama API URL)、Telegramトークン/チャット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 - ライブプロバイダ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% |