
2026/02/21 21:37
zclaw:ESP32上で動作し、サイズが 888 KB 未満の個人用 AI アシスタント --- **ポイント** - 「personal AI assistant」を「個人用 AI アシスタント」と訳すことで、誰でも使える個別対応型の助手という意味を明確にします。 - 「under 888 KB」は「サイズが 888 KB 未満」とし、容量制限を具体的に示しています。 - 「running on an ESP32」を「ESP32上で動作し」と表現し、実行環境を端的に伝えます。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
## Summary zclaw は ESP32 チップ向けのコンパクトな AI パーソナルアシスタントファームウェアで、C 言語で実装されており、デフォルトビルドでは 888 KiB 以下に収まります。zclaw のロジックと ESP-IDF/FreeRTOS ランタイム、Wi‑Fi/ネットワーキングスタック、TLS/暗号ライブラリ、および証明書バンドルを同梱し、サイズ制限内(ESP32‑S3 ビルドでは約 846 KiB:Wi‑Fi 約 366 KiB、TLS 約 123 KiB、証明書約 90 KiB、ランタイム/ドライバー約 232 KiB)に収めています。 主な機能にはスケジュールタスク、GPIO コントロール、永続メモリ、および自然言語によるツール構成が含まれます。ユーザーは Telegram コマンド(`/start`、`/help`、`/settings`、`/stop`、`/resume`)を通じて操作します。ファームウェアは Anthropic、OpenAI、および OpenRouter の LLM プロバイダーをサポートしています。 プロビジョニングはスクリプト(`bootstrap.sh`、`install.sh`、`provision.sh`)で自動化され、`--flash-mode secure` オプションを使用してセキュアフラッシュモードで実行できます。フラッシングと消去は `scripts/flash-secure.sh` と `scripts/erase.sh --nvs` または `--all` により処理されます。クイックスタートおよびベンチマークスクリプト(`benchmark.sh`)で、ユーザーはレイテンシとパフォーマンスをテストできます。 zclaw は ESP32‑C3、ESP32‑S3、および ESP32‑C6 で動作し、他のバリアントも手動でターゲット設定すれば動作するはずです。ファームウェアは MIT ライセンス下で配布されており、軽量でオープンソースの AI をエッジデバイスに導入したいホビィスト、開発者、および企業に最適です。
本文
zclaw
ESP32 用の最小限の AI パーソナルアシスタントです。
- C 言語で実装
- デフォルトビルドでは、全体(ファームウェア+ランタイム・ライブラリ等)を 888 KiB 以下に抑えることが厳格な目標
- スケジュールタスク、GPIO 制御、永続メモリ、および自然言語でのカスタムツール構成をサポート
888 KiB は ファームウェア全体 のサイズです。
zclaw ロジック+ESP‑IDF/FreeRTOS ランタイム、Wi‑Fi / ネットワーク、TLS/暗号化、証明書バンドルのオーバーヘッドが含まれます。
すぐに始める
1 行でブートストラップ(macOS/Linux)
bash <(curl -fsSL https://raw.githubusercontent.com/tnm/zclaw/main/scripts/bootstrap.sh)
リポジトリが既にクローンされている場合は
を実行してください。./install.sh
非対話型インストール
- セットアップの注意点
はリポジトリをクローン/更新し、次にbootstrap.sh
を実行します。./install.sh- フラッシュ上で暗号化された認証情報を使う場合は、インストール時または
実行時に secure モード (./scripts/flash-secure.sh
) を指定してください。--flash-mode secure
- プロビジョニング
- フラッシュ後、Wi‑Fi と LLM の認証情報を
で設定します。./scripts/provision.sh
- フラッシュ後、Wi‑Fi と LLM の認証情報を
- Telegram コントロールコマンド
,/start
: コマンドヘルプ表示/help
: ボットの状態確認/settings
: メッセージ受信を一時停止/stop
: メッセージ受信再開/resume
- 簡易検証
./scripts/web-relay.sh # デバイスが応答できるかテストメッセージを送信
- シリアルポートが占有されている場合
./scripts/release-port.sh
- ローカル再プロビジョニング(秘密情報の再入力不要)
./scripts/provision-dev.sh --profile <local-profile-file>
- 保存済み認証情報/設定だけをリセット
./scripts/erase.sh --nvs
- ファームウェア+設定の完全工場出荷状態へ戻す(確認が必要)
./scripts/erase.sh --all
詳細なセットアップ/プロビジョニング手順はドキュメントサイトのインデックスにあります。
特徴ハイライト
| 機能 | 説明 |
|---|---|
| Chat | Telegram またはホスト型 Web リレイ経由で対話 |
| Schedules | タイムゾーン対応(毎日、周期的、一回限り) |
| Tools | 既定ツール+ユーザー定義ツール |
| GPIO | 読み取り/書き込み制御(ガード機能付き) |
| Persistence | 再起動時も保持される永続メモリ |
| Providers | Anthropic、OpenAI、OpenRouter など |
対応ハードウェア
- テスト済みターゲット:ESP32‑C3, ESP32‑S3, ESP32‑C6
- 他の ESP32 バリアントも動作します(ESP‑IDF ターゲット設定が必要な場合があります)
おすすめ入門ボード: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 を作成 # 編集 ~/.config/zclaw/dev.env ./scripts/provision-dev.sh --show-config ./scripts/provision-dev.sh
詳細は Local Dev & Hacking ガイドに記載。
便利スクリプト
| スクリプト | 用途 |
|---|---|
| 暗号化付きフラッシュ |
| NVS に認証情報をプロビジョン |
| NVS だけ () またはフルフラッシュ () を安全に消去 |
| シリアルモニタ |
| QEMU プロファイルを実行 |
| ホストリレイ+モバイルチャット UI |
| リレイ/シリアルの遅延ベンチマーク |
| ホスト/デバイステストフロー実行 |
| ライブプロバイダー API チェック(手動/ローカル) |
サイズ内訳
現在の ESP32‑S3 デフォルトビルド (
idf.py -B build size-components) のフラッシュ合計:
| コンポーネント | バイト数 | KiB | 合計比率 |
|---|---|---|---|
zclaw アプリロジック () | 26 430 | ~25.8 | 3.1% |
| Wi‑Fi + ネットワークスタック | 375 278 | ~366.5 | 43.7% |
| TLS/暗号化スタック | 125 701 | ~122.8 | 14.7% |
| 証明書バンドル+アプリメタデータ | 92 654 | ~90.5 | 10.8% |
| ESP‑IDF/ランタイム/ドライバ/libc | 237 889 | ~232.3 | 27.7% |
同じビルドから取得した
zclaw.bin は 865 888 バイト(約 845.6 KiB)で、上限を下回ります。
遅延ベンチマーク
リレイ経路ベンチマーク(Web リレイ処理 + デバイス往復込み):
./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 © 2024 zclaw プロジェクト。