Skip to main content

aru

An intelligent coding assistant for the terminal, powered by LLMs and Agno agents.

image

https://github.com/user-attachments/assets/17674bfc-3d49-4e25-bdc7-dc445d5a089d

Highlights

  • Multi-Agent Architecture — Specialized agents for planning, execution, and conversation
  • Interactive CLI — Streaming responses, multi-line paste, session management
  • 16 Integrated Tools — File operations, code search, shell, web search, task delegation
  • Task Planning — Break down complex tasks into steps with automatic execution
  • Multi-Provider — Anthropic, OpenAI, Ollama, Groq, OpenRouter, DeepSeek, and others via custom configuration
  • Custom Commands and Skills — Extend aru via the .agents/ directory
  • MCP Support — Integration with Model Context Protocol servers

Quick Start

1. Install

pip install aru-code

Requirements: Python 3.13+

2. Configure the API Key

Aru uses Claude Sonnet 4.6 from Anthropic as the default model. You need an Anthropic API key to get started.

Set your API key as an environment variable or create a .env file in your project directory:

ANTHROPIC_API_KEY=sk-ant-your-key-here

Using another provider? See the Models and Providers section to configure OpenAI, Ollama, Groq, etc.

3. Run

aru

That's it — aru is available globally after install.

Usage

Commands

Command Description
Natural language Just type — aru handles the rest
/plan <task> Creates a detailed implementation plan
/model [provider/model] Switch models and providers
/mcp List available MCP servers and tools
/commands List custom commands
/skills List available skills
/sessions List recent sessions
/help Show all commands
! <command> Execute shell commands
/quit or /exit Exit aru

CLI Options

aru                                    # Start new session
aru --resume <id>                      # Resume session
aru --resume last                      # Resume last session
aru --list                             # List sessions
aru --dangerously-skip-permissions     # Skip permission prompts

Examples

aru> /plan create a REST API with FastAPI to manage users

aru> refactor the authentication module to use JWT tokens

aru> ! pytest tests/ -v

aru> /model ollama/codellama

Configuration

Models and Providers

By default, aru uses Claude Sonnet 4.6 (Anthropic). You can switch to any supported provider during a session with /model:

Provider Command API Key (.env) Extra Installation
Anthropic /model anthropic/claude-sonnet-4-6 ANTHROPIC_API_KEY — (included)
Ollama /model ollama/llama3.1 — (local) pip install "aru-code[ollama]"
OpenAI /model openai/gpt-4o OPENAI_API_KEY pip install "aru-code[openai]"
Groq /model groq/llama-3.3-70b-versatile GROQ_API_KEY pip install "aru-code[groq]"
OpenRouter /model openrouter/deepseek/deepseek-chat-v3-0324 OPENROUTER_API_KEY pip install "aru-code[openai]"

To install all providers at once:

pip install "aru-code[all-providers]"

Ollama (local models)

To run models locally without an API key, install Ollama, start the server, and use any installed model:

ollama serve                    # Start the Ollama server
ollama pull codellama           # Download a model
aru                             # Start aru
# Inside aru:
/model ollama/codellama

Configuring the default model

You can set the default provider/model in aru.json so you don't need to switch manually every session:

{
  "models": {
    "default": "openrouter/deepseek/deepseek-chat-v3-0324",
    "minimax": "openrouter/minimax/minimax-m2.5",
    "deepseek-v3": "openrouter/deepseek/deepseek-chat-v3-0324",
    "sonnet-4-6": "anthropic/claude-sonnet-4-6",
    "opus-4-6": "anthropic/claude-opus-4-6"
  }
}

The default field sets the main model. The other fields are aliases that can be used with /model <alias>.

Custom providers

You can configure custom providers with specific token limits:

{
  "providers": {
    "deepseek": {
      "models": {
        "deepseek-chat-v3-0324": {"id": "deepseek-chat-v3-0324", "max_tokens": 16384}
      }
    },
    "openrouter": {
      "models": {
        "minimax/minimax-m2.5": {"id": "minimax/minimax-m2.5", "max_tokens": 65536}
      }
    }
  }
}

Permissions (aru.json)

The aru.json file in the project root controls which shell commands aru can execute without asking for confirmation:

{
  "permission": {
    "allow": [
      "git *",
      "npm *",
      "pytest *",
      "python *",
      "uv run pytest *"
    ]
  }
}

Each entry is a glob pattern. Any command that doesn't match a listed pattern will prompt for confirmation before executing.

aru.json can also be placed at .aru/config.json.

AGENTS.md

Place an AGENTS.md file in your project root with custom instructions that will be appended to all agent system prompts.

.agents/ Directory

.agents/
├── commands/       # Custom slash commands (filename = command name)
│   └── deploy.md   # Usage: /deploy <args>
└── skills/         # Custom skills/personas
    └── review.md   # Loaded as additional agent instructions

