Select the types of activity you want to include in your feed.
Rename `packages` to `plugins`
Naming the dirctory for the standard plugins `plugins` instead of packages makes naming consistent and repo navigation easier. It removes any mental mapping between program concepts and source names
···185185186186**Ctrl-C**: always force-quits, even while the agent is busy.
187187188188-### WASM plugin interface (`packages/`)
188188+### WASM plugin interface (`plugins/`)
189189190190-**Tool plugins** implement the `ToolPlugin` trait from `packages/ein_tool/` and declare their name, description, and JSON parameter schema via `ToolDef`. They are compiled to `wasm32-wasip2`.
190190+**Tool plugins** implement the `ToolPlugin` trait from `plugins/ein_tool/` and declare their name, description, and JSON parameter schema via `ToolDef`. They are compiled to `wasm32-wasip2`.
191191192192| Package | Tool name | Description |
193193|---------|-----------|-------------|
···196196| `ein_write` | `Write` | Writes content to a file |
197197| `ein_edit` | `Edit` | Replaces an exact string in a file with new content; returns `metadata` with `start_line`, `old_lines`, and `new_lines` for the TUI diff view |
198198199199-To add a new tool, create a package under `packages/` implementing `ToolPlugin`, add it to `build_install_plugins.sh`, and rebuild.
199199+To add a new tool, create a package under `plugins/` implementing `ToolPlugin`, add it to `build_install_plugins.sh`, and rebuild.
200200201201**Model client plugins** implement the `ModelClient` WIT interface (`wit/model_client/`). The server compiles each plugin once at startup via `ModelClientSessionManager` and instantiates it per session with the session's credentials. The active plugin is selected by `model_client_name` in `SessionConfig`; if omitted the first available plugin is used.
202202
···261261262262### Adding a tool
263263264264-1. Create a new package under `packages/` implementing the `ToolPlugin` trait from `packages/ein_tool/`
264264+1. Create a new package under `plugins/` implementing the `ToolPlugin` trait from `plugins/ein_tool/`
2652652. Add it to `scripts/build_install_plugins.sh`
2662663. Rebuild — the server picks it up automatically on next start
267267···269269270270```
271271crates/
272272- ein_proto/ Protocol Buffer definitions (gRPC service + message types)
273273-ein/ Terminal UI client
274274-eind/ gRPC server — agent loop, WASM plugin host, session persistence
275275-packages/
276276- ein_tool/ WASM tool plugin interface (ToolPlugin trait, ToolDef, syscalls)
272272+ ein_proto/ Protocol Buffer definitions (gRPC service + message types)
273273+ ein_http/ WASM-native HTTP client (used by model client plugins)
274274+ ein_plugin/ WASM plugin interface
275275+ein/ Terminal UI client
276276+eind/ gRPC server — agent loop, WASM plugin host, session persistence
277277+plugins/
278278+ ein_anthropic/ Anthropic model client plugin
277279 ein_bash/ Bash tool plugin
278278- ein_read/ Read tool plugin
279279- ein_write/ Write tool plugin
280280 ein_edit/ Edit tool plugin
281281- ein_model_client/ Shared model client types and WIT bindings
282282- ein_http/ WASM-native HTTP client (used by model client plugins)
283283- ein_openrouter/ OpenRouter model client plugin
284284- ein_anthropic/ Anthropic model client plugin
281281+ ein_ollama/ Ollama model client plugin
285282 ein_openai/ OpenAI model client plugin
286286- ein_ollama/ Ollama model client plugin
283283+ ein_openrouter/ OpenRouter model client plugin
284284+ ein_read/ Read tool plugin
285285+ ein_write/ Write tool plugin
287286```
288287289288### Protocol
+1-1
notes/mcp-server-roadmap.md
···216216 .await?;
217217```
218218219219-Each `.wasm` file is a WASM component implementing the `ToolPlugin` WIT interface (already defined in `packages/ein_tool/`). The filename stem is the tool's config identity.
219219+Each `.wasm` file is a WASM component implementing the `ToolPlugin` WIT interface (already defined in `crates/ein_plugin/`). The filename stem is the tool's config identity.
220220221221**Per-tool capability config**
222222