概要
zclaw は、ESP32向けに設計された最小クラスのAIパーソナルアシスタント。 C言語 で実装され、ファームウェアサイズは 888 KiB以下 に抑制。 GPIO制御、スケジュール管理、永続メモリ、自然言語によるツール作成が可能。 Wi-Fi/TLS/ESP-IDF ランタイムも含めてこのサイズを実現。 セットアップや開発が容易で、カスタマイズや拡張も推奨。
zclawとは
- ESP32ボード向け AIパーソナルアシスタント
- C言語 で記述、全機能を 888 KiB以内 に収めたファームウェア
- ESP-IDF/FreeRTOS ランタイム、Wi-Fi/ネットワーク、TLS/暗号化、証明書バンドルも含む
- スケジュールタスク、GPIO制御、永続メモリ、カスタムツール作成機能
- 自然言語 による操作やツール組み合わせ
- Anthropic、OpenAI、OpenRouter など主要プロバイダー対応
- Telegram やホスト型Webリレー経由でチャット可能
- パーソナリティ選択(中立、フレンドリー、技術志向、ウィット系)
主な機能・特徴
- スケジュール管理 :タイムゾーン対応、日次・周期・一回限り設定
- GPIO制御 :安全機構付きの読み書き、バルク読み出し対応
- 永続メモリ :再起動後もデータ保持
- カスタムツール :ユーザー独自の拡張が可能
- レートリミット :デフォルトで1時間100回、1日1000回(main/config.hで変更可)
- プロバイダー選択 :Anthropic/OpenAI/OpenRouter
- ペルソナ切り替え :neutral/friendly/technical/witty
セットアップ・導入手順
- ワンラインブートストラップ (macOS/Linux)
bash <(curl -fsSL https://raw.githubusercontent.com/tnm/zclaw/main/scripts/bootstrap.sh)
- クローン済みの場合
./install.sh
- 非対話インストール
./install.sh -y
- セキュアモード (暗号化資格情報)
--flash-mode secureオプションまたは./scripts/flash-secure.sh
- WiFi・LLM資格情報登録
./scripts/provision.sh
- 動作確認
./scripts/web-relay.shでテストメッセージ送信
- シリアルポート競合時
./scripts/release-port.shで解放
- 再プロビジョニング
./scripts/provision-dev.sh+ ローカルプロファイル
ローカル開発・ハッキング
- 開発ループ例
./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
- Telegram履歴消去
./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/全フラッシュ消去(ガードレール付)./scripts/monitor.sh:シリアルモニタ./scripts/emulate.sh:QEMUプロファイル実行./scripts/web-relay.sh:Webリレー+モバイルチャットUI./scripts/benchmark.sh:リレー/シリアル遅延ベンチマーク./scripts/test.sh:ホスト/デバイステスト./scripts/test-api.sh:プロバイダーAPIチェック
ファームウェアサイズ内訳(esp32s3例)
- zclawアプリロジック (libmain.a): ~34.9 KiB (4.1%)
- Wi-Fi+ネットワークスタック : ~388.0 KiB (45.7%)
- TLS/暗号化スタック : ~110.3 KiB (13.0%)
- 証明書バンドル+アプリメタデータ : ~97.4 KiB (11.5%)
- その他ESP-IDF/ランタイム/ドライバ/libc : ~218.8 KiB (25.8%)
- 合計イメージサイズ : ~849.6 KiB (上限内)
レイテンシベンチマーク
- リレーパス :
./scripts/benchmark.sh --mode relay --count 20 --message "ping" - シリアル直結 :
./scripts/benchmark.sh --mode serial --serial-port /dev/cu.usbmodem1101 --count 20 --message "ping"
ハードウェア対応・推奨
- テスト済み :ESP32-C3/ESP32-S3/ESP32-C6
- その他ESP32 :一部は手動でESP-IDFターゲット設定が必要な場合あり
- 推奨ボード :Seeed XIAO ESP32-C3
ドキュメント・サポート
- 公式ドキュメントサイト :完全なガイド・リファレンス提供
- README/Changelog :Webで閲覧可能
- MITライセンス