pi vs e, in one table

Direct answer: e and pi share the same core harness, the same four tools (read, write, edit, bash), the same provider ecosystem and classical package compatibility. They differ on one axis: pi 0.99 ships MCP, codemode and tool-search as built-in extensions. e removes them entirely, along with version checking and install telemetry. Choose pi for the built-in addons; choose e to keep the original promise.

Comparison

Capabilitypi (0.99.2)e
Core toolsread, write, edit, bashread, write, edit, bash (same)
MCPBuilt-in extension, mcp.json, /mcp, OAuthRemoved. No config can enable it.
CodemodeBuilt-in JS sandbox, opt-in toolRemoved.
Tool searchBuilt-in deferred-tool finderRemoved.
Sub-agentsNoneNone (same as upstream)
Plan modeNoneNone (same as upstream)
Permission popupsNone (sandbox instead)None (same as upstream)
Sub-agent example extensionsCommunity examples availableClassical community examples work
Classical pi packagesYesYes
Packages needing 0.99 built-in APIsYesNo, by design
Version check phone-homeYes, pi.devDisabled
Install telemetryYes, opt-outRemoved
Self-update channelpi managed install / pi updateDisabled (npm is the channel)
Upstream fixesSourceCherry-picked weekly
LicenseMITMIT, lineage credited

The one decision axis

Everything in the table follows from one design stance. pi's current direction says the addons are valuable enough to carry, as long as they stay quiet. e's stance says the promise is the product, and a promise kept only by configuration is not kept. Neither stance is dishonest. They are two different products that used to be one. The table exists so you can pick yours in thirty seconds.

Migration in both directions

Quick answers

Is e just pi minus features? No. The core harness is identical; the carve is exactly three addon systems plus the phone-home surfaces. Read the table.

Do pi packages work on e? Classical ones do. Packages needing the 0.99 built-in APIs do not, deliberately.

Which is lighter? Both are small; e's running surface is the leaner one because the addon code no longer exists in its binary.