Architecture as Code with drift detection in CI
FLOWCONSOLE is a CLI and SDK for Architecture as Code: author your architectural model in real programming languages, scan source code into a structured snapshot, validate it against rules, and run those checks locally or in CI/CD. The model is plain JSON conforming to a public schema, so anything that reads JSON can produce or consume it.
This repository ships the open-source CLI, SDK, scanners, rule engine, and JSON schemas. It is designed to run on a developer machine or inside a CI pipeline — no server required.
- Multi-language SDK — author models in TypeScript natively, or in C#, Java, or Python via jsii-generated bindings
- Source code scanners — extract architectural snapshots from C# projects and Helm charts(other sources are comming)
- Fitness functions — Rule engine for architectural constraints
- CI/CD validation —
fcon validateenforces schema and rules; ships as a self-contained binary for linux/macOS/windows × x64/arm64 - Local viewer —
fcon viewopens a local web diagram of any snapshot; re-reads on F5 afterfcon scan(details) - Public JSON schemas —
model-snapshot/v1andrules/v1alpha1with conformance fixtures, so any tool can integrate
| Capability | FLOWCONSOLE | Structurizr | LikeC4 | Mermaid / PlantUML |
|---|---|---|---|---|
| Model in real languages (TS, C#, Java, Python) | SDK (jsii) | DSL only | DSL only | Markup only |
| Source code scanner (extract model from code) | C# + Helm | No | No | No |
| Snapshot diff between model versions | Yes | No | No | No |
| Fitness functions / rule engine | Yes | No | No | No |
| CI/CD validation via CLI | Yes | Partial | Partial | No |
| Generated diagrams | Yes | Yes | Yes | Yes |
| Open source license | AGPL-3.0 (SDK: MIT) or commercial | Freemium | MIT | MIT / GPL |
Install the CLI via npm:
npm install -g @flowconsole/cli
fcon --versionSee engine/README.md for build-from-source instructions.
| Language | Model Definition | SDK package |
|---|---|---|
| TypeScript | Yes | @flowconsole/sdk (npm) |
| C# | Yes | FlowConsole.Sdk (NuGet, jsii) |
| Java | Yes | io.github.flowconsole:flowconsole-sdk (Maven, jsii) |
| Python | Yes | flowconsole-sdk (PyPI, jsii) |
| Go | Roadmap | — |
| YAML | WIP | — |
┌──────────────────────────────────────────────────┐
│ FLOWCONSOLE OSS │
├───────────────────┬──────────────────────────────┤
│ fcon CLI (.NET) │ SDK (jsii) │
│ scan / validate │ TS, C#, Java, Python │
│ diff / fmt │ │
│ view / push │ author the model in code │
│ rules │ │
├───────────────────┼──────────────────────────────┤
│ Scanners │ Rule engine │
│ C# + Helm │ fitness functions │
│ Tree-sitter │ │
├───────────────────┴──────────────────────────────┤
│ model-snapshot/v1 + rules/v1alpha1 schemas │
└──────────────────────────────────────────────────┘
| Package | Description |
|---|---|
@flowconsole/cli |
npm wrapper that installs the fcon binary (scanners + rule engine + validation) |
@flowconsole/sdk |
SDK for authoring architectural models (jsii: TS / C# / Java / Python) |
@flowconsole/web |
React components for rendering architecture diagrams |
@flowconsole/ui |
Shared UI primitives (private) |
flowconsole/
├── apps/
│ └── docs/ # Documentation site (Next.js)
├── packages/
│ ├── web/ # Web UI components
│ ├── viewer/ # Local snapshot viewer SPA (embedded in CLI)
│ ├── sdk/ # Multi-language SDK
│ ├── cli/ # CLI npm wrapper
│ ├── core/ # TS parsers (csharp/go/java/python/ts)
│ └── ui/ # Shared UI components
├── engine/ # CLI & Rule engine
└── contracts/ # JSON schemas (model-snapshot, rules)
- Website
- Contributing
- Code of Conduct
- Licensing overview — AGPL-3.0-or-later or commercial;
packages/sdkis MIT - Commercial license
The repository is dual-licensed: AGPL-3.0-or-later OR a commercial
license, with packages/sdk separately under MIT. AGPL is suitable
for users who can comply with its source-disclosure terms (including
network-use disclosure). Organizations that cannot accept AGPL — for
example, when embedding FlowConsole into a proprietary product, or for
internal enterprise use where AGPL is incompatible with company
policy — can purchase a commercial license.
The commercial license does not grant the right to offer FlowConsole as a managed/hosted service to third parties. That right is reserved by the FlowConsole project. If you want to run a hosted service based on FlowConsole, contact us — such arrangements are negotiated separately.
In addition, the FLOWCONSOLE project provides commercial offerings, such as:
- managed SaaS deployment,
- enterprise features,
- proprietary plugins/extensions,
- commercial support and services.
These hosted/enterprise offerings are not part of this open-source repository and are provided under separate commercial terms.
For dual-license inquiries see COMMERCIAL-LICENSE.md.
Use of the FLOWCONSOLE hosted service is governed by its own Terms of
Service and does not change the licensing of the open-source core.
The FLOWCONSOLE name, logo, and branding are trademarks of the project maintainers and may not be used without permission.
This does not affect your rights to use, modify, or distribute the open-source software itself.
This software is provided "as is", without warranty of any kind, express or implied. See the LICENSE file for details.
