The Pi agent is minimal, lightweight, and extremely opinionated. It prioritizes an extremely polished and reliable implementation of the absolute basics of an agent harness over any more advanced features, and ruthlessly eschews features that are just popular in favor of a specific design philosophy (source). Whether this works for you, as a result, will be highly hit-or-miss.
However, Pi is also extremely extensible. For instance, it is the agent at the core of OpenClaw.
Extending Pi is extremely easy: models running in Pi have immediate access to the full Pi documentation and source code, and extending it is as simple as dropping a TypeScript file in a specific directory. The codebase is designed to be easily hooked-into and overridden.
To use with Synthetic, you can follow the Custom Model instructions using the information from the Synthetic developer docs, though the pi-synthetic-provider extension is preferable and offers additional integration.
See pi/tips for community tips on getting the most out of Pi.