Developer Tools / 2026
Ava
Ava is a reusable C++23 coding-agent runtime with one event stream for model context, UI replay, session resume, compaction, and crash recovery.
One runtime, several interfaces
Coding agents have to coordinate streamed model output, tool execution, user steering, context compaction, and process interruption. Keeping separate state for every interface makes that coordination harder and can leave a resumed session inconsistent with what the user previously saw.
Ava runs the agent loop in a headless C++ runtime. Its terminal UI, one-shot command line, and Web UI all consume the same normalized event stream. Model adapters support Anthropic, OpenAI-compatible endpoints, local llama-server instances, and Codex through existing Codex CLI credentials.
Durable sessions and cancellation
Every session is an append-only sequence of compressed, checksummed events. The log supplies model context, UI replay, resume, compaction, and crash recovery instead of maintaining separate conversation stores. On startup, Ava can detect an incomplete final Zstandard frame, repair the torn tail at the last valid boundary, and identify tool calls that stopped before recording a result.
Boost.Asio coroutines, executors, cancellation slots, and timers carry cancellation through model streams, HTTP and SSE transport, tool processes, and durable writes. RAII and move-only handles keep ownership explicit across coroutine suspension points.
Reusable C++ components
Ava installs four CMake components for transport, provider-neutral model streaming, checked tool execution, and the complete durable agent loop. A native application, IDE, or container worker can link only the layer it needs without adopting Ava’s frontends.
Explicit limits cover HTTP bodies, SSE frames, tool output, session records, and decoded batches. Installed-consumer tests link each component independently, while end-to-end scenarios exercise coding tasks, interruption, resume, and recovery through the user-facing interfaces.