Docs site: https://modsmthng.github.io/Automatic-Pro/
GaggiMate: https://github.com/jniebuhr/gaggimate
- Drop new JSON files into
incoming/. - Push them to
main. - The
Ingest Uploaded Profilesworkflow validates the files, moves them intopublic/downloads/, updatessrc/data/releases.json, and clearsincoming/again.
vIT3 / v3
Format:
Automatic Pro <dose> [<batch name><optional extra info>] <buildVersion>.jsonAutomatic Pro <dose> <custom name> <buildVersion>.jsonAutomatic Pro [<custom name>] <buildVersion>.jsonAutomatic Pro <custom name> <buildVersion>.json
Known batch names:
Direct LeverSpring LeverAdaptive Pressure9 barUser Profile<-- Use this batch if you are unsure. You can add a comma and then continue naming the profile, or also add your name. E.g.: [User Profile, Extra Strong]
If a profile does not contain one of these known batch names, it automatically lands in Experimental and Other.
Examples:
Automatic Pro 18g [Direct Lever] vIT3_0_29_5.jsonAutomatic Pro 18g [Step-Down, Direct Lever] vIT3_0_29_5.jsonAutomatic Pro 21g [Spring Lever] vIT3_0_29_5.jsonAutomatic Pro 20g [Adaptive Pressure] vIT3_0_29_5.jsonAutomatic Pro 20g [9 bar] vIT3_0_29_5.jsonAutomatic Pro 20g [User Profile] vIT3_0_29_5.jsonAutomatic Pro 20g [User Profile, Turbo Shot] vIT3_0_29_5.jsonAutomatic Pro 20g [User Profile / Turbo Shot] vIT3_0_29_5.jsonAutomatic Pro 20g [Soup] vIT3_0_29_5.jsonAutomatic Pro 17g Soup vIT3_0_29_5.jsonAutomatic Pro Soup vIT3_0_29_5.jsonAutomatic Pro 18g vIT3_0_29_1.jsonfor legacy untagged main-slot files
v2
Format:
Automatic Pro v2 <dose>.json
Examples:
Automatic Pro v2 11g.jsonAutomatic Pro v2 18g.jsonAutomatic Pro v2 22g.json
For v2, the workflow creates a build named with the current Berlin date, for example 2026-03-26.
For vIT3/v3, the build version comes from the filename and partial updates only replace the matching slot.
[User Profile] is meant for profiles that differ from the main profile schemas or are small variations of an existing profile or variation.
Additional info inside the brackets is allowed. The workflow extracts the known batch name for sorting and uses the remaining text as the visible variation name after the dose. If no known batch name is found, the remaining text is used as the visible name inside Experimental and Other.
Examples:
[Step-Down, Direct Lever]becomes18g Step-Downin theDirect Leverbatch[User Profile, Turbo Shot]becomes20g Turbo Shotin theUser Profilebatch[User Profile / Turbo Shot]behaves the same way[Soup]becomes20g SouporSoup, depending on whether a dose is present17g Soupbecomes17g SoupinExperimental and Other