Aru¶
Aru é um assistente de programação inteligente que roda no terminal. Você descreve a tarefa em linguagem natural e agentes especializados planejam, exploram o código e aplicam mudanças — com suporte a múltiplos providers (Anthropic, OpenAI, Ollama, Groq, OpenRouter, DeepSeek e outros).
Destaques¶
-
Arquitetura Multi-Agente (catalog-driven)
Agentes nativos (
build,plan,executor,explorer) declarados como specs emaru/agents/catalog.pye instanciados por um factory único. -
CLI Interativo
REPL com respostas em streaming, suporte a multi-linha, histórico de sessões e mentions de arquivos com
@. -
17 Ferramentas Integradas
I/O de arquivos (single + batch), busca, shell, web, delegação a subagentes e tracking estruturado de planos/subtarefas.
-
Multi-Provider
Anthropic, OpenAI, Ollama, Groq, OpenRouter, DeepSeek e outros providers customizados via
aru.json. -
Suporte a Imagens
Anexe imagens com
@arquivo.pngpara análise multimodal (Claude, GPT-4o, Gemini). -
Extensível
Comandos, skills, agentes, ferramentas Python e plugins com hooks compatíveis com OpenCode.
Instalação¶
Configure sua chave da Anthropic em um .env:
E execute:
Pronto. Veja o Início Rápido para mais detalhes.
Como funciona¶
main.py → cli.run_cli() → REPL
├─ build (conversa + ferramentas, self-triggers plan mode)
├─ plan (read-only, gera plano em Markdown)
├─ executor (executa plano passo a passo)
└─ explorer (subagent read-only, via delegate_task)
Os specs dos agentes nativos vivem em aru/agents/catalog.py e são instanciados pelo agent_factory. O agente build resolve tarefas diretas e, quando detecta uma tarefa que exige 3+ mudanças coordenadas, chama enter_plan_mode(task) sozinho — o plan gera o plano, que é armazenado na sessão e reaparece a cada turno como um lembrete PLAN ACTIVE. Você também pode forçar o fluxo manualmente com /plan <tarefa>.
Configuração¶
A configuração é o coração do Aru. É nela que você define qual modelo usar, quais providers conectar, o que cada ferramenta pode fazer e quais regras o agente deve seguir. O Aru lê dois níveis de configuração, com o projeto sobrescrevendo o global via merge profundo:
| Nível | Caminho | Propósito |
|---|---|---|
| Global | ~/.aru/config.json |
Padrões para todos os projetos (modelo, aliases, permissões, providers) |
| Projeto | aru.json ou .aru/config.json |
Overrides específicos do projeto (modelo, permissões, MCP, plugins) |
Exemplo mínimo de aru.json¶
{
"default_model": "anthropic/claude-sonnet-4-6",
"model_aliases": {
"sonnet": "anthropic/claude-sonnet-4-6",
"opus": "anthropic/claude-opus-4-6"
},
"permission": {
"read": "allow",
"grep": "allow",
"glob": "allow",
"edit": "ask",
"write": "ask",
"bash": { "pytest *": "allow", "rm *": "deny" }
},
"instructions": ["AGENTS.md"],
"plugins": ["./plugins/meu_plugin.py"]
}
Campos principais¶
| Campo | Descrição |
|---|---|
default_model |
Modelo padrão no formato provider/model |
model_aliases |
Atalhos para /model <alias> |
providers |
Providers customizados (tokens, endpoints, headers) |
permission |
Regras granulares allow/ask/deny por ferramenta e padrão |
instructions |
Arquivos ou URLs anexados ao system prompt (ex: AGENTS.md) |
mcp |
Servidores Model Context Protocol a conectar |
plugins |
Lista explícita de plugins a carregar |
agent |
Overrides por agente customizado (modelo, prompt, ferramentas) |
Áreas de configuração¶
-
Visão Geral
Como os arquivos
~/.aru/config.jsonearu.jsonsão carregados, mesclados e aplicados em runtime. Ponto de partida para entender toda a configuração. -
Modelos e Providers
Configure Anthropic, OpenAI, Ollama, Groq, OpenRouter, DeepSeek ou providers OpenAI-compatíveis customizados. Aliases, tokens e endpoints.
-
Permissões
Sistema granular allow / ask / deny por ferramenta, com regras por padrão (ex:
bash: { "pytest *": "allow" }). Controle fino do que o agente pode executar. -
Regras (AGENTS.md)
Instruções de projeto anexadas automaticamente ao system prompt. Use para convenções de código, arquitetura, padrões de commit e contexto do repositório.
-
MCP Servers
Integre servidores Model Context Protocol (GitHub, Slack, Postgres, filesystem…) declarados no
aru.jsonpara expor ferramentas externas ao Aru. -
Overrides por Agente
Use o campo
agentpara trocar modelo, prompt ou conjunto de ferramentas de um sub-agente específico sem afetar o agente geral.
Extensibilidade¶
Aru foi projetado para ser extensível em todas as camadas. Cada tipo de extensão tem sua própria seção na documentação:
-
Skills
Capacidades plugáveis carregadas sob demanda a partir de
.aru/skills/. Defina prompts, ferramentas permitidas e arquivos auxiliares em uma pasta por skill. -
MCP Servers
Conecte servidores Model Context Protocol para expor ferramentas externas (GitHub, Slack, bancos de dados) ao Aru via
aru.json. -
Tools Integradas
17 ferramentas nativas cobrindo leitura/edição (single + batch), busca, shell, web, delegação, plano autônomo (
enter_plan_mode) e tracking de subtarefas. -
Tools Customizadas
Crie suas próprias ferramentas em Python e registre-as no Aru. Ideal para integrar APIs internas, automações específicas do projeto ou fluxos proprietários.
-
Custom Agents
Crie sub-agentes especializados com prompt, modelo e conjunto de ferramentas próprios. Delegue tarefas isoladas sem poluir o contexto do agente principal.
-
Plugins
Sistema de hooks compatível com OpenCode para interceptar eventos do ciclo de vida (tool calls, mensagens, sessões) e estender o comportamento do Aru.