An open API service indexing awesome lists of open source software.

https://github.com/hra42/picoclaw-dashboard

Live status dashboard for PicoClaw on Raspberry Pi Zero 2W with Argon POD display
https://github.com/hra42/picoclaw-dashboard

dashboard display golang monitoring picoclaw raspberry-pi

Last synced: about 1 month ago
JSON representation

Live status dashboard for PicoClaw on Raspberry Pi Zero 2W with Argon POD display

Awesome Lists containing this project

README

          

# picoclaw-dashboard

A lightweight Go tool that renders a live status dashboard for [PicoClaw](https://picoclaw.net/) on an [Argon POD](https://argon40.com/en-de/collections/argon-pod-series) 2.8" display (320x240 framebuffer) attached to a Raspberry Pi Zero 2W.

Shows an animated crab mascot and key metrics like uptime, model name, Discord status, memory usage, and message count — all updating on independent cadences.

![Dashboard screenshot](docs/screenshot.png)

## Features

- **Single binary** — sole dependency is `golang.org/x/image` for bitmap font rendering
- **Animated crab** — 2-frame ASCII art toggling every 1.5 seconds
- **Live metrics** — uptime, status, model, Discord, memory, messages, last activity
- **Color-coded values** — green/yellow/red based on health thresholds
- **Graceful degradation** — shows `--` placeholders when PicoClaw is offline
- **Dev mode** — renders to PNG instead of framebuffer for testing without hardware
- **Minimal footprint** — designed for RPi Zero 2W, ~6 MB binary, <15 MB RAM

## Data Sources

| Source | Cadence | Metrics |
|--------|---------|---------|
| `GET localhost:18790/health` | 5s | Uptime, status, memory, version |
| `~/.picoclaw/config.json` | 30s | Model name, Discord enabled |
| `~/.picoclaw/workspace/state/state.json` | 30s | Gateway state |
| `~/.picoclaw/workspace/sessions/*.jsonl` | 30s | Message count, last activity |

## Building

Requires Go 1.25+.

```bash
# Local build
make build

# Cross-compile for Raspberry Pi Zero 2W (ARM64)
make build-arm64

# Run in dev mode (outputs PNG to /tmp/dashboard.png)
make dev
```

## Configuration

```
Usage:
picoclaw-dashboard [flags]

Flags:
-dev Write PNG to /tmp/dashboard.png instead of framebuffer
-fb string Framebuffer device path (default "/dev/fb0")
-home string PicoClaw home directory (default "~/.picoclaw")
-health string Health endpoint URL (default "http://localhost:18790/health")
```

## Deployment

Copy the binary and service file to the Pi:

```bash
scp picoclaw-dashboard-arm64 picoclaw-dashboard.service pi@yourpi.local:/tmp/
```

Then on the Pi:

```bash
# Install
sudo cp /tmp/picoclaw-dashboard-arm64 /usr/local/bin/picoclaw-dashboard
sudo chmod +x /usr/local/bin/picoclaw-dashboard

# Set up systemd service
sudo cp /tmp/picoclaw-dashboard.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable picoclaw-dashboard
sudo systemctl start picoclaw-dashboard
```

Or use the Makefile shortcut (configure `PI_HOST`):

```bash
make deploy PI_HOST=pi@yourpi.local
```

### Service management

```bash
sudo systemctl status picoclaw-dashboard # Check status
sudo systemctl restart picoclaw-dashboard # Restart
sudo systemctl stop picoclaw-dashboard # Stop
sudo journalctl -u picoclaw-dashboard -f # Tail logs
```

## License

This project is released into the public domain under the [Unlicense](LICENSE).