Sylang for VS Code

Model-based systems engineering in plain text. Sylang is a language for describing a product: its requirements, functions, architecture, hazards, failure modes, tests, features and variants. Elements live in readable text files and link to each other by name. This extension adds Sylang Studio, a visual workspace on top of those files: you edit requirements as cards, see the architecture as diagrams, and check traceability, FMEA and ISO 26262 / Automotive SPICE coverage. The text stays the single source of truth throughout.
Sylang was designed for AI to write and engineers to review. Copilot, Claude or any MCP-capable agent can read and change the model directly. You check the result in Studio and in your git diff.
Free to use, with every feature available to everyone and no tiers or licence keys. Sylang will be fully open-sourced in Q1 2027; the language reference is already public at github.com/balaji-embedcentrum/sylang.

What's new in 3.0
3.0 replaces every earlier visual view with Sylang Studio.
- Studio document editor for every model file: edit names, text, status and ASIL in place, add trace links, and move, indent or delete items within the rules of the file type.
- Diagrams for every file type, laid out automatically: internal block, interfaces, functional and feature decomposition, variant, use case, sequence, state machine, fault tree, failure net and a V-model traceability graph.
- Workspace views computed from the model: Home, traceability matrix, coverage, ISO 26262 and ASPICE compliance, variant matrix, AIAG-VDA FMEA worksheet and sprint board.
- Markdown reading view with diagrams, maths, callouts, task lists, and live links to Sylang elements.
- AI integration with no setup: an MCP server registered with VS Code, language-model tools, and the
@sylang chat participant.
- Everything works offline: nothing downloads at runtime. Studio uses Claude's colours by default or your VS Code theme.
Upgrading from 2.x? See Upgrading from 2.x for what moved and what was removed.
Sylang Studio
Document editor
Every Sylang file opens in Studio by default, as a document or a diagram in the same tab: Document | Diagram at the top left switches between them, and each tab remembers its choice. Files whose content is a diagram (.blk, .fun, .ifc, .ucd, .seq, .smd, .fml, .vml, .fta, .flr) open on the diagram; specifications such as .req, .tst and .haz open on the document.
In the document, each element is a card. Click any text to edit it, pick status, type and ASIL from menus, and add links from a searchable picker that covers the whole workspace. The inspector shows every property of the selected element and its incoming and outgoing traces. Problems from the validator appear on the card they belong to.
Each change is written back as the smallest possible text edit: one line for a status change, one block for a new requirement. Comments, ordering, undo and git diffs all behave as if you had typed the change yourself. The Text button, or Reopen Editor With → Text Editor, shows the source side by side.
Cards move only in ways the file type allows. ↑ ↓ reorder siblings. Indent nests an item under the one above it, and only where nesting is valid: a requirement under a requirement, a story under an epic, a gate under a gate. Disabled controls explain why they are disabled. Delete always asks for confirmation and can be undone.
| Keys |
In the document editor |
| ↑ ↓ or J K |
Select the previous or next item |
| Enter |
Edit the selected field |
| ⌘/Ctrl + Enter |
Add an item after the selection |
| ⌥ + ↑ / ↓ |
Move the selected item up or down |
| Tab / ⇧ Tab |
Indent or outdent the selected item |
| ⌘/Ctrl + ⌫ |
Delete the selected item (asks first) |
| ⌘/Ctrl + F or / |
Search the file |
| Esc |
Clear the selection |
Diagrams
The Diagram view draws the right diagram for the file, in the file's own tab. The diagram button in the editor title bar, the inspector's Diagram button and the diagram commands all open it there, never in another window. Layouts are automatic, follow standard notation, and support pan, zoom and SVG export. Double-click a part to open it.
| File |
Diagram |
.blk |
Internal block diagram with typed ports and connectors |
.ifc |
Interfaces: operations, signals, data types and who provides or needs them |
.fun |
Functional decomposition |
.fml, .vml |
Feature model and variant selection |
.ucd |
Use case diagram |
.seq |
Sequence diagram with fragments |
.smd |
State machine |
.fta |
Fault tree with gate symbols and propagated failure rates |
.flr |
Failure net: effects, modes and causes |
| any |
Traceability graph in V-model lanes |


Workspace views
Open these from the Sylang activity bar, from Home, or from the Command Palette. Each one is computed from the model as it is now and updates when files change.
- Home: element and link counts, how much of each V-model stage traces to the stage before it, open problems, the current sprint and recent commits.
- Traceability matrix: any element type against any other, filterable, with CSV export.
- Coverage: which elements are traced and verified, and which are isolated.
- Compliance: ISO 26262 work products and Automotive SPICE processes, each scored by the specific checks it applies. Nothing is counted on trust.
- FMEA worksheet (AIAG-VDA): structure, function, failure and risk columns, with S, O and D editable in place and action priority calculated.
- Variant matrix: features against variants. Tick a cell to change a variant's selection.
- Sprint board: stories and tasks by status and assignee. Hand a sprint to chat as a brief.
- Specifications (
.spec) and dashboards (.dash), rendered live from the model and exportable as HTML.




