Free & Open Source · MIT

Your agent,
your keys,
your terminal.

Arlo is an open-source, Rust-native agentic AI framework — a leaner, more general-purpose take on what tools like Claude Code offer. A streaming run loop with tool use, human-in-the-loop permissions, sub-agents, MCP integration, and Agent Skills, exposed as a TUI, a one-shot CLI, or an embeddable library.

Up and running in a minute

Requires stable Rust, installed via rustup.

# clone and build
git clone <repo-url>
cd arlo-rust
cargo build --release

# set credentials for your provider
export OPENAI_API_KEY="sk-..."

cargo run -p agent-cli                          # interactive TUI
cargo run -p agent-cli -- "summarize this repo"  # one-shot prompt

arlo [--model PROVIDER:MODEL] [--profile NAME] "prompt"

A small core, fully capable

Everything an agent needs to plan, act, and stay in the loop with you.

Agentic Run Loop

Turn-based loop — compact → request → stream → execute tools → resolve next step — with typed state transitions and automatic error recovery.

MCP Client

Connect external tool servers via the Model Context Protocol alongside built-in file, shell, and web tools.

Agent Skills

Discover and load Markdown-defined skills from .arlo/skills/ (project) and ~/.arlo/skills/ (user), with template variable substitution.

Human-in-the-Loop Permissions

A 4-layer permission engine — glob patterns, static allow/deny lists, and interactive approval prompts — keeps you in control of every tool call.

Task Management & Sub-agents

A built-in task/todo store; spawn foreground or background sub-agents with isolated histories — results deliver back exactly once.

Context Compaction

A 3-layer pipeline — tool-result compaction, session memory, full summarization — keeps long runs inside the context window.

One core, three interfaces

The same Rust core, wherever you need to run it.

Interactive TUI

A ratatui REPL for chatting with the agent, watching tool calls stream, and approving permissions live.

One-shot CLI

Run arlo "prompt" straight from a script or CI job — no prompt starts the interactive REPL instead.

Embeddable Library

Pull the crates directly into your own Rust application and wire the run loop into whatever surface you need.

Five small crates, each swappable

agent-core agent-llm agent-tools agent-mcp agent-cli

Provider-agnostic by design

Point Arlo at the model you want — hosted or your own.

Anthropic

Messages API, Claude Opus, Sonnet, and Haiku models, with retry and model overrides built in.

OpenAI-Compatible

Any OpenAI-compatible HTTP API — set OPENAI_API_KEY and go.

Local Model Server

Point OPENAI_BASE_URL at your own self-hosted or local inference server.