Flow-Based, Not Dependency-Based
Trace how operations execute through your system—from UI to API to domain logic to events—not just what imports what.
Extract flow-based architecture from code as living documentation

A JSON format that captures how operations flow through your system — from UI to API to domain logic to events. Not just what imports what, but how things actually work.
Point an AI assistant at your codebase. It calls CLI commands to analyze your code and build a Rivière schema.
Build schemas programmatically in TypeScript. Integrate into build pipelines or create custom extraction tools.
Load your schema into Éclair. Filter by domain, trace flows end-to-end, see which services publish and subscribe to events.
Rivière extracts flow-based architecture directly from code. Instead of showing technical dependencies, it traces how operations flow through your system.
UI /orders
→ API /bff/orders/place
→ UseCase: Place Order
→ DomainOp: Order.begin()
→ Event: order-placed
→ EventHandler: Prepare Shipping

Clone the repo and run Éclair with the demo graph.
git clone https://github.com/NTCoding/living-architecture.git
cd living-architecture
pnpm install
pnpm nx serve eclairOpen http://localhost:5173/eclair/
| I want to... | Go here |
|---|---|
| Extract architecture from existing code | AI Extraction Guide |
| Build graphs programmatically | Library Quick Start |
| View an architecture graph | Éclair Guide |
| Understand the schema format | Schema Reference |
| Try it with a demo graph | View Demo |
| Run Éclair locally | Run Locally |
| Package | Description |
|---|---|
@living-architecture/riviere-cli | CLI for extraction and graph building |
@living-architecture/riviere-builder | Node.js library for building graphs |
@living-architecture/riviere-query | Browser-safe library for querying graphs |
@living-architecture/riviere-extract-config | Extraction config schema and validation |
@living-architecture/riviere-extract-conventions | TypeScript decorators for component marking |
@living-architecture/riviere-extract-ts | TypeScript component extractor |