First public release of PiG: Pi, the coding agent harness, rebuilt in Go as one native binary. PiG 0.2.0 tracks Pi 0.87.1 (pig --version prints 0.2.0+0.87.1). Read the story: Meet PiG (Pi in Go).
curl -fsSL https://pi-in-go.dev/install.sh | sh # macOS and Linux
irm https://pi-in-go.dev/install.ps1 | iex # Windows PowerShell (preview)
npm install -g @pi-in-go/pig # npm
go install github.com/MichaelKinsy/PiG/cmd/pig@v0.2.0 # GoSee Install for every method, including update and uninstall.
New Features
- One native binary — No Node.js needed unless you run TypeScript extensions. In our measurements PiG starts in about 21 ms versus about 300 ms for Pi, with about a quarter of the peak memory. See Quickstart.
- Pi's extensions run unchanged — TypeScript and JavaScript extensions work as they do in Pi, together in one Node process. See Extensions.
- Extensions in Go, Rust and Python — Write new extensions with SDKs modeled on Pi's API; each language shares one process, and
isolation: strictgives an extension its own. See Extensions. - Live
/reload— Edit an extension while PiG runs and reload it. A crashed extension is reported and restarted; your session and other extensions keep running. See Slash commands. - Piglets — Bundle extensions, skills and prompts into one named agent, and build it into a native binary for your OS and CPU, optionally signed. See Piglets and Piglet Binaries.
- Windows (preview) — Native Windows builds for x86-64 and Arm64, tested natively. See Windows.
Added
- Added
pig piglet add npm:<package>andgit:<repo>to install Piglet sources. - Added
pig piglet publish --to githubto publish signed Piglet Binaries to GitHub Releases, andpig piglet pullto install one against its signed release index. - Added Piglet Binary signing (
pig piglet build --sign-key) withpig piglet keygen,verifyandtrust; PiG checks the signature against your trust policy at startup. - Added the plan-mode example extension and PowerShell tool event variants in every SDK.
- Added Pi's model input-limit metadata types to generated and runtime models.
- Added
/angry-pigsto PiG Standard: a full-screen slingshot game built as an ordinary Go extension. - Added the model catalogs from the published Pi 0.87.1 package.
Changed
- Changed terminal capability detection to match Pi (hyperlinks, inline images, true color, 256-color themes, Shift+Enter in Apple Terminal), with settings overrides.
- Changed the model picker, selector layouts and thinking settings submenu to Pi 0.87.1's.
- Changed each provider's default model to match Pi's, including Grok 4.7 for xAI.
- Changed parallel tool batches to run every tool at once, as Pi does, instead of capping concurrency at the CPU count.
- Changed install telemetry to report to PiG's own endpoint;
PI_OFFLINE=1orenableInstallTelemetry: falseturns it off.
Fixed
- Fixed duplicated tool rows and choppy rendering while tools run.
- Fixed full-transcript repaints on SIGWINCH without a size change, such as tmux window switches.
- Fixed Node extensions losing model stream events after a host call returned, and Go SDK extensions hanging on the same race.
- Fixed image-only user messages being rejected by OpenAI-compatible providers because of an empty text part.
- Fixed invalid
--mode, missing--modeor--namevalues, and unknown short options to exit with status 1 and Pi's wording. - Fixed Codex manual code entry when port 1455 is busy.
- Fixed text files that start with "GIF" being detected as images.
Known Limitations
- Windows is a preview: tested natively, with less real-world use than macOS and Linux.
- The package catalog listing is not in this release; install packages from a known npm or git source.
Downloads and verification
Archives for macOS and Linux (x86-64, Arm64) and Windows (x86-64, Arm64), each built on GitHub Actions from this tag and smoke-tested natively. Verify with shasum -a 256 -c --ignore-missing SHA256SUMS or gh attestation verify <archive> --repo MichaelKinsy/PiG. Each archive also has SPDX and CycloneDX SBOMs, a license inventory and a vulnerability report, covered by EVIDENCE-SHA256SUMS.
Thank you to Mario Zechner and Earendil for Pi. PiG is an independent port; upstream Pi remains the reference implementation. Please open an issue wherever PiG behaves differently from Pi.