CALM Canvas is a visual editor for CALM architecture models. Edit nodes and relationships on a ReactFlow canvas alongside the JSON document.
Use VS Code 1.88 or newer and the FINOS CALM extension.
- Open a file ending in
.calm.json,.architecture.json,.template.json,.solution.json,.standard.json, or.guideline.json. - Run CALM: View in CALM Canvas from the Command Palette, or use the editor title, editor context, or Explorer context menu.
- You can also use Ctrl+Shift+K on Windows/Linux or Cmd+Shift+K on macOS, or the View in CALM Canvas CodeLens in a model document.
The canvas opens beside the JSON editor. Canvas changes update the editor document; save it in VS Code to persist those changes to disk. Saved file changes are sent back to the canvas.
- Visual editing: add nodes from the palette, connect them, and edit node and relationship properties.
- Navigation: pan, zoom, inspect selected elements, and drill into referenced building blocks with breadcrumb navigation.
- Layout: choose top-to-bottom or left-to-right automatic layout from the canvas toolbar.
- Validation: click Validate to check the model against the bundled CALM schema and semantic rules. Review the results in the canvas validation panel.
- Reusable assets: load building blocks, patterns, templates, standards, and guidelines from the workspace or an external assets folder.
- SVG export: click Export SVG in the canvas toolbar and choose a file in the VS Code save dialog.
These settings are declared in the extension manifest and can be set in workspace or user settings:
| Setting | Purpose | Default |
|---|---|---|
calm.externalAssetsPath |
Absolute path to an additional shared assets folder. | "" |
calm.packs.enabled |
Palette pack IDs to show; an empty list shows all packs. | [] |
calm.packs.excludeNodes |
Node IDs to hide, in packId:nodeType format. |
[] |
For example:
{
"calm.packs.enabled": ["core", "aws"],
"calm.packs.excludeNodes": ["core:ldap"]
}See AGENTS.md for the current source layout and workspace commands, and the contribution guide before opening a PR.
Have an idea or feedback? Raise an issue.