The e Promise
e is the minimalist fork of the pi coding agent. This page is its constitution. Every commitment below binds every future release of e. If a release violates one, the project has failed by its own definition, and you should treat it as dead.
These are negative commitments: they promise what e will not do. That is the product. Each one is checkable in source control, so you never have to take our word for it.
The Nine Commitments
1. No MCP, ever. No MCP client, no mcp.json, no /mcp command, no registerMcpServer API, no MCP OAuth. MCP was deleted from e, not disabled. No setting exists to bring it back, and no update ever will.
2. No codemode, ever. No JavaScript sandbox tool layer, no QuickJS runner, no codemode.mode settings. The model gets exactly four tools: read, write, edit, bash.
3. No tool-search, ever. Tools are always declared to the model directly. Since nothing is deferred or hidden, there is nothing to search for.
4. No sub-agents, ever. One model, one loop. No orchestration of child agents, no agent trees, no parallel agent spawning from the harness.
5. No plan mode. Write plans to files when you want them. The harness does not manage a planning state machine.
6. No permission popups. A harness that can write and execute code makes popup security theater. Sandboxing belongs to the operating system and the container, not to dialogs.
7. No built-in to-dos. Your tasks, your files, your format. The harness does not impose a task database.
8. No phoning home. No version check, no install telemetry, no usage reporting. e makes no unsolicited network requests. Your provider traffic is between you and your provider.
9. Fixes flow in; the addons never flow back. e tracks upstream pi weekly. Bug fixes are cherry-picked. Addon features are never cherry-picked, and no upstream change may reintroduce the nine commitments above, whatever upstream ships.
How this promise is enforced
- Source control is the proof. The carve commit removes the addon code from the repository. Anyone can verify absence with a search: the strings mcp and codemode do not appear in the shipped source.
- The sync review is the gate. Every upstream release is sorted into fixes and addons before anything merges. The classification and the decision are recorded per release.
- This page is versioned. Commitments are numbered. If a commitment is ever weakened, the change is a new version and the diff is public history, not a quiet edit.
What compatibility means (the honest footnote)
e keeps compatibility with the classical pi package ecosystem: packages, extensions, skills, prompt templates and themes built on the original tool set. Packages that require the version 0.99 built-in MCP, codemode or tool-search APIs will not work in e. That is not a bug. It is commitments 1, 2 and 3.
On classifier models (such as TypeSafe's Jev): they remain in the provider catalogs as inert model entries. Nothing in e loads or invokes a classifier; the only execution path it ever had was codemode, which does not exist in e. A catalog entry that nothing can call is a spec sheet, not a feature.
Quick answers
Does e support MCP? No. Removed, not disabled. No setting can enable it.
Does e have sub-agents? No. One model, one loop, four tools.
Is this promise binding forever? It is versioned and numbered, and every release is checkable against it in source. If a release violates it, call the project dead; we would.