The dashboard captures it, the chart visualizes it, and the lab synthesizes it. Here's every piece of the system.
The main interface during a roast. Live temperature metrics across the top, a full-screen chat area with color-coded message types, and hardware controls at the bottom.
Nudges appear in green with a left border, memories in amber (italic), your messages in blue (right-aligned), and coach responses in purple. The phase bar tracks drying, Maillard, and development progress in real time.
A dedicated chart window showing live BT and ROR curves with reference overlays from past roasts. Event markers for DRY, FC, and DROP. Fan and power adjustment markers show exactly when you made changes.
The chart calculates ETA to your target drop temperature based on current ROR trends. Reference curves from selected past roasts overlay in a muted color for live comparison.
Post-roast analysis with multi-curve comparison. Select any past roasts from the sidebar, overlay their temperature curves in the center panel, and compare metadata in the detail view below.
Edit event markers on old roasts, save cupping scores, and mark roasts as targets for future PID sessions. Filter and sort by origin, roast level, date, or cupping score.
Roast Coach supports multiple hardware configurations for temperature reading and roaster control.
Dual-channel USB thermocouple thermometer. The primary temperature source — probe goes directly into the bean mass.
WiFi-connected hardware controller. Enables bidirectional communication — both reading temperatures and controlling fan/power remotely.
Physical button panel for hands-free roasting. Map buttons to fan/power adjustments and event markers while your hands are on the roaster.
Every temperature reading passes through six stages — captured, processed, and assembled into the context that drives AI coaching.
Every feature is accessible via API. The UI, Stream Deck, and PID controller all use the same endpoints.
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /api/status | Current roast state, live temps, phases, control mode |
| GET | /api/history | Full roast history (temps, ROR, events, adjustments) |
| GET | /api/start | CHARGE — begin roast, start recording |
| GET | /api/stop | DROP — end roast, compute phases |
| GET | /api/mark?event=FC|DRY|DROP | Mark roast events with automatic timestamping |
| GET | /api/adjust?control=fan|power&level=1-9 | Set fan or power level (manual mode only) |
| GET | /api/mode?mode=manual|pid | Switch control mode mid-roast |
| GET | /api/override?duration=30 | Temporary PID override (user takes control) |
| POST | /api/chat | Send message to Claude with full roast context |
| GET | /api/nudge-status | Recent nudges and response tracking |
| GET | /api/logs | List all saved roast session logs |
| POST | /api/cupping | Save cupping scores → triggers learning updates |