Releases: likec4/likec4
Release list
v1.59.2
🐞 Bug Fixes
- Fixed dynamic views that reference imported elements from another project. Thanks @ckeller42, #3135, fixes #2989
- Allow dynamic view flow keywords such as
altto be used as metadata keys again. Thanks @ckeller42, #3114, fixes #3110 - Fixed
npxinstalls of the MCP server by publishing its runtime dependencies. Thanks @ckeller42, #3113
Full Changelog: v1.59.1...v1.59.2
v1.59.1
🐞 Bug Fixes
-
Project
excludepatterns now match Windows drive-letter URI paths, and workspace startup loads files from configuredincludepaths. Thanks @ckeller42, #3107, fixes #2546 -
Fixed rendering of self-loops in sequence diagrams (56772b3)
-
Fixed code completion in dynamic views (224b586)
v1.59.0
🚀 Features
-
Flow Control in Dynamic Views:

Besides
parallel, steps can now be grouped into flow blocks with an optional title --opt,loopandbreakblocks,altwithwhen/elsebranches, andtry/catch/finally. Sequence diagrams render these as nested frames, actors stay visible when zoomed in, and during a walkthrough a docked Sequence Outline panel shows the flow as a collapsible tree. #3084, resolves #2745, #2993, #3074 -
Title, Description and Links on Relationship Kinds:
Definetitle,descriptionandlinkon relationship kinds in thespecification, the same way as for element kinds. These properties are inherited by every relationship of that kind and can be overridden per relationship. Thanks @farhan523, #3053, closes #2260 -
Tags on Relationship Kinds:
Define tags on relationship kinds in thespecification. Tags are inherited by every relationship of that kind (merged with the relationship's own tags), so they can be used in view predicates likewhere tag is #tcp. Thanks @farhan523, #3083, closes #2533 -
Programmatic Enrichment and DSL Writeback:
New SDK APIs to seed aBuilderfrom a loaded workspace and write it back to.c4DSL:Builder.fromParsed(data, mode?),LikeC4.parsedModel(),LikeC4.toBuilder(),LikeC4.toTypedBuilder(),LikeC4.toDSL(), and the Node-onlywriteDSL()helper. The DSL round-trip is intentionally lossy -- comments, source positions and original formatting are not preserved. #2984, resolves #2833 -
Diagram Accessibility Improvements:
Diagrams now expose node and relationship text to assistive technologies and allow focused nodes and relationships to be activated from the keyboard. Added keyboard zoom shortcuts for focused diagrams and made zoomable diagrams keyboard-focusable. Thanks @ckeller42, #2990, #3056, fixes #2988, #2915 -
View Description Tooltip in Navigation Panel:
Hovering a view in the navigation menu now reveals its complete description in a tooltip, so long (truncated) descriptions stay readable. Thanks @farhan523, #3060, closes #2933
🐞 Bug Fixes
-
Inherit relationship kind styles in dynamic views. Thanks @ckeller42, #3055, fixes #2916
-
Fixed
EMFILE: too many open files, watchcrash inlikec4 serve/devon large repositories -- the file watcher now honors the project'sexcludepatterns. Thanks @Vinceveve, #3058 -
Fixed project
excludepatterns so they also filter matching files loaded throughinclude.paths. Thanks @ckeller42, #3093 -
Keep generated
dot,d2,mermaid, andplantumlfiles inside the requested output directory when views come from external include paths. Thanks @ckeller42, #3094 -
Stop stdio MCP servers when the client closes stdin, so file watchers are cleaned up instead of leaving orphaned processes. Thanks @ckeller42, #3097
-
Relationships browser: keep the direct parent of leaf elements when flattening hierarchy, so a nested component's owner stays visible. Thanks @kindasorrow, #3099
-
Fixed sidebar navigation drawer rendering every view as an empty expandable folder instead of a clickable leaf. Thanks @kindasorrow, #3089
v1.58.0
🚀 Features
-
Delete Elements/Edges in the Editor:
Select nodes and/or edges in the diagram editor and press delete to remove them from the view. Edges connected to a deleted node are dropped automatically, and the change is added to undo/redo history. Not available for dynamic views. -
Edit Edge Label Positions:
Select a relationship edge and drag its label to reposition it; the position is saved to the manual layout with undo/redo. A manually placed label moves together with the edge when its curve is reshaped, keeping its offset. -
Accurate Tag Text Color via APCA Contrast:
Tags with custom hex / rgb colors now get an accurate text color derived from the background via APCA contrast, instead of the previous CSS-filter workaround. Thanks @farhan523, #2978, resolves #2143
🐞 Bug Fixes
-
Fixed
export png/export jpgfailing in the Docker image withbrowserType.launch: Executable doesn't exist. The bundled Playwright and the installed Chromium browsers are now kept in sync. #3032, fixes #2961 -
Fixed favicon 404 in
likec4 build --output-single-fileby inlining the favicon as a base64 data URI so the single HTML file stays self-contained. Thanks @MichaelMcCodington, #3030 -
Fixed deployment relationship filters so source and target metadata predicates use deployed instance metadata. Thanks @ckeller42, #2986
-
Nested
parallelblocks in dynamic views now produce a clear validation error (Nested parallel blocks are not allowed) instead of a cryptic parser error. Thanks @farhan523, #2985, resolves #988 -
Fixed "apply latest" action incorrectly triggering the new AI layout enhancement. #2995
v1.57.0
🚀 Features
-
Multiple Relationships in Views:
Support expanding merged relationships into separate edges with themultipleflag. Setmultiple trueon a relationship kind inspecification, or per-view viawith { multiple true }, to show each relationship as its own edge with its own label instead of merging them into a single[...]edge. Thanks @galuszkak, #2939, resolves #663 -
includeAncestorsfor Deployment Views:
AddincludeAncestorsproperty to deployment views to include all ancestors of visible nodes. Thanks @Kiiv, #2935, fixes #1483 -
--publicoption forlikec4 buildandlikec4 start:
Specify a directory that Vite serves and copies as-is into the output (Vite'spublicDir). Files in this directory are preserved in the build output, including when--output-single-fileis used. Thanks @farhan523, #2968, resolves #1941 -
color-schemeAttribute for Web Component:
Addcolor-schemeattribute to the web component to force light or dark mode. Thanks @dkapitan, #2955 -
Experimental: AI-Assisted Semantic Layout:
Add AI layout advisor that analyzes diagram semantics and suggests graphviz layout hints (rank constraints, edge weights, invisible edges) for more readable and visually balanced diagrams. Includes a VSCode chat participant, command, and MCP tool for triggering AI layout enhancement. This feature is experimental and may change in future releases. Documentation is coming later; reach out to us on Discord. #2878 -
Image Export Options:
Add--descriptionand--notationoptions to PNG and JPEG exports to include the view title, Markdown description, and non-overlapping view notation in generated images. Thanks @ckeller42, #2950 -
--hmr-portoption forlikec4 start:
Specify the HMR WebSocket port via--hmr-portor theHMR_PORTenvironment variable. If neither is provided, a free port is auto-discovered in the range 24678–24690. Thanks @kieronlanning, #2947 -
Emacs Setup Documentation:
Expand the Emacs section in the editors docs with a complete setup using@likec4/lsp-- covers both Eglot (Emacs 29+) and lsp-mode, with alikec4-modedefinition for.c4/.likec4files. Thanks @farhan523, #2972, resolves #2268 -
AspireC4 Community Docs:
Add community docs page for AspireC4 -- a .NET Aspire extension that auto-generates live LikeC4 architecture diagrams from the Aspire resource graph. Thanks @kieronlanning, #2952
🐞 Bug Fixes
-
Fixed relationship popovers not showing in static embedded views generated with
likec4 build. Thanks @ckeller42, #2969, fixes #2962 -
Fixed expanded embedded LikeC4 views rendering with a transparent overlay background. Thanks @ckeller42, #2967, fixes #2965
-
Fixed formatter to preserve metadata arrays instead of converting them to strings. Thanks @ckeller42, #2944
-
Allow reserved keywords such as
groupas metadata keys. Thanks @ckeller42, #2948, fixes #2932 -
Fixed CSS bundling for react/webcomponents when rendered in shadow root.
-
Fixed single-project overview page always showing the CLI
--titlevalue instead of thetitlefromlikec4.config.json. Thanks @kieronlanning, #2952 -
Fixed validation of
browserproperty in webcomponent (now accepts string values"true"/"false"/"yes"/"no"), closes #2936 -
Fixed overlay animations (relationships browser, element details, search) glitching on open/close. #2976
-
Upgraded
pnpmto 11
v1.56.0
🚀 Features
-
Improved Color Palette:
Element rendering now uses a more accurate color palette that better matches the color specified by the user. Thanks @Kiiv, #2912, closes #2101 -
On-demand Icon Loading from CDN:
Icons are now loaded on demand from CDN instead of bundling all icon components, significantly reducing bundle size. Icons are resolved from local cache, then@likec4/iconspackage, then fetched fromicons.like-c4.dev. #2906 -
Extracted
@likec4/spaPackage:
Web app extracted into a separate@likec4/spapackage, decoupling it from the CLI for better modularity, faster builds and smaller bundles. #2689 -
Apply View Changes from dev server:
Support applying view changes in vite-plugin/CLI (previously was possible only in IDE). #2904
🐞 Bug Fixes
-
Fixed greedy output panel that stole focus from the editor on errors in VSCode extension
-
Fixed left-click on external links in VSCode extension diagram preview -- links in element details now open in the default browser on left-click. Thanks @ckeller42, #2908
-
Improved edge label readability and fixed color token references. #2918
-
Updated Mantine to 9.1.0 -- the
lightvariant of Buttons, Alerts, and ActionIcons now uses solid colors instead of transparency. #2921
Full Changelog: v1.55.1...v1.56.0
v1.55.1
🚀 Features
- JPG Export:
Add JPEG export support for architecture diagrams -- new "Export as .jpg" option in the web UI andlikec4 export jpgCLI command with--qualityoption. JPEG renders with a solid background adapting to the current theme. #2899, closes #2892
🐞 Bug Fixes
-
Fixed text overflow in relationship popover and element details card when displaying long names, titles, and technology strings. Thanks @ckeller42, #2894
-
Fixed search overlay persisting after navigating to a view via Ctrl+K search. Thanks @ckeller42, #2875
-
Fixed programmatic config (
likec4.config.ts) not being loaded in VSCode extension and standalone LSP. #2896 -
Allow using reserved keyword
relationshipas an identifier in LikeC4 DSL (e.g. as element kind). #2897 -
Improved edge visibility in dark mode by increasing background stroke opacity. Thanks @ckeller42, #2891
Full Changelog: v1.55.0...v1.55.1
v1.55.0
🚀 Features
-
--themeoption forlikec4 build:
Set the default color scheme (light/dark) for the generated static website. Thanks @ckeller42, #2874 -
likec4.excludeVS Code setting:
Exclude files and folders from LikeC4 processing via glob patterns. #2861 -
Standalone
@likec4/mcppackage:
MCP server and tools extracted into a dedicated package for reuse in other projects. #2877
🐞 Bug Fixes
-
Fixed relationship styles (color, line, head, tail) not inheriting from specification in dynamic views, closes #2797. #2864
-
Fixed custom element
descriptionandsummarybeing overwritten by specification defaults in Builder API, closes #2795. #2860 -
Fixed wildcard predicate evaluation with
wherefilter applying only to root/scoped elements instead of all elements, closes #2837. #2858 -
Fixed crash on views with manual layout in dev mode (applyManualLayout invariant). Thanks @ckeller42, #2883
-
Fixed codegen react and view hooks not applying manual layouts. Thanks @ckeller42, #2876
-
Fixed external links in VSCode preview opening blank page instead of browser, closes #2422. Thanks @ckeller42, #2880
-
Allow
data:URIs in markdown image src. Thanks @ckeller42, #2881, fixes #2871 -
Improved MCP and agent skill documentation for LeanIX bridge and Draw.io workflows. Thanks @sraphaz, #2828
Full Changelog: v1.54.0...v1.55.0
v1.54.0
🚀 Features
-
Standalone LSP Package:
New@likec4/lsppackage -- a self-contained, fully-bundled CJS language server with zero runtime dependencies for third-party editor integrations (Neovim, Zed, etc.). Fixes #2840, #2843 -
list-iconsCLI Command:
Newlikec4 list-iconscommand to list all available built-in icons with--format text|jsonand--groupfilter options. #2832 -
LikeC4 DSL Agent Skill:
AI agents can now write correct LikeC4 code without hallucinating syntax. Install skills vianpx skills add https://likec4.dev/. Thanks @vincent067, @a-scolan, Resolves #2636, #2782
🐞 Bug Fixes
-
Fixed dynamic view variant setting not being honored when navigating to a dynamic view, closes #2802. Thanks @kavishkartha05, #2827
-
Fixed manual layout alignment tools (Align Left, Right, Center, Top, Middle, Bottom) not working, closes #2771, #2791
-
Fixed LikeC4 generator not emitting element name in DSL output, closes #2815. Thanks @kavishkartha05, #2825
-
Fixed element names starting with underscore followed by digit (e.g.
_1password) being incorrectly rejected by the parser, closes #2836, #2845 -
Improved navigation from VSCode preview panel to sources by showing editor in a different tab group #2826
-
Validate LeanIX mapping partials before merge; align exports and mapping registry behaviour with specs. Thanks @sraphaz, #2829
-
Hardened
likec4:iconsvirtual module literals for CodeQL; raised floors for transitive dependencies. Thanks @sraphaz, #2831
v1.53.0
🚀 Features
-
Metadata Filtering in View Predicates:
Filter elements and relations by metadata key existence (where metadata.key) or value (where metadata.key = 'value'). Works with!=for negation and supportssource.metadata/target.metadatafor relation participants. Thanks @galuszkak, #2769 -
LeanIX Bridge Integration:
New@likec4/leanix-bridgepackage for syncing architecture models with LeanIX. Includes identity manifest, inventory snapshots, reconciliation, drift reports, governance checks, and ADR generation. CLI addsgen leanix-inventory-snapshot,gen leanix-reconcile, andsync leanixcommands. Draw.io export gains a--profile leanixoption for bridge-managed metadata round-trip. Thanks @sraphaz, #2746, #2768 -
Landing Page Configuration:
NewlandingPageconfig option to control landing page behavior:redirect: trueto skip the landing page and go directly to the index view, andinclude/excludeselectors to filter which views appear in the landing page grid. Thanks @purple52, #2733 -
Improved
likec4 validateCommand:
Fix exit code (now properly exits with 1 on validation failure), add--jsonflag for structured JSON output,--fileflag to filter errors to specific files,--no-layoutflag to skip layout drift checks, and--projectsupport for multi-project workspaces. #2790
🐞 Bug Fixes
-
Fixed drag behavior for group nodes #2785
-
Fixed scroll in walkthrough notes panel, closes #2729
-
Fixed web extension failing to start language server, closes #2702
-
Restored Markdown syntax highlighting in triple-quoted strings in VSCode #2785
-
Added configurable Node.js path for language server runtime in VSCode #2773
-
Draw.io: improved person shape inference on re-import for round-trip fidelity. Thanks @sraphaz, #2685