Overview
SoL-Pi is a standalone extension for the Pi coding agent that packages four reusable efficiency mechanisms. It does not replace the agent or change which model drives it — Pi still controls the main model through its own configuration. What SoL-Pi changes is how many tokens and how many model turns the agent spends getting to the same result on long-horizon coding tasks.
The four mechanisms are Action Fusion, which merges a file edit and the command that immediately follows it into a single tool call rather than paying for a round trip; ObservationPack, which archives large tool outputs locally and leaves only a handle and a short excerpt in context, recalling exact pages when they are actually needed; an Evidence-Preserving Reducer, which lets cheaper agents read diagnostic logs and summarise them, with every quoted line checked against the archived record before a more expensive agent sees it; and Online Context Compact, which treats a completed subtask as a candidate compaction point instead of compacting only when the window runs out.
The mechanisms were selected rather than designed. NVlabs ran an auto-research loop that fanned 152 proposals across independent lineages, each generating trajectory rollouts, analysing them with map-reduce, implementing a candidate, passing a separate reviewer, and finally facing a fully isolated held-out set that no agent inside the loop could see. Four proposals survived. On the 51-task EdgeBench evaluation the resulting harness retains roughly 94% of Pi's average score on both model backends tested while using 45-49% fewer tokens, at about one third less API cost than Pi and 50-54% less than the native Codex and Claude Code harnesses. SoL-Pi is released under the MIT License.
What it does
- Action Fusion merges an edit and its follow-up command into one tool call, removing a model round trip
- ObservationPack archives large tool outputs on disk, keeping a handle and excerpt in context
- Evidence-Preserving Reducer delegates log reading to cheaper agents, verifying every quoted line against the archive
- Online Context Compact uses completed subtasks as compaction points rather than compacting late
- Each mechanism is independently switchable through a sol-pi.json config file
- Project-level (.pi/sol-pi.json) or user-level (~/.pi/agent/sol-pi.json) configuration
Getting started
SoL-Pi installs into an existing Pi install through Pi's own extension command. It needs Node.js 22.19 or newer and pins to pi-coding-agent 0.85.1.
Install the pinned Pi release
SoL-Pi targets version 0.85.1 of the Pi coding agent.
npm install --global @earendil-works/pi-coding-agent@0.85.1Install SoL-Pi globally
Pi installs the extension straight from the GitHub repo.
pi install git:github.com/NVlabs/SoL-PiOr install it for one project
Use --local to scope the extension to the current project.
pi install git:github.com/NVlabs/SoL-Pi --local --approveStart conservative
The repo suggests enabling only the two local mechanisms first, in .pi/sol-pi.json or ~/.pi/agent/sol-pi.json.
{
"version": 1,
"actionFusion": true,
"observationPack": true,
"evidencePreservingReducer": false,
"onlineContextCompact": false,
"cacheWriteReadRatio": 12.5
}Commands and code are distilled from the project's own documentation — always check the official repo for the latest.
When to use it
- Cut the token bill of a Pi coding agent that runs continuously on long-horizon tasks
- Keep large test output and build logs out of the context window without losing the ability to re-read them
- Delegate log triage to a cheaper model while keeping quoted evidence verifiable
- Study which harness-level changes actually generalise, using the held-out methodology in the paper
How SoL-Pi compares
SoL-Pi alongside other open-source coding-agent harnesses & runtimes tools AI/TLDR tracks, ranked by GitHub stars.
| Tool | Stars | What it does |
|---|---|---|
| CC Switch | ★ 133k | A cross-platform desktop app that manages provider configuration for eight coding-agent CLIs from one place, with a local failover proxy, MCP and skill management, and spend tracking. |
| Oh My OpenAgent | ★ 69.2k | Opinionated agent bundle for OpenCode and Codex CLI that ships preconfigured sub-agents, lifecycle hooks and built-in MCP servers behind a single ultrawork command. |
| herdr | ★ 39.3k | A single-binary terminal multiplexer built for coding agents: persistent sessions across local and SSH machines, per-pane working/blocked/idle status, and a socket API agents drive themselves. |
| oh-my-claudecode | ★ 39.2k | A plugin and CLI that adds multi-agent orchestration to Claude Code: staged autopilot workflows, parallel tmux workers, and advisors that route a second opinion to Codex, Gemini, Grok or Cursor. |
| AionUi | ★ 32.9k | An open-source desktop workspace that pairs a built-in agent engine with dozens of external CLI agents, adding scheduled runs, MCP tools and remote access from a WebUI or chat apps. |
| cmux | ★ 27.2k | A Ghostty-based macOS terminal built around coding agents: vertical tabs that show git branch, PR status and ports, attention notifications when an agent needs you, and a scriptable built-in browser. |
| cc-connect | ★ 15.5k | A Go daemon that bridges local coding agents — Claude Code, Codex, Cursor Agent, Gemini CLI, OpenCode, Kimi CLI and more — to Feishu, DingTalk, Slack, Telegram, Discord, LINE and WeCom, so you drive them from chat. |
| SoL-Pi | — | Token-efficiency extension for the Pi coding agent, from NVIDIA's research lab |