Four opt-in mechanisms target four sources of agent waste
SoL-Pi contains 4 mechanisms, and every one starts disabled. Action Fusion lets an edit or write run its validation command in the same tool call. ObservationPack replaces repeated large outputs with handles while retaining exact recall. The Evidence-Preserving Reducer turns eligible diagnostic logs into receipts checked against archived text. Online Context Compact offers completed plan steps to Pi's compaction system and can continue the task in another turn.
This is an extension, not a replacement for the agent. Pi still owns provider authentication, model choice, shell behavior, and its session lifecycle. SoL-Pi imports public extension APIs and does not vendor or patch Pi. That narrow boundary is the project's best design decision. You can enable one mechanism, observe its artifacts, and remove the extension without migrating an agent history into a new platform.
Installation changes nothing until sol-pi.json enables a feature
The documented environment is Node 22.19 or newer, npm, and @earendil-works/pi-coding-agent 0.85.1. After installing that Pi version, pi install git:github.com/NVlabs/SoL-Pi adds the extension. A project-local install is also available. The configuration file lives either in a trusted project's .pi directory or in the user's Pi agent directory. Project configuration wins; the 2 files are not merged.
The conservative example enables Action Fusion and ObservationPack while leaving model-backed reduction and online compaction off. That is the sensible starting point. The first 2 mechanisms make no extra model calls, according to the README. Reducer settings and compaction economics need a deliberate review because they change where content goes and when the agent starts another turn. There are no dedicated environment variables to hide that choice from the file.
What happened when we ran it
Our sandbox installed 179 npm packages in 27 seconds, and the resulting environment occupied 382 MB. The repository has no build script or target, so we skipped the build rather than inventing one. Vitest finished in 25 seconds with 195 passed and 0 failed. Npm audit reported 0 known vulnerabilities across all severity levels.
We ran commit e1a586a in an unprivileged Debian container with 3 CPUs, 8 GB of RAM, Node 22, and no secrets. The checkout contained 68 files, about 7,929 lines of source, and used 2.2 MB before installation. It had 1 CI workflow, a tests directory, and no Dockerfile. These measurements show that the source checks are approachable. They do not measure token savings, task quality, or model cost.
Pi 0.85.1 is the compatibility target
The development dependency and installation instructions both name Pi 0.85.1. That precision helps reproducibility, yet it also limits how casually you can upgrade the host. Open issue 83 reports that Online Context Compact emitted an error after successful compaction on Pi 0.87.1 because the newer host deferred a continuation turn. A related pull request was still open when we checked. Pin both pieces until your own lifecycle tests pass.
Other extensions can change reachability too. Issue 22 reports that Action Fusion became inert under a flat-tool harness because the model no longer called Pi's native edit tool with the added then_run argument. The other 3 mechanisms still worked in that reporter's setup. This is a useful boundary: a loaded extension is not proof that each interception point is reachable in your particular Pi stack.
Local archives outlive the Pi session
ObservationPack and the reducer write session-specific archives under a sol-pi directory. When Pi runs without a persistent session, SoL-Pi creates a private operating-system temporary directory instead. The README says those temporary archives remain after the worker or session exits so referenced evidence can still be read. Cleanup then depends on the host or the caller.
Remote reduction deserves a separate security decision. Eligible diagnostic logs may be sent through Pi-managed authentication to the configured reducer model. The project warns against enabling it for logs that must stay local. Open issue 38 gives the warning a concrete edge: its reproduction says the precautionary secret detector missed password assignments and PEM private-key headers. Keep reduction local or sanitize upstream until that path passes your own secret fixtures.
An October 2 push shows speed, while the missing release tag shows youth
GitHub showed 3,251 stars and 68 combined issues and pull requests on October 2, 2026. The API split that queue into 25 issues and 43 pull requests. The repository was created September 2 and pushed again on October 2. No GitHub release was available. That is a fast first month with substantial review activity, not a long maintenance record.
SoL-Pi is worth trying if you already use the pinned Pi release and can compare representative tasks with each switch on and off. The clean 195-test run lowers the cost of inspecting the implementation. Production adoption still needs workload-level evidence, archive cleanup rules, and a compatibility gate for Pi upgrades. If you cannot supply those checks, stay with plain Pi.

