Self-hosted coffee roasting software, written in Rust
Understand every roast. Build on every batch.
Follow the roast live, compare it with the ones before, and turn a good result into a profile you can roast again. Roastwarden brings roaster logging and control, green coffee and bag labels together on your own server, and works with Artisan's profiles and machines.
Status: In daily use. Public beta coming. Releases
What it does for a roaster
See what's happening
Bean and environment temperature, rate of rise, heater and fan on one live chart, with the profile behind it, the roast's landmarks and its phase times, on a laptop or a phone.
Learn what changed
Each roast read against cited references and your own roaster's history, roasts compared side by side, and a model of your roaster that predicts first crack and scores itself. Every line says where it came from.
Repeat what worked
Make a profile from a good roast and roast it again: the server follows it with heater and fan where your roaster takes commands, and shows it as a guide where it does not.
Keep the batch together
Green coffee with its cost, planned roasts and batch numbers, roasted coffee as it rests, and a bag label whose QR code leads back to the roast.
Watch a roast
A recorded roast played back at 20 times its speed, on the chart the dashboard draws: bean temperature against the profile, rate of rise, heater and fan, the phases and landmarks as they come. Point at the chart to read any moment.
The roast runs on the server
Roastwarden is a small server next to your roaster. It talks to the roaster and does the work: recording, following a profile, alarms, fan assist, auto events and cooling. A browser is only a window onto it, so a tab closing, a laptop sleeping or a phone locking doesn't touch the roast, and any number of screens can watch the same one. You stay at the roaster; your screens don't have to.
From green bean to bag
Everything a home roaster or a small roastery records, in one place, and nothing you don't use: modules switch off what a home install doesn't need.
The roast page
A live chart that fits a laptop screen without scrolling: bean and environment temperature, rate of rise, heater and fan, the profile behind, landmarks, phase times and projections. It works on a phone too.
MoreProfiles and drive
Seed profiles by roaster kind, Artisan .alog import and export, profiles made from a good roast, and shared by a link that another Roastwarden imports.
MorePrediction and warnings
The roaster's own model, fitted from its roasts: bean temperature two minutes ahead, first crack and DROP, and a warning before the rate of rise crashes, flicks or stalls.
MoreConnect your roaster, choose the control
A new roaster only records. You switch control on when its hardware takes commands, set limits for each output and a fan floor, and one gate in the server checks every command against them.
MoreGreen coffee and stock
Purchases with their cost per roast, coffee added from a supplier's link, a shopping list that becomes cart links, planned roasts and batch numbers, and roasted coffee with its rest window.
MoreReports, typeset
PDF reports from a built-in Typst engine: a roast on a page, two roasts compared, a coffee, a profile's roasts, a month or a year, the inventory, a roast-day plan to fill in, cupping sheets and traceability from lot to bag.
MoreBag labels
Labels designed in Typst, from the built-in designs or your own in Label Studio, printed over IPP on label sheets, with a public page behind each QR code.
MoreArtisan friendly
Profiles and alarm files both ways, a machine picked from Artisan Roaster Scope's catalogue, and Artisan itself as an extra screen over Modbus.
MoreYours to keep
Self-hosted in one container on a Raspberry Pi or any Linux machine, SQLite with nightly backups and a checked restore, no telemetry and open file formats.
MoreAsk your agent
Roastwarden is made to be used by AI agents as well as people. Any agent that can run commands, such as Hermes, Claude Code or Codex, uses it through the roast command and a skill that teaches it the rules. Say it in your own words and it keeps the records; it never runs the roaster.
- “I bought 5 kg of Ethiopia Guji from Sweet Maria's, $46 plus $9.50 shipping.”
- “Today's roast came out at 86 g, first crack was really at 7:40. Bright, a bit thin.”
- “How did that roast compare with the last three on the same profile?”
- “Plan two roasts of the Kenya for Saturday and print their bag labels.”
Each agent has its own token with only the access you give it, changes can wait for your approval, and the audit log shows everything it did. Set up an agent in three commands.
What it looks like
Screenshots of the dashboard, from a real install.
Will it work with my roaster?
Logging needs a roaster that sends its temperatures in one of these ways. There are no drivers to wait for: you map its readings by configuration, and a check tells you what works.
- MQTT (built-in broker)
- Modbus TCP
- Modbus RTU / ASCII (RS-485)
- TC4 / aArtisan serial
- WebSocket
- Phidgets temperature boards
- Tasmota and ESPHome boards
- Machines from Artisan's catalogue
Control needs a roaster that also takes commands for heater and fan (or burner and air). Until you switch it on, Roastwarden only records.
Connect your roaster: what Roastwarden expects, and a tested example for each transport. Or try it first on the simulated roasters built into the server.
Read the user guide for a roast from charge to drop, or the install guide to see what running it takes.
Questions, or a roaster you would like to connect? Write to hello@roastwarden.com.