Merge remote-tracking branch 'origin/main'

This commit is contained in:
crispyberry
2026-02-05 12:40:09 +08:00
2 changed files with 119 additions and 0 deletions

119
README.md Normal file
View File

@@ -0,0 +1,119 @@
# MimiClaw: Pocket AI Assistant with Shareable Memory
<p align="center">
<img src="assets/banner.png" alt="MimiClaw" width="480" />
</p>
**OpenClaw on a $10 device. Local memory. Privacy-first. No OS.**
MimiClaw is a minimal reimplementation of [OpenClaw](https://github.com/openclaw/openclaw)'s WebSocket gateway control plane, built to run on an ESP32 microcontroller. It replaces the full Node.js stack with bare-metal firmware, bringing personal AI assistant infrastructure to a $10 chip with no operating system required.
## Why
OpenClaw is powerful — multi-channel messaging, agent runtime, tool ecosystem — but it assumes a full computer. MimiClaw strips it down to the core gateway and adds local-first memory, so anyone with a $10 ESP32 can run their own AI assistant hub.
- **$10 total cost** — ESP32 dev board, nothing else
- **No OS** — bare-metal firmware, boots in seconds
- **Local memory** — conversations and context stored as Markdown files on SD card / SPIFFS
- **Privacy-first** — everything stays on your device, no cloud dependency
- **Cross-platform memory sharing** — plug the SD card into any device, your memory travels with you in plain Markdown
## Architecture
```
┌─────────────────────────────────┐
│ ESP32 │
│ │
│ ┌───────────┐ ┌────────────┐ │
│ │ WebSocket │ │ Markdown │ │
│ │ Gateway │──│ Memory │ │
│ │ (Control │ │ (SPIFFS / │ │
│ │ Plane) │ │ SD Card) │ │
│ └─────┬─────┘ └────────────┘ │
│ │ │
│ ┌─────┴─────┐ │
│ │ Channel │ │
│ │ Router │ │
│ └─────┬─────┘ │
└────────┼────────────────────────┘
│ WiFi
┌────┴────┐
│ Clients │ (CLI / App / Web)
└─────────┘
```
**Gateway** — WebSocket server on the ESP32, handling session coordination, channel routing, and presence tracking (mirrors OpenClaw's localhost:18789 control plane).
**Memory** — Conversations, context, and agent state persisted as `.md` files. Human-readable, version-controllable, portable across any device.
**Channel Router** — Lightweight message routing between connected clients and upstream AI providers.
## Getting Started
### Hardware
- ESP32 dev board (ESP32-WROOM-32 or similar)
- (Optional) MicroSD card module for expanded memory
### Build & Flash
```bash
# Clone
git clone https://github.com/memovai/mimiclaw.git
cd mimiclaw
# Build with ESP-IDF
idf.py build
# Flash to ESP32
idf.py -p /dev/ttyUSB0 flash monitor
```
### Connect
Once flashed, the ESP32 starts a WebSocket server on its local IP. Connect any OpenClaw-compatible client to `ws://<esp32-ip>:18789`.
## Memory Format
Memory is stored as plain Markdown:
```
memory/
├── sessions/
│ └── 2025-01-15-chat.md
├── context/
│ └── user-preferences.md
└── agents/
└── default-agent.md
```
Each file is human-readable and editable. Copy the `memory/` folder to any device to carry your full context with you.
## Roadmap
- [ ] Core WebSocket gateway on ESP32
- [ ] SPIFFS-based Markdown memory read/write
- [ ] SD card support for larger memory
- [ ] Basic channel routing (single client)
- [ ] Multi-client session management
- [ ] BLE provisioning for WiFi setup
- [ ] OTA firmware updates
## Compared to OpenClaw
| | OpenClaw | MimiClaw |
|---|---|---|
| Runtime | Node.js | ESP32 bare-metal |
| Cost | Full computer | ~$10 |
| OS | macOS / Linux | None |
| Memory | Database | Markdown files |
| Channels | 15+ platforms | Core gateway |
| Setup | `npm install` | Flash firmware |
## License
MIT
## Acknowledgments
Built on the ideas of [OpenClaw](https://github.com/openclaw/openclaw). MimiClaw is an independent project that reimplements the gateway control plane for embedded hardware.

BIN
assets/banner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB