Skip to content

Releases: likec4/likec4

v1.58.0

05 Jun 12:31
Immutable release. Only release title and notes can be modified.
510a368

Choose a tag to compare

🚀 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 jpg failing in the Docker image with browserType.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-file by 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 parallel blocks 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

22 May 14:29
Immutable release. Only release title and notes can be modified.
1533fd6

Choose a tag to compare

🚀 Features

  • Multiple Relationships in Views:
    Support expanding merged relationships into separate edges with the multiple flag. Set multiple true on a relationship kind in specification, or per-view via with { 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

  • includeAncestors for Deployment Views:
    Add includeAncestors property to deployment views to include all ancestors of visible nodes. Thanks @Kiiv, #2935, fixes #1483

  • --public option for likec4 build and likec4 start:
    Specify a directory that Vite serves and copies as-is into the output (Vite's publicDir). Files in this directory are preserved in the build output, including when --output-single-file is used. Thanks @farhan523, #2968, resolves #1941

  • color-scheme Attribute for Web Component:
    Add color-scheme attribute 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 --description and --notation options to PNG and JPEG exports to include the view title, Markdown description, and non-overlapping view notation in generated images. Thanks @ckeller42, #2950

  • --hmr-port option for likec4 start:
    Specify the HMR WebSocket port via --hmr-port or the HMR_PORT environment 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 a likec4-mode definition for .c4 / .likec4 files. 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 group as 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 --title value instead of the title from likec4.config.json. Thanks @kieronlanning, #2952

  • Fixed validation of browser property 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 pnpm to 11

v1.56.0

28 Apr 13:09
Immutable release. Only release title and notes can be modified.
177b98e

Choose a tag to compare

🚀 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/icons package, then fetched from icons.like-c4.dev. #2906

  • Extracted @likec4/spa Package:
    Web app extracted into a separate @likec4/spa package, 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 light variant of Buttons, Alerts, and ActionIcons now uses solid colors instead of transparency. #2921

Full Changelog: v1.55.1...v1.56.0

v1.55.1

15 Apr 19:01
Immutable release. Only release title and notes can be modified.
1f8a0b7

Choose a tag to compare

🚀 Features

  • JPG Export:
    Add JPEG export support for architecture diagrams -- new "Export as .jpg" option in the web UI and likec4 export jpg CLI command with --quality option. 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 relationship as 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

13 Apr 08:17
Immutable release. Only release title and notes can be modified.
eb57e11

Choose a tag to compare

🚀 Features

  • --theme option for likec4 build:
    Set the default color scheme (light/dark) for the generated static website. Thanks @ckeller42, #2874

  • likec4.exclude VS Code setting:
    Exclude files and folders from LikeC4 processing via glob patterns. #2861

  • Standalone @likec4/mcp package:
    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 description and summary being overwritten by specification defaults in Builder API, closes #2795. #2860

  • Fixed wildcard predicate evaluation with where filter 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

07 Apr 20:31
Immutable release. Only release title and notes can be modified.
802ec74

Choose a tag to compare

🚀 Features

  • Standalone LSP Package:
    New @likec4/lsp package -- a self-contained, fully-bundled CJS language server with zero runtime dependencies for third-party editor integrations (Neovim, Zed, etc.). Fixes #2840, #2843

  • list-icons CLI Command:
    New likec4 list-icons command to list all available built-in icons with --format text|json and --group filter options. #2832

  • LikeC4 DSL Agent Skill:
    AI agents can now write correct LikeC4 code without hallucinating syntax. Install skills via npx 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:icons virtual module literals for CodeQL; raised floors for transitive dependencies. Thanks @sraphaz, #2831

v1.53.0

20 Mar 16:02
Immutable release. Only release title and notes can be modified.
8ab9fda

Choose a tag to compare

🚀 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 supports source.metadata / target.metadata for relation participants. Thanks @galuszkak, #2769

  • LeanIX Bridge Integration:
    New @likec4/leanix-bridge package for syncing architecture models with LeanIX. Includes identity manifest, inventory snapshots, reconciliation, drift reports, governance checks, and ADR generation. CLI adds gen leanix-inventory-snapshot, gen leanix-reconcile, and sync leanix commands. Draw.io export gains a --profile leanix option for bridge-managed metadata round-trip. Thanks @sraphaz, #2746, #2768

  • Landing Page Configuration:
    New landingPage config option to control landing page behavior: redirect: true to skip the landing page and go directly to the index view, and include / exclude selectors to filter which views appear in the landing page grid. Thanks @purple52, #2733

  • Improved likec4 validate Command:
    Fix exit code (now properly exits with 1 on validation failure), add --json flag for structured JSON output, --file flag to filter errors to specific files, --no-layout flag to skip layout drift checks, and --project support 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

v1.52.0

09 Mar 12:55
Immutable release. Only release title and notes can be modified.
170df5a

Choose a tag to compare

🚀 Features

  • likec4 format CLI Command:
    New likec4 format (alias fmt) command for formatting .c4 source files. Supports --check mode for CI, --project and --files filtering. Thanks @m9810223, #2667

  • Overview Page Search, Navigation & Theme Toggle:
    Added search bar (also accessible via Cmd+K), sidebar navigation drawer with file/folder/list grouping, and dark/light theme toggle to the overview page. Fixes #1679. Thanks @ckeller42, #2665

  • Disable Implicit Views by Default:
    Auto-generated scoped views for elements without explicit views are no longer created unless "implicitViews": true is set in the project config. To restore the previous behavior, add "implicitViews": true to your likec4.json configuration. #2705

  • Draw.io Person Shape Round-Trip:
    Draw.io export now correctly renders elements with shape person as person/actor shapes instead of ellipses. Re-import also infers the person shape for round-trip fidelity. Thanks @sraphaz, #2685, fixes #2679

  • Improved Zoom Performance:
    Significant performance improvement with zooming and panning diagrams, thanks to the xyflow update. #2694

  • Erode tooling:
    Check documentation, thanks to @parse , #2728

🐞 Bug Fixes

  • Added --output alias to all likec4 gen subcommands for consistency with build and export commands, fixes #2706

  • Removed deprecated ManualLayoutV1 and related migration command #2713

v1.51.0

04 Mar 11:19
Immutable release. Only release title and notes can be modified.
258a340

Choose a tag to compare

🚀 Features

  • likec4 lsp CLI Command:
    Added new likec4 lsp command to start the LikeC4 language server directly from the CLI. The standalone likec4-language-server binary is now deprecated. #2681

  • Improved ?theme= URL Parameter:
    Theme preferences specified via the ?theme= URL parameter are no longer persisted to localStorage — the forced color scheme applies only while the parameter is present in the URL. Thanks @m9810223, #2645

🐞 Bug Fixes

  • Fixed "View title cannot contain newlines" error when using implicit views with elements that have multi-line titles, closes #2669, #2672

  • Fixed LikeC4 tag color being broken, closes #2637

  • docs: Fix broken link to vite-plugin/modules.d.ts location in documentation by @galuszkak in #2668

v1.50.0

21 Feb 16:58
Immutable release. Only release title and notes can be modified.
b4472c5

Choose a tag to compare

🚀 Features

  • Draw.io Export & Round-Trip:
    Extended Draw.io integration with export options, edge waypoints, and view notation round-trip support. CLI now supports likec4 export drawio --roundtrip to preserve layout and styling when re-exporting. Added "Export to Draw.io" button in the app's export menu. Thanks @sraphaz, #2630, #2639

  • New MCP Query Tools:
    Added 10 new MCP query tools: query-graph, query-incomers-graph, query-outgoers-graph, query-by-metadata, query-by-tags, query-by-tag-pattern, find-relationship-paths, batch-read-elements, subgraph-summary, and element-diff. Enhanced read-project-summary with serialized project config and optional metadata field. Thanks @ckeller42, #2638

  • Implicit Scoped Views:
    Auto-generate scoped views for elements without explicit views, enabling drill-down navigation out of the box. Configurable via implicitViews option in project config (enabled by default). #2648

  • Derive Technology from Icon:
    Automatically derive element technology from icon name when not set explicitly. Elements with aws:, azure:, gcp:, or tech: icons will get a human-readable technology label (e.g. tech:apache-flink → "Apache Flink"). Can be disabled via inferTechnologyFromIcon: false in project config. #2642

🐞 Bug Fixes

  • Fixed hollow edge markers (odiamond, oarrow, odot) to display as hollow with background fill instead of solid fill, closes #2634

  • Improved state management and error handling in VSCode extension preview, closes #2625

New Contributors

Full Changelog: v1.49.0...v1.50.0