I see two things that I feel should be clarified in the documentation so that people can understand what the package does.
The documentation doesn't clarify what you need to assume on x1,x2 to achieve causality. This is important.
Also, this looks similar to the instrumental variable regressions that are implemented in packages like statsmodels. I think it would be helpful to clarify how this method differs from IV, and why you might chose to use it instead.
Per LinkedIn comment: