A tool from Excelano
paxc
A compiler for Power Automate flows.
Write terse, readable pax source; paxc compiles it to the verbose definition.json that Power Automate expects. Version-control your flows, review them in a pull request, and stop clicking through the designer. A companion interpreter, paxr, runs the same source locally for fast iteration.
Readable source, designer-shaped output
The Power Automate designer is a web form. It has no diffs, no code review, no reuse, and no way to see a whole flow at once. paxc replaces that with a real language: variables, Compose, container actions (if, foreach, until, switch, scope), error-path handlers, terminate, and PA expressions like triggerBody() and parameters('X'). You write the flow as text and compile it to the exact definition.json the platform expects.
Compiled flows have been deployed and validated end-to-end against Power Automate, and a legacy-package target lets you import them straight through the portal. The companion interpreter paxr runs the same source locally, so you can iterate without a round-trip to the cloud.
It also reads the other direction. paxc --decode takes a flow you exported from Power Automate and writes pax source plus a pa/ folder of the opaque connector bodies — so you can bring an existing flow under version control instead of starting over.
See it in action
Fifteen readable lines of pax compile to the 157-line definition.json Power Automate would have made you build by hand in the designer.
Install
paxc ships as prebuilt binaries (paxc and the paxr interpreter) for Linux, macOS, and Windows.
On Debian or Ubuntu
Add the Excelano apt repository once, so apt upgrade keeps it current:
curl -fsSL https://excelano.com/apt/setup.sh | sudo sh sudo apt install paxc
Prebuilt binaries
Tarballs for every platform are on the GitHub releases page. There is also a one-line installer that downloads the right tarball, verifies its checksum, and drops paxc and paxr into ~/.cargo/bin; the README has it for Linux, macOS, and Windows.
Behind the tool
I built paxc because I build Power Automate flows for clients, and the designer doesn't scale to real engineering — no diffs, no review, no reuse, no way to hand a flow to the next person as something they can read. Treating automation as code is how I deliver Power Platform work that a team can actually maintain.
If your organization is building on Power Automate and feeling that ceiling, that's exactly the kind of work I do as an independent Microsoft 365 builder.
For technical users
paxc is open source under the MIT license, written in pure Rust. The full source, the language reference, and the round-trip design notes live at github.com/excelano/paxc, with the grammar in REFERENCE.md and the security policy in SECURITY.md.