Architecture is
all you need.

A live semantic graph of your stack — code, infrastructure, and runtime in one queryable model. Every edge carries provenance: extracted, observed, inferred, stale.

N
Compatibility

It speaks your stack.

npx neat.is wires deterministic instrumentation for the frameworks below. Everything else points an OpenTelemetry exporter at NEAT's OTLP endpoint and shows up in the same graph.

Frameworks
Next.jsRemixSvelteKitNuxtAstroNestJSExpressFastifyFastAPIDjangoFlaskBunDeno
Databases
PostgreSQLMySQLMS SQL ServerOracleMongoDBDynamoDBRedisMemcached
ORMs
MongoosePrismaTypeORMSequelize
Queues & messaging
KafkaRabbitMQSQSSNSEventBridge
AI & LLM
OpenAIVercel AI SDKAnthropicLangChainLlamaIndexCohereBedrock
Cloud & runtime
AWS SDKAWS LambdaS3Vercel EdgeCloudflare WorkersKubernetesRailwayFly.io
Logging
PinoWinstonBunyan
Agents via MCP
Claude CodeCursorCodexWindsurfany MCP client

Static extraction reads JavaScript, TypeScript, and Python via tree-sitter; polyglot imports, IaC, and config files are picked up regardless of language. Runtime ingest is plain OTLP — HTTP on :4318, gRPC on :4317 — so any Go, Java, .NET, Ruby, or Rust service with an OTel SDK lands in the same graph.

Statement

Architecture is the first decision.
Everything else follows from it.

Engineering tools haven't kept pace with what AI now demands of them.

Dashboards, logs, and alerts were built for humans reading screens. They don't carry a model of the system. They don't survive a question an agent might ask.

NEAT keeps a live semantic architecture of your whole stack — code, infrastructure, and runtime — and lets you query it, write policies against it, generate accurate IaC, and run agents inside it.

One architecture. Everything in it.

Architecture first

What this looks like
(now).

Product
Architect the system you have, before you change it.

Most engineering tools start with the change. NEAT starts with the architecture. One command builds a live semantic model of your code, your infrastructure, and your runtime traffic. What every service owns. What it calls. What calls it. What breaks when it fails. Before you ship the next thing, you can see the thing you have.

Architecture
Blast radius as a first-class query.

Most systems only see failure after it happens. NEAT makes blast radius a question the architecture answers. get_blast_radius() walks the live edges and returns everything downstream of a given node, scored by cascaded confidence. Run it before a deploy. Run it before a dependency upgrade. Run it before you let an agent touch a service. The architecture already knows what’s at risk.

Product
Declared intent and observed reality, side by side.

Code says one thing. Production does another. NEAT models both. Every edge carries provenance: EXTRACTED from your source, OBSERVED from OpenTelemetry spans, INFERRED where coverage has gaps, STALE when the runtime stops speaking. When the two streams disagree, that’s a divergence, and get_divergences() lists them ordered by impact. The architecture you declared and the system you actually shipped, in one model.

Architecture
Agents that know, not guess.

An agent that reads raw files is guessing. An agent against a live semantic architecture knows. NEAT exposes the architecture through MCP, with tools spanning root cause, blast radius, dependencies, divergences, incidents, policies, and semantic search. The architecture refreshes on every file save and every span ingest, so autonomous remediation, policy checks, and code generation work from ground truth.

Roadmap

What we're
building.

Live
The Live Architecture

Built from static code analysis and live runtime telemetry. Not a diagram or dashboard, but every service, database, data flow, and dependency accounted for in one queryable object.

Live
Agentic by design

The CLI and MCP expose the architecture to agents, that get tools to do everything NEAT offers. No more asking AI to guess or infer architecture and production from raw files.

Coming Soon
NeatScript

A query and policy language for the architecture. Traversals, assertions, and reactive rules in one syntax — built for the NEAT runtime, not bolted onto someone else’s.

Coming Soon
Time-travelling error logs

Every production error linked to the nodes that caused it, with the full execution path attached. Replay a failure in isolation and test the fix before it ships.

Contact

Status

  • v0.4 alpha
  • Built in London