𝑒Euler's number, e = 2.7182818284… : the other constant

The minimalist promise, kept as code.

e is the minimalist fork of the pi coding agent. No MCP. No codemode. No tool-search. No sub-agents. Not turned off. Removed. The features on the box are the ones you get: all of them, and nothing else.

$ npm i -g @subimpact/e

Wait, what is e?

e is a terminal coding agent: you type a task, it reads your code, writes files, edits, and runs commands for you, entirely in your terminal, with the AI provider you choose. It is a fork of the excellent pi coding agent, made for one reason: pi's founding pitch promised a minimal, auditable harness with no MCP and no sub-agents, and then shipped them anyway. e keeps that promise as executable code. If you liked what pi was supposed to be, you already know what e is.

no

No MCP

No server config, no oauth, no /mcp. The feature does not exist in e.

no

No codemode

No JS-sandbox tool layer. The model talks to four tools, directly.

no

No tool-search

Nothing is ever deferred, so there is nothing to search for.

no

No sub-agents

One model, one loop, read / write / edit / bash. As designed.

yes

pi ecosystem

Classical pi packages, extensions, skills and themes install and run unmodified.

yes

upstream fixes flow in

e tracks pi weekly. Fixes are cherry-picked; the addons never come back.

Why e exists

pi built its reputation on a promise: a minimal harness: no MCP, no sub-agents, no plan mode. Then version 0.99.0 shipped all of it as built-in extensions anyway. The community pushed back; upstream softened the UX but kept the direction.

e tracks upstream weekly. Fixes are cherry-picked; the addons do not come back. e is a true carve: the addon code is deleted, not disabled. There is no config line to bring MCP back. That is not a default. It is the design.

What e keeps from pi

Classical pi compatibility: packages, extensions, skills, prompt templates and themes built for pi install with e install <package> exactly as before. Env vars: E_* first, legacy PI_* honored. Config lives in ~/.e/.

What will not work: packages that require the 0.99 built-in MCP, codemode or tool-search APIs. Those ship in pi, not in e. That is the point.

The e promise is a forever document: read it here.