mimiclaw

mimiclaw

MimiClaw: Run OpenClaw on a $5 chip. No OS(Linux). No Node.js. No Mac mini. No Raspberry Pi. No VPS.πŸ˜—Local-first memory. Shareable. Privacy-first.

Stars: 175

Visit
 screenshot

MimiClaw is a pocket AI assistant that runs on a $5 chip, specifically designed for the ESP32-S3 board. It operates without Linux or Node.js, using pure C language. Users can interact with MimiClaw through Telegram, enabling it to handle various tasks and learn from local memory. The tool is energy-efficient, running on USB power 24/7. With MimiClaw, users can have a personal AI assistant on a chip the size of a thumb, making it convenient and accessible for everyday use.

README:

MimiClaw: Pocket AI Assistant on a $5 Chip

License: MIT DeepWiki Discord X

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

MimiClaw uses a two-layer config system: build-time defaults in mimi_secrets.h, with runtime overrides via the serial CLI. CLI values are stored in NVS flash and take priority over build-time values.

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

Connect via serial to configure or debug. Config commands let you change settings without recompiling β€” just plug in a USB cable anywhere.

Runtime config (saved to NVS, overrides build-time defaults):

mimi> wifi_set MySSID MyPassword   # change WiFi network
mimi> set_tg_token 123456:ABC...   # change Telegram bot token
mimi> set_api_key sk-ant-api03-... # change Anthropic API key
mimi> set_model claude-sonnet-4-5  # change LLM model
mimi> set_proxy 127.0.0.1 7897  # set HTTP proxy
mimi> clear_proxy                  # remove proxy
mimi> set_search_key BSA...        # set Brave Search API key
mimi> config_show                  # show all config (masked)
mimi> config_reset                 # clear NVS, revert to build-time defaults

Debug & maintenance:

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:

  • docs/ARCHITECTURE.md β€” system design, module map, task layout, memory budget, protocols, flash partitions
  • docs/TODO.md β€” feature gap tracker and roadmap

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.

Star History

Star History Chart

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for mimiclaw

Similar Open Source Tools

For similar tasks

For similar jobs