Reliable Agent Runtime for
Autonomous Engineering
Event-sourced state machines, SQLite checkpoint persistence, Git worktree isolation, durable webhook approvals, and rootless sandboxes. Run agents that survive crashes, enforce hard budgets, and never corrupt your workspace.
curl -fsSL https://avo.faqihhakim.tech/install.sh | bash
# β Zero Python runtime or uv required
irm https://avo.faqihhakim.tech/install.ps1 | iex
# β Zero Python or admin rights required
uv tool install --python 3.13 avo[all]
Engineered to Keep Going Safely
Most agent frameworks treat LLMs as simple while-loops. Avo builds on state-machine rigor, durable event sourcing, and container isolation.
Git Worktree Isolation
Never corrupt the user's working directory. Code modifications and test runs execute in ephemeral .avo/worktrees/<run_id> workspaces on isolated branches, with automated merge or clean discard.
Dual-Layer Sandbox
Execute untrusted shell operations safely. Uses rootless Linux Bubblewrap (bwrap) with unshared namespaces, or ephemeral Docker containers with network_mode="none".
Durable Webhook Approval
Pending human authorizations persist in SQLite (pending_approvals). When a dangerous tool requires approval, the agent pauses safely and resumes via REST webhook (POST /api/approvals/{id}/decision) across daemon restarts.
Combo Routing & Failover
One conversation, multiple models. Automatically failover across Anthropic Claude, OpenAI, Gemini, and local Ollama when quotas or rate limits are hitβwithout losing conversation context.
Event Sourcing & Replay
Every state change appends to an immutable SQLite event log. Step checkpoints allow exact crash-safe resume, deterministic replay, and post-mortem auditability.
Epistemic Memory & Blackboard
Multi-agent shared scratchpad backed by optimistic locking, plus BM25 keyword recall fact memory with automated secret redaction for API keys and tokens.
Why Developers Choose Avo
How Avo compares to traditional Python agent frameworks and raw CLI tools.
| Feature | Avo | LangGraph | CrewAI | Claude Code |
|---|---|---|---|---|
| Zero-Python Standalone Binary | β Native Executable | β Python required | β Python required | β Node.js required |
| Git Worktree Workspace Isolation | β Built-in (.avo/worktrees) | β None | β None | β Via hooks |
| Crash-Safe Checkpoint Resume | β SQLite Event Store | β Checkpointer | β Memory only | β Local session |
| Rootless Linux Sandbox (bwrap) | β Native namespace isolation | β None | β Docker only | β Host process |
| Durable Webhook Approvals | β Persistent DB + REST | β Interrupts | β CLI input only | β Terminal prompt |
| Loop & Budget Circuit Breakers | β ProgressDetector & TokenLedger | β Max iterations only | β Max iterations only | β User interrupt |
Simple to Embed, Powerful to Scale
from avo import AgentRuntime, LoopPolicy, FunctionTool
from avo.app_tools import GitWorktreeManager, read_file_tool, write_file_tool
from avo.config import build_provider_from_env
# 1. Initialize isolated git worktree for this run
manager = GitWorktreeManager(repo_root=".")
worktree_path = manager.create_worktree(run_id="task-audit-01")
# 2. Build runtime with bounded step and token budget
runtime = AgentRuntime(
provider=build_provider_from_env(),
policy=LoopPolicy(max_steps=15, token_budget=50_000),
tools=[read_file_tool, write_file_tool],
database_path=".avo/runs.db"
)
# 3. Execute with deterministic event logging and step checkpoints
result = await runtime.run(
task="Audit dependencies and apply security fixes in isolated worktree."
)
print(f"Run completed: {result.state} (StopReason: {result.stop_reason})")