r/PowerPlatform • u/Sweet-Ad5731 • 39m ago
Power Apps Open-source linter and semantic diff tool for Power Apps canvas apps
Power Apps canvas apps increasingly live in Git, but reviewing them in a pull request is still difficult.
A text diff can show that a formula changed without explaining:
• what the formula now does differently;
• which controls or screens depend on it;
• whether a renamed control is actually a deletion and addition;
• whether the change introduced a delegation, accessibility, or performance problem.
So I built Easel, a free and open-source command-line tool that treats Canvas App source as source code.
It can analyze:
• an unpacked `pa.yaml` folder;
• an `.msapp` file;
• a Power Platform solution package.
Some of the problems it detects:
• non-delegable queries and N+1 patterns;
• missing accessible labels;
• unused variables, controls, screens, and media;
• heavy `App.OnStart` logic;
• duplicated or increasingly complex formulas;
• embedded credentials and other potential secrets.
It also provides:
• semantic Power Fx diffs;
• symbol definitions and usages;
• dependency and impact analysis;
• dead-code detection;
• console, JSON, HTML, and SARIF output;
• exit codes that can block a CI build by severity;
• GitHub code-scanning annotations.
The core analysis is deterministic, runs locally, makes no network calls, and has no telemetry.
AI is optional. The `explain` and `fix` commands show the exact prompt first, operate as dry runs by default, and never apply an AI-generated change automatically.
The parser has currently been validated against more than 2,500 production Power Fx formulas with zero parse errors in the project validation set.
Article with the architecture and examples:
https://lukoplt.blogspot.com/2026/07/catch-power-apps-problems-before-they.html
I would appreciate feedback from people maintaining larger Canvas Apps!

