Aliot Software Architecture · swa.ml
Turn software architecture into a model you can read, validate and edit in VS Code. swa.ml connects components, typed ports, operations, requirements and diagrams in one editable model.

Start with a model
- Install Aliot Software Architecture by voidaliot.
- Run swa.ml: New Model, or open a
.swaml file.
- Click the circular swa.ml diagram icon or run swa.ml: Show Diagram.
- Right-click the canvas to create an element. Fill its marked fields and apply the validated draft.
- Select an element for Properties, or double-click its name to rename it.
package Example {
component def Counter {
attribute count: int = 0;
operation increment() { count = count + 1; }
schedule { on start increment(); }
}
component Demo { component counters: Counter[2]; }
view overview: Swaml::Views::General of Demo;
}
The standard library is included. Explore ready-to-use models with swa.ml: Browse Official Examples, or open swa.ml: Open Offline Help for help inside VS Code.
See structure and behavior together
| View |
Use it to |
| General |
Explore components, definitions, requirements and relationships. |
| Interconnect |
Inspect typed ports, member directions and explicit routes. |
| Flow |
Follow operations, decisions, loops, states and local data bindings. |
| Case / Sequence |
Connect requirement intent to component subjects and routed exchanges. |
| Timing |
Compare declared contracts with an identified bounded execution trace. |
| Grid |
Filter model elements, read their documentation, select rows and export CSV. |
Browser and Properties keep navigation and source locations close to the canvas. Text editing includes diagnostics, completion, signatures, references, formatting, validated rename, optional inlay hints, auto-imports and deterministic inline suggestions.

Write requirements in swa.ml, with Markdown
Write requirements and comments with headings, emphasis, code, tables, task lists, links and media. Read the formatted text directly in diagrams, Properties and Grid.
requirement ComfortableRoom {
/**
* ## Keep the room comfortable
*
* Use the **measured temperature** and the desired `setpoint`.
*
* - Exchanges use typed ports.
* - Requirement text stays in the model.
*/
attribute description: string =
"The controller shall request heating below the setpoint.";
}

Keep text and diagrams in sync
Edit your .swaml model as text or through diagrams. Every graphical edit is validated before it updates your model, and invalid drafts keep your input. Use native Save, Undo and Redo for text and diagram changes.
Layouts are saved with your workspace. Adjust the editor for each workspace folder, and keep your active VS Code theme.
Automate validation and export
On desktop, run swa.ml: Copy Headless CLI Command to copy the installed tool's full path. Use it with a supported Node.js runtime:
node "<extension-folder>/out/validate.mjs" ./models --format json
node "<extension-folder>/out/cli.mjs" export --file ./models/model.swaml --view fv --out flow.svg
node "<extension-folder>/out/cli.mjs" export --file ./models/model.swaml --view grv --out inventory.csv
Validate models in your build pipeline with text, JSON, SARIF or GitHub annotations. Export diagrams as SVG and Grid tables as CSV. Explore CLI commands.
Work with an AI agent
Ask a compatible VS Code agent to explain a model, find declarations, trace requirements or check a proposed change.
Start with #swamlGuidance, inspect #swamlContext, and check a proposal with #swamlValidate. Review suggested changes before applying them. Use the AI tools.
Model in desktop or browser VS Code. Requirements and cases describe intended behavior; bounded simulation traces help you inspect a particular run. Read the support details.
Help and feedback
Editor guide · Official examples · Report an issue · Aliot
Free to use under the Aliot Freeware License. The bundled language is MIT licensed.