picobrew-server
This project reverse-engineers a server for the proprietary PicoBrew protocol for use with the PicoBrew Zymatic, a homebrewing machine. It is intended to provide an alternative to run the machine without a connection to the official servers at picobrew.com. Run your own server and sync your recipes offline.
HTTP API
The PicoBrew Zymatic's built-in Ardunio uses an unencrypted HTTP communication protocol. All request are GET requests and are not authenticated. The following documentation is based on Firmware 1.1.8.
Installation
- Install Python 3.10 or above
- In a terminal download, install and run the project:
// Download and install
pip install picobrew_server
// Start the server in production mode on port 80
// Windows
set FLASK_APP=picobrew_server
flask run --port 80 --host 0.0.0.0
// OSX / Linux
export FLASK_APP=picobrew_server
flask run --port 80 --host 0.0.0.0
// Optionally set a persistent secret key (a random one is generated each restart otherwise)
export SECRET_KEY=your-secret-key-here
- Connect the PicoBrew machine to your computer and enable DNS spoofing. Re-route
www.picobrew.comto your computer. More Details
Development
- Install Python 3.10+ & uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Install all dependencies:
uv sync --group dev
# Start the server on http://localhost:5000
FLASK_APP=picobrew_server uv run flask run
- Run tests:
uv run pytest
- Lint, Format, and Type Check changes:
uv run ruff check picobrew_server
uv run ruff format picobrew_server
uv run ty check picobrew_server
Demo
You can try out the admin UI for uploading your XML files in this online demo. Please note, this website is for showcasing only and you should deploy your own version.
Features
- Import BeerXML files
- Send all your recipes to the PicoBrew
- Send cleaning recipes to the PicoBrew
- Session Logging
- Session Recovery
- Admin Web UI
ToDo
- Session Charts
Machine Support
- Picobrew Zymatic
ToDo
- Picobrew Z Series
- Picobrew Pico C
Disclaimer
This software is provided "as is" and any expressed or implied warranties are disclaimed. This software submits recipes with temperature targets to your PicoBrew machine and will cause it to heat water. Any damage to your PicoBrew machine is at your own risk.
If the Zymatic faults and the screen goes blank, DON'T leave it powered on. The circulating pump will shut off and the heater stays on. A tube in the glycol loop may rupture.
License
MIT @ Tom Herold
Metadata
Release files for picobrew-server 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| picobrew_server-1.1.0.tar.gz | 1.5 MB | With provenance | Details for picobrew_server-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| picobrew_server-1.1.0-py3-none-any.whl | Python 3 | none | any | Details for picobrew_server-1.1.0-py3-none-any.whl |
Total release size: 3.0 MB
Release files / picobrew_server-1.1.0.tar.gz
| Download URL | picobrew_server-1.1.0.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
08130a77285410e32157636e3aa053f62c78b86a8480f8aa0a7306782f5c75f0
|
|
BLAKE2b-256 checksum How to use checksums |
ba58a6c2ed92061fc6e0159948441f452bd9912942ae5bc43904ffdba29ff243
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.
Transparency logRelease files / picobrew_server-1.1.0-py3-none-any.whl
| Download URL | picobrew_server-1.1.0-py3-none-any.whl |
|---|---|
| Size | 1.5 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f8f8fe6820b31542a0e6e7c72d3158df6abd7c4271ee199246d893a2117ba5da
|
|
BLAKE2b-256 checksum How to use checksums |
c898d4ff05128463e77a367954fbcebe8a2a7f2786ff6251af68efebc8216cce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.
Transparency logSecurity for picobrew-server 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for picobrew_server-1.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.