Alan is a minimal coding agent written in Rust. It runs in your terminal and uses an LLM to answer questions, inspect files, edit files, and run shell commands.
Note: Alan is currently in an early prototype stage. Some basic features are still missing and will be added soon.
- Interactive terminal UI built with Ratatui
- OpenRouter provider support
- File read, file write, file edit, and shell tools
- Optional OpenRouter web search and web fetch tools
- Tool-call execution with configurable round limits
- Rust 1.88 or newer
- OpenRouter API key
OPENROUTER_API_KEY=... cargo run -p alanDefault model is openai/gpt-4o-mini. Override it with:
OPENROUTER_API_KEY=... \
ALAN_MODEL=openai/gpt-4o-mini \
cargo run -p alanAlan stores credentials at ~/.alan/auth.json by default. Set ALAN_HOME to change its home directory.
Enable OpenRouter web tools with boolean environment variables:
ALAN_OPENROUTER_WEB_SEARCH=true
ALAN_OPENROUTER_WEB_FETCH=trueRun commands from repository root:
cargo fmt --all
cargo check --workspace
cargo test --workspaceRun Alan locally:
cargo run -p alancrates/llm— provider-independent LLM protocol types and API clientscrates/providers— provider bindings, model catalog, and authenticationcrates/tools— file and shell tool implementationscrates/agent— conversation state, skills, tools, and agent loopcrates/alan— interactive Ratatui frontend