Elelem
Fast, correct, autonomous – pick two.
Purpose
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.
Design Principles
- Unix philosophy – simple, composable, minimal.
- Convention over configuration.
- No defensive checks or complexity beyond what is necessary.
- Assumes a mature, responsible LLM that behaves like a capable engineer.
- Optimised for my personal workflow and preferences.
- Efficient and minimal like aider – https://aider.chat/.
- UX similar to Claude Code – https://docs.claude.com/en/docs/claude-code/overview.
System Assumptions
Elelem relies on several external tools. Install the ones you need:
| Tool | Purpose | Install |
|---|---|---|
| ast-grep | Structural search (sg) |
brew install ast-grep / cargo install ast-grep |
| ctags | Repo map generation | brew install universal-ctags / apt install universal-ctags |
| fd | File discovery | brew install fd / apt install fd-find |
| git | Version control | brew install git / apt install git |
| glow | Markdown rendering | brew install glow / go install github.com/charmbracelet/glow@latest |
| jq | JSON processing | brew install jq / apt install jq |
| ollama | Default LLM provider | https://ollama.ai/download |
| ripgrep | Text search (rg) |
brew install ripgrep / apt install ripgrep |
Coding Standards for the LLM
- No extra error handling unless essential.
- Keep methods short, single-purpose.
- Descriptive, conventional names.
- Use Ruby standard library where possible.
Installation
Install the gem directly:
gem install elelem
Usage
Start an interactive chat session:
elelem chat
Features
- Interactive REPL – clean, streaming chat.
- Toolbox – file I/O and shell execution.
- Streaming Responses – output appears in real time.
- Conversation History – persists across turns; can be cleared.
- Context Dump –
/contextshows the current conversation state.
Tools
Built-in tools available to the LLM:
| Tool | Purpose | Parameters |
|---|---|---|
read |
Read file contents | path |
write |
Write file | path, content |
execute |
Run shell command | command |
Plugins
Plugins extend elelem with custom tools and commands. They are loaded from:
lib/elelem/plugins/(built-in)~/.elelem/plugins/(user global).elelem/plugins/(project local)
MCP Configuration
Configure MCP servers in ~/.elelem/mcp.json or .elelem/mcp.json:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
}
}
}
Contributing
$ git clone https://git.mokhan.ca/xlgmokha/elelem.git
Send me an email. For instructions see https://git-send-email.io/.
License
MIT – see the bundled LICENSE.txt.