This guide follows Contract #001 — the zero-risk PC demo path. The Go core writes aDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/chamilonster/Piumy/llms.txt
Use this file to discover all available pages before exploring further.
status.json file describing the board’s current mood; the Python file display adapter reads it and renders the kaomoji face to display.png. No WhatsApp number, no ARM board, no physical hardware of any kind is required. It’s the fastest way to see Piumy’s face engine working and to verify that your environment can build and run the stack.
Prerequisites
- Go 1.21+ — install.go.dev
- Python 3.9+
- pip
Write a mood to status.json
The You should see output like:
state subcommand writes status.json with the mood you specify. This is the same file the display adapter and the dashboard read — the core’s single source of truth for what the board is doing right now.Render the face
Switch to the Open
file display adapter, install its dependencies, and run the renderer. It reads status.json and outputs display.png — a 250×122 px 1-bit image, the same dimensions as the e-paper panel.display.png to see the kaomoji face for the responding mood. Every mood produces a distinct face with eyes, expression, and context-aware detail.Try other moods
Go back to the core directory and try different moods to see how the face changes:The eye engine rotates through three eye types and twelve gaze directions — each render may show a slightly different gaze even for the same mood.
Seed demo data (optional)
The Output:You can then query the REST API (once
seed subcommand inserts two demo chats into the SQLite store so you can explore the REST API without a real WhatsApp connection.serve is running in the next step) with curl http://localhost:8080/api/chats to see the demo data.Start serve mode
The You should see:Open
serve subcommand starts the full switchboard: MCP server on :8081, REST API on :8080, and the web dashboard on :80. Setting PIMYWA_GATEWAY=none tells the core to skip the WhatsApp connection — everything else starts normally.http://localhost in your browser to reach the dashboard. The MCP server at http://localhost:8081/mcp is ready to accept connections from an MCP client, but will reject all requests until you configure a bearer token — see Connecting the MCP agent.The MCP endpoint is fail-closed: every request is rejected until
PIMYWA_MCP_KEY is set. Run go run . auth setup to generate a token, or pass PIMYWA_MCP_KEY=dev-token on the command line for local testing only.What’s next
Install on Raspberry Pi
Deploy Piumy on a Raspberry Pi Zero 2 W with the e-paper display and CW2015 battery gauge.
Connect WhatsApp
Link a dedicated WhatsApp number by scanning the QR code on the e-paper or the dashboard.
Configure MCP Auth
Generate a bearer token and wire your MCP client (Claude Code / OpenCode) to the board.
MCP Reference
Browse every MCP tool the agent can call:
list_chats, get_messages, send_message, and more.