Skip to main content

CALM Studio

CALM Studio is a visual architecture editor for CALM. You draw system diagrams on a canvas and get valid, machine-readable CALM 1.2 JSON automatically — or import existing CALM JSON and get an editable diagram. Every node you draw corresponds to a typed, validated CALM element, and every connection is a typed relationship, so the architecture stays the single source of truth instead of drifting away from the systems it describes.

Key Features

  • Visual canvas editor — Drag-and-drop nodes and relationships with a rich palette of architecture building blocks
  • Bidirectional sync — Canvas and CALM JSON stay in sync; edit either and the other updates instantly
  • Extension packs — Built-in support for AWS, Azure, GCP, Kubernetes, FluxNova, and AI services; write custom packs in TypeScript
  • MCP server — Model Context Protocol tools let AI assistants create and query architectures via natural language
  • AIGF governance — Integrated AI Governance Framework controls with CALM 1.2 compliance validation
  • Template picker — Start from curated architecture templates instead of a blank canvas

Running CALM Studio

CALM Studio runs as a local dev server from the architecture-as-code monorepo. It requires Node.js 22 or later.

  1. Start the dev server from the repository root:
    npm run dev --workspace=@calmstudio/studio
  2. Open CALM Studio at http://localhost:5173.

The Interface

CALM Studio interface showing the canvas, node palette, and CALM JSON editor

CALM Studio has five main areas:

AreaLocationPurpose
Node paletteLeft sidebarDrag node types onto the canvas
CanvasCentreVisual diagram workspace
CALM JSON editorRight panelRaw CALM 1.2 JSON (bidirectional sync)
Properties panelRight panel (context)Edit selected node or relationship properties
ToolbarTopFile, layout, view, and export actions

Canvas Features

Drag-and-Drop Editing

The canvas is built on Svelte Flow (the Svelte port of React Flow). You can:

  • Drag nodes from the palette to create them
  • Move nodes by dragging
  • Resize container nodes (ecosystem, network, VPC, etc.) by dragging corners
  • Select multiple nodes with a lasso drag or Shift+click
  • Zoom and pan with scroll wheel or trackpad gestures
  • Double-click a node to open inline label editing

Bidirectional Sync

Every edit on the canvas is immediately reflected in the CALM JSON editor, and vice versa. This bidirectional sync means:

  • Visual designers work in the canvas
  • Engineers work in the JSON editor
  • Both views are always in sync — there is no "save" step between them

The sync is powered by Svelte 5 runes: the CALM document is a single reactive store, and both the canvas and the JSON editor are views over it.

Properties Panel

Clicking a node or relationship opens the Properties panel. You can edit:

  • Name and description
  • Node type (changes the visual badge and CALM type field)
  • Interfaces (URL endpoints, host-port pairs, container images, port numbers)
  • Controls (add, edit, or remove security and compliance requirements, shown as badges on the node)
  • Custom metadata fields

Extension Packs

CALM Studio ships 7 built-in extension packs, giving you 60+ additional node types beyond the 9 CALM core types:

PackNode typesExamples
CALM Core9Actor, Service, Database, Network
AWS33Lambda, EC2, S3, DynamoDB, VPC, EKS, RDS, CloudFront, SQS
GCP~20Cloud Run, BigQuery, Pub/Sub, GKE, Cloud SQL
Azure~20App Service, Cosmos DB, Service Bus, AKS, Blob Storage
Kubernetes~15Pod, Deployment, Service, Ingress, ConfigMap, Namespace
AI/Agentic~10LLM, AI Agent, Vector Store, Tool, MCP Server
FluxNova~10FluxNova Engine, Connector, Workflow, Topic

You can also create custom packs in TypeScript to add your own node types.

Governance: AIGF Scoring

CALM Studio integrates the FINOS AI Governance Framework (AIGF) for AI system architectures. When your diagram contains AI nodes (LLM, AI Agent, Vector Store, etc.), CALM Studio can:

  • Score your architecture against 23 AIGF risk categories
  • Surface 23 corresponding mitigations from the AIGF catalogue
  • Show a governance scorecard in the sidebar
  • Suggest controls to attach to AI nodes

Governance scoring is opt-in — use the Governance panel to trigger a scan.

Auto-Layout

CALM Studio uses ELK.js for automatic diagram layout. Three presets are available:

PresetAlgorithmBest for
Hierarchical LRELK Layered, left-to-rightService dependency diagrams
Hierarchical TBELK Layered, top-to-bottomTraditional architecture diagrams
Force-directedELK ForceExploratory diagrams with many nodes

Auto-layout respects CALM containment relationships — ecosystem and network containers are laid out with their children inside them. Trigger re-layout from Diagram → Auto-layout in the toolbar.

Import and Export

FormatImportExport
CALM JSON (.json, .calm.json)YesYes
SVGNoYes
PNGNoYes

Import a CALM JSON file to start from an existing architecture (e.g., one generated by the MCP server or CALM CLI). Export lets you save the canonical CALM JSON, or render the diagram as a PNG or SVG for documentation.

MCP Server Integration

CALM Studio ships a standalone MCP server (@calmstudio/mcp-server) that lets AI tools like Claude Code and GitHub Copilot create and modify CALM architectures programmatically. The server exposes tools covering node CRUD, relationship management, rendering, and validation.