arey is a simple LLM app for the terminal built on following principles.
- Simple, clean code with minimal dependencies.
- Small core layer with just enough extensibility.
- Usable, reliable and performant.
This is a rust monorepo with crates in crates/ directory.
crates/coreis the domain logic for the app along with extension points. Support multiple LLM providers and capabilities like tools etc.crates/tools-*are the various tools. E.g., search, memory etc. Each tool can be used inline or as an independent MCP (model context protocol) server.crates/areyis the cli app. Builds on core and tools.
Use the below rules for your code contributions in this repo.
- Always prefer idiomatic rust for your changes.
- Focus on the task at hand. Never mix feature change and refactoring together.
- Smaller commits are better.
- Respect the existing structure and convention in the repo.
- You must document all modules and public API surface.
- You must respect DRY, SOLID, and similar clean code practices.
- Do not introduce unnecessary dependencies.
- Code must be usable, correct and performant.
- Always add unit tests for a change.
- For assertions, log the actual value in
assert()or similar methods if needed. This will help determine regressions without debugging the test.