Diagrams go stale because the drawing is the document. Radical.Tools makes the model the document - views are derived from it, always consistent.
Metamodel defines the rules. Model holds the truth. Views render slices. Milestones track history.
The vocabulary of your architecture.
Defines what kinds of things can exist: node types, relation types, allowed properties. Three presets ship built-in: C4 (Person, Software System, Container, Component), C4 + DDD (recursive strategic Domains), and C4 + DDD + Governance (Architecture Decision Records and Fitness Functions). Extend any of them or replace the metamodel entirely.
Person → uses → Software System
metamodel rule
The single source of truth.
A graph of concrete nodes and relations that conforms to the metamodel. Add an element once - it's available in every view. No copy-pasting between diagrams. No drift between levels.
PaymentService → calls → StripeAPI
model instance
A named perspective on the same model.
Different audiences need different levels of detail. Structure views render scoped node-link diagrams such as System Context or Container maps. Flow views bind a sequence to that same model and show numbered interaction steps. Hierarchy views turn containment into a drillable treemap. Table views give you an editable, governance-aware spreadsheet, and Matrix views expose dependencies as a DSM grid. Each view keeps its own layout, drill or filter state, while the underlying model stays shared.
Structure / Flow / Hierarchy / Table / Matrix → one model, five readings
view instance
A named snapshot of the model.
Tag any state of the model with a name and date. Browse history, diff two milestones side by side, and restore any previous state. Architecture decisions get a timeline.
v2 → v3 diff: +3 nodes, -1 relation
milestone diff
Name a snapshot at any moment. Browse history, diff two versions side by side, and restore a previous state with one click.
Three layout engines: ELK (hierarchical), WebCola (live force-directed), and a simulated-annealing pipeline tuned for crossing minimisation.
Ask the model questions, detect gaps, or describe a change in plain language and let an LLM apply it as a structured patch. Works with Claude, OpenAI, Gemini, and local Ollama - your key, your API, nothing proxied.
Electron desktop app or browser - same codebase, same file format. No account, no cloud, no telemetry.
Sequence any mix of structure, flow, and hierarchy views into a slide deck. Flow views replay interaction steps one by one; the others give you framing slides before and after the walkthrough.
Read the same model as a Structure diagram, a numbered Flow, a drillable Hierarchy treemap, an editable Table, or a dependency Matrix (DSM) — all always in sync.
Capture Architecture Decision Records and Fitness Functions as first-class nodes, then link them to the elements they constrain, supersede, or implement.
Models are JSON files on your disk. Diff in git, edit in any text editor, automate with any script.
Node.js ≥ 18, npm ≥ 9.
# Clone the repository
git clone https://github.com/tomasz-zajac-opensource/radical.tools.git
cd radical.tools
# Install dependencies
npm install
# Start in development mode
npm run dev
# Build for production
npm run build && npm start