Command files support frontmatter with description and the $INPUT template variable for arguments.

MCP Support (Model Context Protocol)

Aru can load tools from MCP servers. Configure in .aru/mcp_config.json:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"]
    }
  }
}

Agents

Agent Role Tools
Planner Analyzes codebase, creates structured implementation plans Read-only tools, search, web
Executor Implements code changes based on plans or instructions All tools including delegation
General Handles conversation and simple operations All tools including delegation

Tools

File Operations

  • read_file — Reads files with line range support and binary detection
  • read_file_smart — Smart file reading focused on relevant snippets for the query
  • write_file / write_files — Writes single or batch files
  • edit_file / edit_files — Find-replace edits across multiple files

Search & Discovery

  • glob_search — Find files by pattern (respects .gitignore)
  • grep_search — Content search with regex and file filtering
  • list_directory — Directory listing with gitignore filtering
  • rank_files — Multi-factor file relevance ranking (name, structure, recency)

Code Analysis

  • code_structure — Extracts classes, functions, imports via tree-sitter AST
  • find_dependencies — Analyzes import relationships between files

Shell & Web

  • bash — Executes shell commands with permission gates
  • web_search — Web search via DuckDuckGo
  • web_fetch — Fetches URLs and converts HTML to readable text

Advanced

  • delegate_task — Spawns autonomous sub-agents for parallel task execution

Architecture

aru-code/
├── aru/
│   ├── cli.py              # Interactive CLI with streaming display
│   ├── config.py           # Configuration loader (AGENTS.md, .agents/)
│   ├── providers.py        # Multi-provider LLM abstraction
│   ├── agents/
│   │   ├── planner.py      # Planning agent
│   │   └── executor.py     # Execution agent
│   └── tools/
│       ├── codebase.py     # 16 core tools
│       ├── ast_tools.py    # Tree-sitter code analysis
│       ├── ranker.py       # File relevance ranking
│       ├── mcp_client.py   # MCP client
│       └── gitignore.py    # Gitignore-aware filtering
├── aru.json                # Permissions and model configuration
├── .env                    # API keys (not committed)
├── .aru/                   # Local data (sessions)
└── pyproject.toml

Built With

Development

# Clone and install in editable mode with dev dependencies
git clone https://github.com/estevaofon/aru.git
cd aru
pip install -e ".[dev]"

# Run tests
pytest

# Run tests with coverage
pytest --cov=aru --cov-report=term-missing

Built with Claude and Agno

Metadata

Release files for aru-code 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aru-code 0.3.0
File Size Uploaded
aru_code-0.3.0.tar.gz 120.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aru-code 0.3.0
File Interpreter ABI Platform
aru_code-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 193.5 kB

Release files / aru_code-0.3.0.tar.gz

Download URL aru_code-0.3.0.tar.gz
Size 120.6 kB
Tags Source
SHA-256 checksum
How to use checksums
4fb62569c7020bdc2ed762e4b4e60fcbe9380d6059d06b29bb95d67f0f43a94d
BLAKE2b-256 checksum
How to use checksums
a7d82669133e648c8ca14b2bedfa9f17a204007c45bb81843917409dbcb1d0e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.8

Release files / aru_code-0.3.0-py3-none-any.whl

Download URL aru_code-0.3.0-py3-none-any.whl
Size 72.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2a0b1f566a86bc18f2883c82871cb82fcca4779681c24cad3d2bd2f9270982a3
BLAKE2b-256 checksum
How to use checksums
ed18448a980cbfbf52786726261df333cb8d10de5a2c2560508d539c5b48dc89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.8

Release history Release notifications | RSS feed

0.61.0

2 release files

0.60.0

2 release files

0.59.0

2 release files

0.58.0

2 release files

0.57.0

2 release files

0.56.0

2 release files

0.55.0

2 release files

0.54.0

2 release files

0.53.0

2 release files

0.52.0

2 release files

0.51.0

2 release files

0.48.0

2 release files

0.47.0

2 release files

0.46.0

2 release files

0.45.0

2 release files

0.44.0

2 release files

0.42.0

2 release files

0.41.0

2 release files

0.40.0

2 release files

0.39.0

2 release files

0.38.0

2 release files

0.37.0

2 release files

0.36.0

2 release files

0.33.0

2 release files

0.32.0

2 release files

0.31.0

2 release files

0.30.0

2 release files

0.28.0

2 release files

0.27.0

2 release files

0.26.1

2 release files

0.26.0

2 release files

0.25.2

2 release files

0.25.1

2 release files

0.25.0

2 release files

0.24.2

2 release files

0.24.1

2 release files

0.24.0

2 release files

0.23.0

2 release files

0.22.1

2 release files

0.22.0

2 release files

0.20.1

2 release files

0.20.0

2 release files

0.19.2

2 release files

0.19.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page