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

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.