Note: This README and parts of this project were created by Allux, an AI agent, using the Allux tool itself.
Allux is a local code agent built with Rust, designed to assist in software development tasks by integrating with Ollama. This project combines asynchronous processing, file manipulation, and modular extensibility to offer an efficient and powerful development experience.
- 📌 Overview
- 🔧 Architecture and Technologies
- 📂 Project Structure
- 🛠 Tools and Dependencies
- 🚀 Installation and Setup
- 🧪 Basic Usage
- 🔧 Extensibility with Skills
- 📝 Contributions
- 📄 Additional Documentation
- 📋 Licenses
Allux is built on:
- Tokio for asynchronous operations.
- Rust for performance and security.
- Ollama for language model integration.
The project allows exploring, modifying, and executing code locally with advanced file processing and pattern matching capabilities.
- Modular: Each functionality is encapsulated in independent modules.
- Asynchronous: Designed to handle multiple tasks simultaneously.
- Extensible: Skill system for adding specific functionalities.
| Technology | Purpose |
|---|---|
| Rust | Main language for performance and security. |
| Tokio | Asynchronous runtime for I/O handling. |
| Reqwest | HTTP client with streaming support. |
| Serde | JSON serialization/deserialization. |
| Crossterm | Terminal input/output handling. |
| Glob | File pattern searching. |
| Regex | Text pattern processing. |
| Pulldown-cmark | Markdown processing. |
| Indicatif | Progress bars and load indicators. |
allux-agent/
├── Cargo.toml # Project dependencies and configuration.
├── README.md # Main documentation.
├── LICENSE # Project license.
├── docs/ # Technical documentation and guides.
├── scripts/ # Utility scripts.
├── src/ # Main source code.
│ ├── main.rs # Program entry and REPL.
│ ├── ollama/ # Ollama client and types.
│ ├── tools/ # Built-in tools (bash, grep, edit, etc.).
│ └── ... # Other modules (config, session, etc.).
├── tests/ # Integration and unit tests.
├── validation/ # Test prompts and validation data.
└── skills-lock.json # Skills dependencies.
| Dependency | Version | Purpose |
|---|---|---|
| reqwest | 0.12 | HTTP client with streaming. |
| tokio | 1.0 | Asynchronous runtime. |
| serde | 1.0 | JSON serialization. |
| crossterm | 0.28 | Terminal input/output. |
| glob | 0.3 | File searching. |
| regex | 1.0 | Pattern processing. |
| pulldown-cmark | 0.12 | Markdown processing. |
| indicatif | 0.17 | Progress bars. |
-
Rust: Install Rust toolchain from rustup.rs.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-
Ollama: Install Ollama for language model integration.
curl -fsSL https://ollama.com/install.sh | sh
-
Clone the repository:
git clone https://github.com/usuario/allux-agent.git cd allux-agent -
Build the project:
cargo build
-
Run the agent:
cargo run --bin allux
| Command/Tool | Description |
|---|---|
bash |
Execute shell commands. |
grep <pattern> |
Search patterns in files. |
read_file <path> |
Read file contents. |
write_file <path> |
Write/Overwrite files. |
edit_file <path> |
Edit specific strings in files. |
tree <path> |
Display directory structure. |
Allux allows adding specific functionalities using the skill system. Each skill is an independent module that can add new capabilities to the agent.
- Install a skill:
npx --yes skills add <owner/repo> --skill <name> -y
- Clone the repository.
- Create a branch for your feature.
- Write tests to ensure stability.
- Submit a Pull Request.
- Architecture Docs: Detailed technical design.
- Guides: How to use and configure Allux.
This project is licensed under the GPL-3.0-or-later.