
모든 기능을 갖춘 888KiB (앱 코드 약 35KB)의 개인 AI 비서입니다. ESP32에서 실행됩니다. GPIO, cron, 사용자 정의 도구, 메모리 등.

ESP32를 위한 가장 작은 AI 개인 비서.
zclaw는 C로 작성되었으며, 기본 빌드에서 <= 888 KiB의 엄격한 올인 펌웨어 예산 목표로 ESP32 보드에서 실행됩니다. 예약 작업, 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를 통한 런타임 진단 (빠른/런타임/메모리/속도/시간/모든 범위)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% |