Introducing Arxo


You observe your runtime. You observe your models. Who observes your architecture?

Linters check syntax. Type checkers check types. Tests check behavior. But none of them check structure — how your modules depend on each other, where a single change propagates across the system, which architectural guardrails are missing. Those properties live in the shape of the codebase, not in any individual file.

That’s the gap Arxo was built to fill.

What it is

Arxo is an architecture observability engine written in Rust. Point it at a project and it builds a graph of the code — how files depend on each other, where invocations happen, what effects they produce — and runs a set of detectors over that graph. A first report takes seconds, no configuration required.

arxo init
arxo analyze

Arxo ships metrics as composable plugins. Each metric is a self-contained set of detectors focused on a specific domain — agent architecture, structural health, security posture, and more. You run the ones that matter for your codebase.

Why architecture observability

Runtime observability (Datadog, Grafana, New Relic) tells you what broke. Architecture observability tells you what will break — and why.

A dependency cycle across 47 modules isn’t a runtime error. A change that propagates to 70% of the system isn’t a test failure. A missing guardrail in an agent loop doesn’t throw until production. These are structural properties — deterministic, measurable, and visible in the code before anything runs.

Static analysis tools like SonarQube and ESLint check code quality at the file level. Arxo checks architecture quality at the system level: coupling, propagation cost, missing safety contracts, and structural patterns that span hundreds of files. We wrote more about why this layer is missing.

What’s next

The first metric we’re releasing is agent_architecture — 56 detectors purpose-built for AI agent codebases. We’ll be writing about each domain in depth.

The fastest way to see what Arxo finds in your codebase:

arxo init
arxo analyze