MimiClaw: Pocket AI Assistant on a $5 Chip

English | 中文

MimiClaw

The world's first AI assistant(OpenClaw) on a $5 chip. No Linux. No Node.js. Just pure C

MimiClaw turns a tiny ESP32-S3 board into a personal AI assistant. Plug it into USB power, connect to WiFi, and talk to it through Telegram — it handles any task you throw at it and evolves over time with local memory — all on a chip the size of a thumb.

Meet MimiClaw

  • Tiny — No Linux, no Node.js, no bloat — just pure C
  • Handy — Message it from Telegram, it handles the rest
  • Loyal — Learns from memory, remembers across reboots
  • Energetic — USB power, 0.5 W, runs 24/7
  • Lovable — One ESP32-S3 board, $5, nothing else

How It Works

                         ┌─────────────── Agent Loop ───────────────┐
                         │                                          │
 ┌───────────┐     ┌─────▼─────┐     ┌─────────┐     ┌─────────┐  │
 │ Channels  │     │  Message   │     │  Claude  │     │  Tools  │  │
 │           │────▶│  Queue     │────▶│  (LLM)   │────▶│         │──┘
 │ Telegram  │     └───────────┘     └────┬─────┘     └────┬────┘
 │ WebSocket │◀──────────────────────────-│                │
 └───────────┘        Response            │                │
                                    ┌─────▼────────────────▼────┐
                                    │        Context            │
                                    │  ┌──────────┐ ┌────────┐  │
                                    │  │  Memory   │ │ Skills │  │
                                    │  │ SOUL.md   │ │  OTA   │  │
                                    │  │ USER.md   │ │  CLI   │  │
                                    │  │ MEMORY.md │ │  ...   │  │
                                    │  └──────────┘ └────────┘  │
                                    └───────────────────────────┘
                                          ESP32-S3 Flash

You send a message on Telegram. The ESP32-S3 picks it up over WiFi, feeds it into an agent loop — Claude thinks, calls tools, reads memory — and sends the reply back. Everything runs on a single $5 chip with all your data stored locally on flash.

Quick Start

What You Need

  • An ESP32-S3 dev board with 16 MB flash and 8 MB PSRAM (e.g. Xiaozhi AI board, ~$10)
  • A USB Type-C cable
  • A Telegram bot token — talk to @BotFather on Telegram to create one
  • An Anthropic API key — from console.anthropic.com

Install

# You need ESP-IDF v5.5+ installed first:
# 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

Configure

All configuration is done through mimi_secrets.h at build time:

cp main/mimi_secrets.h.example main/mimi_secrets.h

Edit 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_SEARCH_KEY      ""              // optional: Brave Search API key
#define MIMI_SECRET_PROXY_HOST      ""              // optional: e.g. "10.0.0.1"
#define MIMI_SECRET_PROXY_PORT      ""              // optional: e.g. "7897"

Then build and flash:

# Clean build (required after any mimi_secrets.h change)
idf.py fullclean && idf.py build

# Find your serial port
ls /dev/cu.usb*          # macOS
ls /dev/ttyACM*          # Linux

# Flash and monitor (replace PORT with your port)
# USB adapter: likely /dev/cu.usbmodem11401 (macOS) or /dev/ttyACM0 (Linux)
idf.py -p PORT flash monitor

CLI Commands

The serial CLI provides debug and maintenance commands:

mimi> wifi_status              # am I connected?
mimi> memory_read              # see what the bot remembers
mimi> memory_write "content"   # write to MEMORY.md
mimi> heap_info                # how much RAM is free?
mimi> session_list             # list all chat sessions
mimi> session_clear 12345      # wipe a conversation
mimi> restart                  # reboot

Memory

MimiClaw stores everything as plain text files you can read and edit:

File What it is
SOUL.md The bot's personality — edit this to change how it behaves
USER.md Info about you — name, preferences, language
MEMORY.md Long-term memory — things the bot should always remember
2026-02-05.md Daily notes — what happened today
tg_12345.jsonl Chat history — your conversation with the bot

Tools

MimiClaw uses Anthropic's tool use protocol — Claude can call tools during a conversation and loop until the task is done (ReAct pattern).

Tool Description
web_search Search the web via Brave Search API for current information
get_current_time Fetch current date/time via HTTP and set the system clock

To enable web search, set a Brave Search API key via MIMI_SECRET_SEARCH_KEY in mimi_secrets.h.

Also Included

  • WebSocket gateway on port 18789 — connect from your LAN with any WebSocket client
  • OTA updates — flash new firmware over WiFi, no USB needed
  • Dual-core — network I/O and AI processing run on separate CPU cores
  • HTTP proxy — CONNECT tunnel support for restricted networks
  • Tool use — ReAct agent loop with Anthropic tool use protocol

For Developers

Technical details live in the docs/ folder:

License

MIT

Acknowledgments

Inspired by OpenClaw and Nanobot. MimiClaw reimplements the core AI agent architecture for embedded hardware — no Linux, no server, just a $5 chip.

Description
No description provided
Readme MIT 2.2 MiB
Languages
C 96.6%
Shell 2.6%
CMake 0.8%