MimiClaw 是世界上第一个运行在 $5 芯片上的 AI 助手,无需 Linux,无需 Node.js,纯 C 语言实现。它将一个微小的 ESP32-S3 开发板变成个人 AI 助手,只需插入 USB 电源,连接 WiFi,通过 Telegram 与之对话,它就能处理你交给它的任何任务,并通过本地记忆随时间进化 — 所有这些都在一个拇指大小的芯片上完成。
无需 Linux,无需 Node.js,无臃肿代码 — 纯 C 语言实现
通过 Telegram 发送消息,它处理其余所有事情
从记忆中学习,重启后仍能记住
USB 供电,0.5 W,24/7 运行
只需一个 ESP32-S3 开发板,$5,无需其他设备
你在 Telegram 上发送消息。ESP32-S3 通过 WiFi 接收消息,将其送入代理循环 — LLM 思考、调用工具、读取记忆 — 然后发送回复。支持 Anthropic (Claude) 和 OpenAI (GPT) 作为提供商,可在运行时切换。所有操作都在单个 $5 芯片上运行,所有数据都存储在本地闪存中。
首先需要安装 ESP-IDF v5.5+:
https://docs.espressif.com/projects/esp-idf/en/v5.5.2/esp32s3/get-started/
git clone https://github.com/memovai/mimiclaw.git
cd mimiclaw
idf.py set-target esp32s3
推荐基准:
在 Ubuntu 上安装和构建:
sudo apt-get update
sudo apt-get install -y git wget flex bison gperf python3 python3-pip python3-venv \ cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
./scripts/setup_idf_ubuntu.sh
./scripts/build_ubuntu.sh
推荐基准:
在 macOS 上安装和构建:
xcode-select --install
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
./scripts/setup_idf_macos.sh
./scripts/build_macos.sh
MimiClaw 使用两层配置系统:mimi_secrets.h 中的构建时默认值,以及通过串行 CLI 的运行时覆盖。CLI 值存储在 NVS 闪存中,优先级高于构建时值。
cp main/mimi_secrets.h.example main/mimi_secrets.h
编辑 main/mimi_secrets.h:
#define MIMI_SECRET_WIFI_SSID "YourWiFiName"
#define MIMI_SECRET_WIFI_PASS "YourWiFiPassword"
#define MIMI_SECRET_TG_TOKEN "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
#define MIMI_SECRET_API_KEY "sk-ant-api03-xxxxx"
#define MIMI_SECRET_MODEL_PROVIDER "anthropic" // "anthropic" or "openai"
#define MIMI_SECRET_SEARCH_KEY "" // optional: Brave Search API key
#define MIMI_SECRET_TAVILY_KEY "" // optional: Tavily API key (preferred)
#define MIMI_SECRET_PROXY_HOST "" // optional: e.g. "10.0.0.1"
#define MIMI_SECRET_PROXY_PORT "" // optional: e.g. "7897"
然后构建并烧录:
# 清理构建(修改 mimi_secrets.h 后必需)
idf.py fullclean && idf.py build
# 查找你的串行端口
ls /dev/cu.usb* # macOS
ls /dev/ttyACM* # Linux
# 烧录并监控(将 PORT 替换为你的端口)
# USB 适配器:可能是 /dev/cu.usbmodem11401 (macOS) 或 /dev/ttyACM0 (Linux)
idf.py -p PORT flash monitor
重要:插入正确的 USB 端口!大多数 ESP32-S3 开发板有两个 USB-C 端口。你必须使用标记为 USB(原生 USB Serial/JTAG)的端口,而不是标记为 COM(外部 UART 桥)的端口。插入错误的端口会导致烧录/监控失败。
通过串行连接进行配置或调试。配置命令允许你更改设置而无需重新编译 — 只需在任何地方插入 USB 电缆。
mimi> wifi_set MySSID MyPassword # 更改 WiFi 网络
mimi> set_tg_token 123456:ABC... # 更改 Telegram 机器人令牌
mimi> set_api_key sk-ant-api03-... # 更改 API 密钥(Anthropic 或 OpenAI)
mimi> set_model_provider openai # 切换提供商 (anthropic|openai)
mimi> set_model gpt-4o # 更改 LLM 模型
mimi> set_proxy 127.0.0.1 7897 # 设置 HTTP 代理
mimi> clear_proxy # 移除代理
mimi> set_search_key BSA... # 设置 Brave Search API 密钥
mimi> set_tavily_key tvly-... # 设置 Tavily API 密钥(首选)
mimi> config_show # 显示所有配置(掩码)
mimi> config_reset # 清除 NVS,恢复为构建时默认值
mimi> wifi_status # 我是否已连接?
mimi> memory_read # 查看机器人记得什么