Skip to content

Workflows Extending

Fischer Hunt edited this page Aug 30, 2026 · 2 revisions

Workflows: Extending

Extensions are ordinary executable child processes speaking a versioned JSONL protocol over stdin/stdout — no embedded scripting runtime. Start with docs/extensions.md and the working examples under docs/extensions/.

What extensions can contribute

  • Tools the model calls (override a built-in by using its name)
  • Slash commands in the / picker
  • Hooks — rewrite or swallow a submitted line, act at startup
  • Session naming from a command or tool result

Extensions cannot ask the user questions; the protocol deliberately has no such method. An extension that needs input from the person at the keyboard reads it from configuration under ~/.e/.

Reference examples

Example What it shows
hello.mjs minimal tool
scaffold.mjs starting point for a new extension
mcp.mjs one MCP stdio server's tools as extension tools
subagent.mjs bounded delegated e ask --json child turns
worktree.mjs startup-hook launcher (e -w)
gate.mjs / protected.mjs tool_call hook guarding paths

Recipes

(empty on purpose — this is where community setups land: editors, containers, CI harnesses, multi-agent topologies. Note the e version you wrote the recipe against.)

Clone this wiki locally