Skip to content

LikeC4 CLI

NPM VersionNPM Downloads

The likec4 CLI is a tool for various operations and automation tasks, such as:

  • Start development server to preview diagrams (with hot-reload)
  • Build a static website for sharing and embedding diagrams
  • Export to PNG, JSON, Mermaid, Dot, D2, DrawIO
  • Import from DrawIO (.drawio → LikeC4)
  • Generate source code artifacts:
    • React components
    • Web Components
    • Typed data

If you’re using it in an npm project, install it as a development dependency:

npm i -D likec4

You can reference it directly in the package.json#scripts object:

{
scripts: {
dev: 'likec4 dev ...',
build: 'likec4 build ...'
}
}

To fetch and execute a package binary, without installing it as a dependency:

npx likec4 start

To use it in any project without npx, install it globally:

Terminal window
npm install --global likec4
# Then, you can call `likec4` directly:
likec4 [command]

Almost all commands have a --help option and provide usage examples.

Terminal window
likec4 build -h
likec4 gen react -h

In a folder with LikeC4 sources:

Terminal window
likec4 serve
# Aliases:
likec4 start
likec4 dev

This recursively searches for *.c4 and *.likec4 files in the current folder, parses them, and serves diagrams via a local web server.
Any change in the source files triggers a hot update in the browser immediately.

CLI can build a website with the diagrams, ready to be deployed or embedded.
When you deployed the website, you can use “Share” button and get a link to a specific diagram.

The resulting website is strictly bound to the given base path (/ by default). A relocatable app can be built with --base "./".

Terminal window
likec4 build -o ./dist
OptionDescription
--outputOutput directory
--base, --base-urlBase URL from which the app is being served, e.g., ”/”, “/pages/”, or ”./” for a relocatable app
--use-hash-historyHash-based navigation, e.g. ”/#/view” instead of “/view”
--use-dotUse local binaries of Graphviz (“dot”) instead of bundled WASM
--webcomponent-prefixPrefix for web components, e.g. “c4” generates <c4-view ../>
--titleBase title of the app pages (default is “LikeC4”)
--output-single-fileGenerates a single self-contained HTML file

There is also a supplementary command to preview the build:

Terminal window
likec4 preview -o ./dist

For example, this command can be used in CI to compare diagrams with ones from the previous or main build.

Terminal window
likec4 export png -o ./assets

This command starts local web server and uses Playwright to take screenshots.
If you plan to use it in CI, refer to the Playwright documentation for details or consider LikeC4 GitHub Actions

OptionDescription
--output, --outdiroutput directory, if not specified, images are saved next to sources
--projectselect LikeC4 project to export from by name (e.g. “my-project”) or by path
If not specified, exports all
--themecolor-scheme to use, “light” (default), “dark”
--darkuse dark theme, shortcut for —theme=dark
--lightuse light theme, shortcut for —theme=light
--use-dotUse local binaries of Graphviz (“dot”) instead of bundled WASM
--seq, --sequenceuse sequence layout for dynamic views
--flat, --flattenflatten all images in output directory ignoring sources structure
-f, --filterinclude views with ids matching given patterns
(multiple patterns are combined with OR)
-i, --ignorecontinue if export fails for some views
-t, --timeouttimeout for playwright in seconds, default is 15
--max-attemptsmax attempts to export failing view, 1 means no retry (default is 3)
--server-urluse this url instead of starting new likec4 server
--chromium-sandboxenable chromium sandbox (see Playwright docs)
Terminal window
likec4 export json -o dump.json

Export views to DrawIO (.drawio) so you can edit diagrams in draw.io or reuse them in tools that support the format. One .drawio file is generated per view.

Terminal window
likec4 export drawio
likec4 export drawio -o ./diagrams
likec4 export drawio -o ./diagrams src/
OptionDescription
pathPath to project (default: current directory)
--outdir, -oOutput directory for .drawio files (default: current directory or path)
--projectSelect LikeC4 project by name or path; if not set, exports all
--use-dotUse local Graphviz (dot) for layout instead of bundled WASM

Convert an existing DrawIO diagram to LikeC4 source (.c4) so you can adopt LikeC4 from DrawIO assets or round-trip between the two.

Terminal window
likec4 import drawio diagram.drawio
likec4 import drawio diagram.drawio -o src/model.c4
OptionDescription
inputPath to .drawio or .drawio.xml file
--outfile, -oOutput .c4 file (default: same name as input with .c4)

Elements (actors, systems, containers) and relationships are inferred from shapes and edges; colors and custom properties (e.g. description, technology) are preserved when present in the DrawIO file.

Via codegen:

Terminal window
likec4 gen mmd
likec4 gen mermaid
likec4 gen dot
likec4 gen d2
likec4 gen plantuml

Together with Export to DrawIO and Import from DrawIO, this allows teams to reuse diagrams in Mermaid, Dot, D2, PlantUML, or DrawIO.

Terminal window
likec4 validate

This command checks for:

  • Syntax errors
  • Layout drift (outdated manual layout)

If any errors are found, the command exits with a non-zero return code.