Start
Quickstart
Install a provider, start a chat, and run a one-shot question from the shell.
By the end of this page you will have a REPL talking to a real model, with tools to read, write, and run commands in your project.
You need Ruby 4.0 and the core gems. See Installation.
1. Install a provider #
Pick one. Each is a gem.
Claude, through the Anthropic API:
gem install elelem elelem-builtins elelem-anthropic
export ANTHROPIC_API_KEY=your-keyOpenAI:
gem install elelem elelem-builtins elelem-openai
export OPENAI_API_KEY=your-keyA local model through Ollama (Ollama must be running on localhost:11434, or set OLLAMA_HOST):
gem install elelem elelem-builtins elelem-ollamaEach provider has a default model. Change it with --model or the provider’s environment variable:
| Provider | -p name | Default model | Variable |
|---|---|---|---|
elelem-anthropic | anthropic | claude-opus-4-5-20250514 | ANTHROPIC_MODEL |
elelem-openai | openai | gpt-4o | OPENAI_MODEL |
elelem-ollama | ollama | gpt-oss:latest | OLLAMA_MODEL |
To run a GGUF file inside the elelem process with no server at all, see elelem-llama.
2. Start a chat #
Run this from the root of a project:
elelem chat -p anthropicchat is the default command, so elelem -p anthropic does the same. elelem prints its version and a > prompt. Type a request in plain language and press Enter.
While the model works you see three kinds of output:
- Dimmed text is the model’s thinking, if the provider streams it.
- Lines starting with
+are tool calls, such as+ read({"path" => "README.md"}). - A line starting with
xmeans anexecutecall exited with a non-zero status.
The model’s reply prints when it stops calling tools.
3. Use slash commands #
Lines that start with / go to a command instead of the model. With elelem-builtins:
> /help
/provider Switch provider
/reload Reload plugin code from disk
/exit Exit elelem
/clear Clear conversation history
/help Show available commands
/context Show conversation context
/tools List available tools/context lists every message the model sees, starting with the system prompt. /clear empties the history. /provider openai switches provider mid-conversation and keeps the history.
Leave with /exit or Ctrl-D. Ctrl-C also exits, immediately: it does not cancel the current turn, it ends the process.
4. Ask from the shell #
ask runs one turn and prints the reply. Anything piped in is appended to the prompt as a fenced block.
elelem ask -p anthropic "What does this project do?"
git diff | elelem ask -p anthropic "Review this diff. List bugs only."When stdout is a pipe or file, progress goes to stderr and only the final reply goes to stdout, so > review.md captures the reply alone. See CLI for the exact format.
5. Tell it about your project #
Create an AGENTS.md in the project root with build commands, test commands, and conventions. elelem puts it into the system prompt on every request. See Context.
Next steps #
- How it works: what happens between your prompt and the reply.
- Plugins: add a tool in one Ruby file.
- Plugins directory: more providers, tools, MCP, and skills.