gguf-provider

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 aiderhttps://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/context shows 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.