Hook-first AI agent framework in Rust. One pipeline for CLI, Telegram, and any channel you add.
Messages arrive from any channel. Sessions are resolved, state is loaded from tape, and prompts are built from context.
The model runs with full tool access. Decisions are made, tools are called, and results accumulate in the agent loop.
State is persisted to tape. Responses are rendered and dispatched back to the originating channel.
12 hook points with last-registered-wins semantics. Builtins are just default plugins you can replace.
CLI REPL, Telegram bot, Feishu/Slack/Discord via sidecar. Same pipeline everywhere.
Append-only conversation history with anchors, search, and forking. Context from tape, not session accumulation.
Markdown-defined capabilities with YAML frontmatter. Project, global, and builtin precedence layers.
Shell, filesystem, web fetch, subagent, tape operations, decisions. Extend with your own.
OpenAI, Claude, GitHub Copilot, custom endpoints. Switch with one env var. No vendor lock-in.
Click any module to see details. Watch data flow through the 7-stage pipeline.
Clone the repo, write a hook, and ship. Eli handles the rest.
View on GitHub