Skip to content

NaustudentX18/whisclaw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WhisClaw 🦞

Pocket AI assistant powered by Raspberry Pi Zero 2 W, Whisplay HAT & PicoClaw

GitHub stars License: MIT Platform Architecture

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.


Hardware

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

Features

  • πŸŽ™οΈ 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

Status Phrases

State Phrase
Listening "Claws open."
Thinking "Clacking claws..."
Speaking "Shelling it out."
Error "Snapped a claw. Check logs."
Low battery "Shell battery is low."

Prerequisites

  • 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

Quick Start

One-line install

curl -fsSL https://raw.githubusercontent.com/NaustudentX18/whisclaw/main/install.sh | bash

Manual install

# 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 whisclaw

Access the dashboard

Open on any device on the same network:

http://<pi-ip>:8080

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    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)                   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Services

Service Port Description
picoclaw 18889 PicoClaw gateway + agent runtime
whisclaw 8080 Web dashboard + WebSocket relay

Service management

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

Configuration

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

Project Structure

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

Troubleshooting

WhisClaw won't start

journalctl --user -u whisclaw -f

PicoClaw not responding

curl http://127.0.0.1:18889/health

Dashboard not loading

systemctl --user status whisclaw
ss -tlnp | grep 8080

Check logs

tail -f ~/whisclaw-logs/whisclaw.log
tail -f ~/whisclaw-logs/picoclaw.log

Hardware Wiring

Pi Zero 2 W  ────  Whisplay HAT  (GPIO)
       β”‚
       └──────────  PiSugar 3     (I2C: GPIO 2/3 SDA/SCL)

Full pinout: PicoClaw docs

Contributing

Issues and PRs welcome. When adding features, test on real Pi Zero 2 W hardware β€” emulators won't catch I2C/battery integration issues.

License

MIT β€” see LICENSE


🦞 Built with PicoClaw, Go, and a lot of caffeine.

About

Lightweight PicoClaw-based pocket AI assistant for Raspberry Pi with Whisplay HAT

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors