The part I am most excited about is Piglets. A Piglet is a named PiG configuration that you can build into its own binary. In 0.5.0, almost every built-in part of PiG is a slot. For each slot, a Piglet keeps the part, replaces it with your own Go code, or strips it out of the binary.
Stripping is where the binary and opinions can shrink/conform. Stock PiG is the normal pig binary with everything built in.
pig-core is a Piglet from Pigpen that keeps Pi's four default tools (read, bash, edit and write) and strips the rest. Only the stripped parts are gone, and it is still a working coding agent. The stripped parts include MCP, code mode, tool search, llama.cpp, the Bedrock, Vertex and Mistral APIs, HTML export, self-update, syntax highlighting, and the Go, Python and Rust extension SDKs. Stock PiG is 70.3 MB. pig-core is 39.4 MB.
You can also strip select extension runtimes. The snake-go Piglet in the demo strips the TypeScript, Python and Rust extension runtimes and keeps Go. It is 61.4 MB, and it still runs a Go extension, a snake game, fused into the binary.
Slots also let a Piglet replace a part instead of removing it. This one is just cool. pig-tern fills the frontend slot, so the same PiG draws natively in the Tern terminal. Tool calls show as cards, edits show as diffs, and answers render as Markdown. Outside Tern, PiG draws as usual 🐷