Pocket AI assistant powered by Raspberry Pi Zero 2 W, Whisplay HAT & PicoClaw
WhisClaw transforms a Raspberry Pi Zero 2 W + Whisplay HAT into a standalone pocket AI companion. It pairs a PicoClaw local agent runtime with cloud LLM inference, delivering voice I/O, a mobile web dashboard, battery monitoring, and a lobster persona.
| Component | Details |
|---|---|
| Pi Zero 2 W | Quad-core ARM Cortex-A53, 512MB RAM |
| Whisplay HAT | 1.3" LCD, buttons, microphone, speaker (via GPIO) |
| PiSugar 3 | Battery management + UPS (I2C) |
| PicoClaw | Lightweight agent runtime β ~30MB binary, <10MB RAM |
- ποΈ Voice I/O β Wake word, speech-to-text, text-to-speech
- π Whisplay Dashboard β Mobile-first web UI on port 8080
- Chat, System monitor (CPU / memory / battery), Cron scheduler, Calendar, Config panels
- π Battery monitoring β PiSugar 3 via I2C
- π Dark theme UI β Frosted glass, bottom nav (mobile) / sidebar (desktop)
- π¦ Lobster persona β "Claws open.", "Clacking claws...", "Shelling it out."
- π Dual backend β MiniMax-M2.7 and OpenAI-compatible APIs
- β‘ systemd services β Auto-start on boot, crash recovery
- π οΈ CLI β
whisclaw start / stop / status / chat / config / logs
| State | Phrase |
|---|---|
| Listening | "Claws open." |
| Thinking | "Clacking claws..." |
| Speaking | "Shelling it out." |
| Error | "Snapped a claw. Check logs." |
| Low battery | "Shell battery is low." |
- Raspberry Pi Zero 2 W running Raspberry Pi OS Lite (64-bit recommended)
- Wi-Fi connectivity
- API key for your LLM provider β MiniMax recommended
- SSH access to the Pi
curl -fsSL https://raw.githubusercontent.com/NaustudentX18/whisclaw/main/install.sh | bash# 1. Clone the repo onto your Pi
git clone https://github.com/NaustudentX18/whisclaw.git ~/whisclaw-src
cd ~/whisclaw-src
# 2. Run the installer
chmod +x install.sh
./install.sh
# 3. Configure your API key
cp .env.example ~/.whisclaw/.env
nano ~/.whisclaw/.env
# Set MINIMAX_API_KEY=your_key_here
# 4. Enable and start services
systemctl --user daemon-reload
systemctl --user enable --now picoclaw whisclawOpen on any device on the same network:
http://<pi-ip>:8080
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Browser / Phone β
β http://<pi-ip>:8080 β
βββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β HTTP / WebSocket
ββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ
β whisclaw-web (Go) β
β ββββββββββ ββββββββββ ββββββββββ ββββββββββ ββββββ β
β β Chat β β System β β Cron β βCalendarβ βCfg β β
β ββββββ¬ββββ ββββββ¬ββββ ββββββ¬ββββ ββββββ¬ββββ ββββββ β
β βββββββββββββΌβββββββββββββΌβββββββββββββ β
β β WebSocket relay β
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββ
β localhost:18889
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββ
β PicoClaw Gateway β
β picoclaw agent runtime + bridge script β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β HTTPS / API
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββ
β Cloud LLM (MiniMax / OpenAI) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Service | Port | Description |
|---|---|---|
picoclaw |
18889 | PicoClaw gateway + agent runtime |
whisclaw |
8080 | Web dashboard + WebSocket relay |
whisclaw start # Start both services
whisclaw stop # Stop both services
whisclaw status # Check running state
whisclaw restart # Restart both services
whisclaw logs # Tail WhisClaw logs| Variable | Default | Description |
|---|---|---|
WHISCLAW_BACKEND |
picoclaw |
Agent backend |
MINIMAX_API_KEY |
β | Your MiniMax API key |
MINIMAX_LLM_MODEL |
MiniMax-M2.7 |
Model identifier |
MINIMAX_API_URL |
MiniMax endpoint | API base URL |
WHISPLAY_IM_BRIDGE_HOST |
127.0.0.1 |
Whisplay IM bridge host |
WHISPLAY_IM_BRIDGE_PORT |
18888 |
Whisplay IM bridge port |
whisclaw/
βββ install.sh # One-command Pi installer
βββ whisclaw.service # systemd unit (WhisClaw web)
βββ picoclaw.service # systemd unit (PicoClaw gateway)
βββ .env.example # Configuration template
βββ src/
β βββ cloud-api/
β βββ picoclaw/
β βββ picoclaw-llm.ts # PicoClaw β LLM bridge
βββ whisclaw-web/ # Go web server (on Pi after install)
βββ main.go # Entry point, HTTP handlers
βββ handlers.go # API: status, config
βββ websocket.go # Browser β gateway relay
βββ cron.go # Cron job management
βββ calendar.go # Calendar events
βββ system.go # Battery, CPU, memory, uptime
βββ config.go # Viper config
βββ static/ # Mobile-first SPA
βββ index.html
βββ css/style.css # Dark theme, frosted glass
βββ js/ # app, chat, config, cron, calendar, system
βββ assets/ # Static assets
WhisClaw won't start
journalctl --user -u whisclaw -fPicoClaw not responding
curl http://127.0.0.1:18889/healthDashboard not loading
systemctl --user status whisclaw
ss -tlnp | grep 8080Check logs
tail -f ~/whisclaw-logs/whisclaw.log
tail -f ~/whisclaw-logs/picoclaw.logPi Zero 2 W ββββ Whisplay HAT (GPIO)
β
βββββββββββ PiSugar 3 (I2C: GPIO 2/3 SDA/SCL)
Full pinout: PicoClaw docs
Issues and PRs welcome. When adding features, test on real Pi Zero 2 W hardware β emulators won't catch I2C/battery integration issues.
MIT β see LICENSE
π¦ Built with PicoClaw, Go, and a lot of caffeine.