Markdown
Design notes and reports often sit next to the model. Open a .md file with the preview button in the title bar, or Open With → Markdown Viewer:
- GitHub-flavoured Markdown: tables, task lists, footnotes and
> [!NOTE] / [!WARNING] callouts. Ticking a task box edits that line of the file.
- Mermaid diagrams in Studio's colours, with a zoomable full-screen view. KaTeX maths with
$…$ and $$…$$.
- Highlighted code with a copy button. A
```req or ```sylang block is highlighted as Sylang.
- Inline code that names a workspace element, such as
`TM_REQ_001`, becomes a live reference that opens the element in Studio.
- A contents outline that follows your reading position. The view also follows the source editor's scroll, and double-clicking a paragraph jumps to its line.
Files in a sylang-help folder open in the viewer by default. To open every Markdown file this way, add "workbench.editorAssociations": { "*.md": "sylang.markdownViewer" } to your settings.

AI integration
- MCP server. Sylang registers its model server with VS Code, so Copilot agent mode and other MCP clients can query the model with no configuration. For other tools, Sylang: Copy MCP Server Configuration copies a ready-made entry.
- Language-model tools. Model summary, symbol search, query, traceability, impact analysis, model health and per-file-type schema are available to any chat that uses VS Code tools.
@sylang in chat. Ask about the model directly, for example /count requirement, /trace TM_REQ_001, /health, /impact, /isolated, /broken or /schema req.
- Reviewable edits. Agents change the text, and Studio's minimal edits keep diffs small, so review happens where it already does: in git.
Quick start
Install Sylang from the Extensions view.
Open your project folder and create a file, for example Thermal.req. The extension starts as soon as the workspace contains a Sylang file.
hdef requirementset ThermalRequirements
name "Thermal Management Requirements"
owner "Thermal Engineering Team"
def requirement TM_REQ_001
name "Maximum Junction Temperature"
description "SiC MOSFET junction temperature SHALL NOT exceed 175 °C under any operating condition."
reqtype safety
safetylevel ASIL-B
status draft
It opens in Studio. Add requirements with New requirement, link them to functions with Link, and open Sylang: Home to see the whole project.
Run Sylang: Create Sylang Help to add a sylang-help folder with the reference for every file type. Start with its Project Guide (sylang-help/project-guide-help.md). It tells you, and any AI assistant working in the repository, which files to create for IT and software, automotive, aerospace, medical or industrial projects, how to lay out the folders, and in what order to build the model.
File types
| Extension |
Contains |
.ple |
Product line |
.fml |
Feature model |
.vml |
Variant model (a selection of features) |
.vcf |
Variant configuration, generated from a .vml |
.req |
Requirements |
.fun |
Functions |
.blk |
Blocks, their interfaces and product characteristics |
.ifc |
Interfaces: operations, signals, data types, parameters |
.ucd |
Use cases |
.seq |
Sequences |
.smd |
State machines |
.tst |
Test cases |
.itm |
Item definition (ISO 26262) |
.haz |
Hazard analysis and risk assessment (ISO 26262) |
.sgl |
Safety goals (ISO 26262) |
.sam |
Safety mechanisms (ISO 26262) |
.flr |
Failure modes, effects and causes (FMEA) |
.fta |
Fault trees |
.spr |
Sprints, epics, stories and tasks |
.agt |
Agents and team members |
.spec |
Specifications assembled from the model |
.dash |
Dashboards of metrics, charts and tables |
.sylangextend |
Your own properties and enum values |
Every file is validated as you type: grammar, cross-file references, use imports, relation targets, and elements disabled by variant configuration (shown greyed out). Problems appear in the Problems panel and on Studio cards.
Settings
| Setting |
Default |
Purpose |
sylang.studio.colorTheme |
claude |
Studio colours: claude (ivory and clay) or vscode (your theme's surfaces) |
sylang.validation.enabled |
true |
Validate Sylang files |
sylang.validation.realTime |
true |
Validate while typing, not only on save |
sylang.help.autoDeployOnUpdate |
true |
Refresh sylang-help when the extension updates |
sylang.aiQuery.enabled |
true |
Enable the AI query commands |
sylang.aiQuery.maxResults |
100 |
Maximum results per AI query |
sylang.aiChat.enabled |
true |
Enable the @sylang chat participant |
sylang.viewFolderAsCoverPage |
false |
Show Open as Sylang Cover Page on folders (opens Home) |
sylang.docling.converterPath |
|
Path to the docling converter used by Import Document (PDF/DOCX → Sylang) |
sylang.logging.level |
QUIET |
Output channel detail: QUIET, L1, L2, L3 |
Upgrading from 2.x
Your model files do not change: 3.0 reads and writes the same language.
- Studio replaces every 2.x view. The Tiptap and DocView editors, the React diagram, FMEA, fault tree, variant and sprint webviews, the Sigma graph, Sylang Nest, the ASPICE workbench and the folder cover pages are gone. The 2.x commands still work and open the matching Studio view.
- Removed: FreeCAD, CadQuery and OpenModelica integration, and the premium licensing. The settings that only those features used have been removed as well (
colorPalette, theme, diagrams.autoLayout, docView.preferCodeEditor, nest.skipAuth).
- To edit as text by default, use Reopen Editor With → Text Editor and choose Configure default editor.
Requirements
VS Code 1.101 or later. Node, Python and network access are not needed at runtime.
Links
Licence and disclaimer
Copyright © 2025 Balaji Boominathan. Licensed under the Apache License 2.0. Free to use for personal and commercial work.
This software is provided "AS-IS" without any warranty or guarantee of any kind, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, or non-infringement. The authors and copyright holders assume NO LIABILITY for any damages, losses, or consequences arising from the use of this software. Users accept all risks and responsibilities associated with using this software. Use at your own risk.
| |