Commit 049dea2

mo khan <mo@mokhan.ca>
2026-01-17 07:41:42
docs: update README.md
1 parent e3d7430
Changed files (1)
README.md
@@ -7,8 +7,7 @@ Fast, correct, autonomous – pick two.
 Elelem is a minimal coding agent written in Ruby. It is designed to help
 you write, edit, and manage code and plain-text files from the command line
 by delegating work to an LLM. The agent exposes a simple text-based UI and a
-set of built-in tools that give the LLM access to the local file system
-and Git.
+set of built-in tools that give the LLM access to the local file system.
 
 ## Design Principles
 
@@ -101,35 +100,10 @@ Each provider reads its configuration from environment variables:
 | openai      | `OPENAI_API_KEY`, `OPENAI_BASE_URL`               |
 | vertex-ai   | `GOOGLE_CLOUD_PROJECT`, `GOOGLE_CLOUD_REGION`     |
 
-## Mode System
-
-The agent exposes seven built‑in tools. You can switch which ones are
-available by changing the *mode*:
-
-| Mode    | Enabled Tools                            |
-|---------|------------------------------------------|
-| plan    | `grep`, `list`, `read`                   |
-| build   | `grep`, `list`, `read`, `patch`, `write` |
-| verify  | `grep`, `list`, `read`, `execute`        |
-| auto    | All tools                                |
-
-Use the following commands inside the REPL:
-
-```text
-/mode plan    # Read‑only
-/mode build   # Read + Write
-/mode verify  # Read + Execute
-/mode auto    # All tools
-/mode         # Show current mode
-```
-
-The system prompt is adjusted per mode so the LLM knows which actions
-are permissible.
-
 ## Features
 
 * **Interactive REPL** – clean, streaming chat.
-* **Toolbox** – file I/O, Git, shell execution.
+* **Toolbox** – file I/O and shell execution.
 * **Streaming Responses** – output appears in real time.
 * **Conversation History** – persists across turns; can be cleared.
 * **Context Dump** – `/context` shows the current conversation state.
@@ -137,24 +111,15 @@ are permissible.
 ## Toolbox Overview
 
 The `Toolbox` class is defined in `lib/elelem/toolbox.rb`. It supplies
-seven tools, each represented by a JSON schema that the LLM can call.
-
-| Tool      | Purpose                              | Parameters                           |
-| ----      | -------                              | ----------                           |
-| `exec`    | Run shell commands                   | `cmd`, `args`, `env`, `cwd`, `stdin` |
-| `eval`    | Dynamically create new tools         | `code`                               |
-| `grep`    | Search Git‑tracked files             | `query`                              |
-| `list`    | List tracked files                   | `path` (optional)                    |
-| `patch`   | Apply a unified diff via `git apply` | `diff`                               |
-| `read`    | Read file contents                   | `path`                               |
-| `write`   | Overwrite a file                     | `path`, `content`                    |
-
-## Tool Definition
-
-The core `Tool` wrapper is defined in `lib/elelem/tool.rb`. Each tool is
-created with a name, description, JSON schema for arguments, and a block
-that performs the operation. The LLM calls a tool by name and passes the
-arguments as a hash.
+three tools, each represented by a JSON schema that the LLM can call.
+
+| Tool      | Purpose            | Parameters         |
+| --------- | ------------------ | ------------------ |
+| `read`    | Read file contents | `path`             |
+| `write`   | Write file         | `path`, `content`  |
+| `execute` | Run shell command  | `command`          |
+
+Aliases: `bash`, `sh`, `exec` → `execute`; `open` → `read`
 
 ## Known Limitations