mrkeyoor.com_
Tue 01 Sept 17:42 UTC
Dev Toolsevaluationupdated 27 Aug 2026

likec4 review

LikeC4 is a text language and toolset for keeping software architecture diagrams beside the code they describe. It turns one model into interactive views, static sites, image exports, editor previews, generated components, and a queryable MCP server.

+45 / 4dstars / 7d
Verdict

Our LikeC4 run passed a 148-second build and 71-second test step after installing 1,608 packages, so the project earns trust but demands real workspace capacity. Use it when the architecture model itself should be reviewed, queried, and reused across several views. Stay with C4-PlantUML or D2 when a smaller text-to-diagram tool is enough.

We ran it

Lab card: what happened when we ran likec4Screenshot of likec4 (likec4.dev)
Install✓ · 68s1608 packages · 1664 MB
Build✓ · 148s
Tests✓ · 71sran, no count parsed
Repo7337 files~361,011 lines of source · 45.7 MB · 19 CI workflows · Dockerfile · tests dir

Answers from our run

Does likec4 build from source?

Dependencies installed in 68 seconds (1608 packages), and the build succeeded in 148 seconds. We cloned commit 84ff665 into a clean Debian container with 3 CPUs and no project-specific setup.

Do likec4's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use likec4?

Teams whose diagrams must be edited mainly by mouse: LikeC4 is a DSL, and Draw.io is an import or export format rather than the primary editor.

What are the alternatives to likec4?

C4-PlantUML, D2, Diagrams. Our LikeC4 run passed a 148-second build and 71-second test step after installing 1,608 packages, so the project earns trust but demands real workspace capacity.

Setup3/5CLI use is simple; source install took 1,608 packages
Docs4/5Deep current docs, but no selector for older versions
Community5/55,548 stars with August 2026 issue and pull request activity
Maturity4/5Build and tests pass across a large, active monorepo

Discussed on

  1. hnLikeC4 – a modeling language for describing software architecture4 points

Who it’s for

Engineering teams that want architecture changes reviewed in the same pull requests as code.
Architects who need several views from one model instead of redrawing boxes for each audience.
TypeScript and Vite teams that want diagrams embedded in product or internal documentation.
MCP and Claude Code users who want an agent to query elements and relationships from a local model.

Who it’s NOT for

Teams whose diagrams must be edited mainly by mouse: LikeC4 is a DSL, and Draw.io is an import or export format rather than the primary editor.
Organizations pinned to older releases that depend on the website for matching documentation: open issue 3195 says the docs show only the latest version.
Repositories that need a tiny development dependency: our source install pulled 1,608 packages and occupied 1,664 MB.
Multi-project users who need remote references or arbitrary nested imports: linked projects must share a workspace, and only top-level model elements can be imported.
Anyone expecting strict C4 levels and notation out of the box: LikeC4 deliberately permits custom element types and any nesting depth.

Setup reality

Our pnpm install succeeded in 68 seconds, adding 1,608 packages and using 1,664 MB. The monorepo build passed in 148 seconds, and its tests passed in 71 seconds. The checkout had 7,337 files and about 361,011 source lines.

Ordinary use is lighter than building the repository: the CLI requires Node.js 20 or newer and can run through npx. Local preview and static builds need no account. PNG or JPEG export needs Playwright, while hosted sharing needs somewhere to serve the generated files.

Source contributors inherit a large workspace and 19 CI workflows. Static sites are tied to a chosen base path unless built as relocatable output. Cross-project imports work only inside one workspace, and the published docs currently track the newest release rather than older installed versions.

One model can produce interactive, static, and agent-readable views

LikeC4 starts with text files that describe systems, people, components, relationships, deployment nodes, and views. The language borrows the useful idea behind C4, then drops the requirement to stay within fixed levels. Teams define their own element kinds and notation, nest elements as deeply as the model calls for, and select different slices for different readers. That flexibility is the main reason to choose it over a pile of hand-maintained diagrams.

The likec4 package combines a language server, React components, a Vite plugin, a model API, and the CLI. It can serve diagrams with hot updates, build a static site, or export PNG, JPEG, JSON, Mermaid, Dot, D2, PlantUML, and Draw.io output. Generated React or Web Components put the same views inside another application. One model can therefore feed documentation, code review, an internal portal, and occasional static files without four separate drawing sources.

What happened when we ran it

Our sandbox installed 1,608 pnpm packages in 68 seconds and used 1,664 MB on disk. The build then succeeded in 148 seconds, followed by a successful 71-second test step. We ran commit 84ff665 in an unprivileged Node 22 container with 3 CPUs and 8 GB of RAM. Nothing in the supplied lab result showed an install, compiler, or test failure.

The repository is much larger than the npx likec4 start introduction suggests. Our checkout contained 7,337 files, roughly 361,011 lines of source, and 45.7 MB before dependencies. It is a workspace monorepo with a Dockerfile, a tests directory, and 19 CI workflow files. That machinery supports several products, but contributors pay for it in install size and a combined 219 seconds of build and test time after dependencies arrive. Consumers installing only the published CLI should not assume the full source checkout describes their final disk use.

Node 20 gets a diagram running without an account

The user path is straightforward. LikeC4 requires Node.js 20 or newer, and npx likec4 start recursively finds .c4 and .likec4 files, opens a local server, and refreshes views after edits. A project can install the package as a development dependency and place likec4 build in its existing scripts. Preview listens on 127.0.0.1 by default, which is the safe choice; containers can bind to 0.0.0.0 explicitly.

Static output needs no LikeC4 service. The build command writes files for any ordinary host, supports hash navigation, and can produce one self-contained HTML file. The chosen base path matters because the output is bound to it unless you use --base "./" for relocatable files. PNG and JPEG export add Playwright because the CLI launches a local site and captures rendered pages. That is a reasonable implementation, though CI images need browser dependencies that a text-only exporter would avoid.

The editor and model API make diagrams enforceable

The official VS Code extension supplies preview, navigation, validation, completion, renames, and live editing. The standalone language server extends much of that to Neovim, Emacs, and other clients, while community plugins cover more editors. This matters because architecture as code becomes miserable when every identifier change is a search-and-replace exercise. Language-aware renames and source locations give the DSL enough tooling to behave like maintained code.

The JavaScript API can parse a workspace or source string, return errors, traverse incoming and outgoing relationships, and compute laid-out views. The docs show Vitest rules that require metadata on selected element types. That turns a modeling convention into a failing check instead of a paragraph in an architecture handbook. Our 71-second repository test pass says the upstream suite worked in the lab; it does not prove that a team's own model rules are complete. Those remain local policy expressed through the API.

MCP exposes the resolved graph, not just diagram pictures

LikeC4 includes an MCP server over stdio or streamable HTTP, with port 33335 as the documented HTTP default. Its tools search elements, read views and deployments, trace incoming or outgoing graphs, filter metadata and tags, compare elements, and find relationship paths. VS Code can register the server when the extension activates. Claude Code, Cursor, and other clients can run the smaller @likec4/mcp package against a workspace.

This is a better agent boundary than asking a model to interpret screenshots. The server returns the resolved architecture model and source locations, so an answer can point back to an element the team owns. It does not run every adjacent integration: the MCP README says LeanIX sync and Draw.io export with the LeanIX profile remain CLI jobs. LikeC4 also publishes a DSL skill for agents that edit source files. Querying and editing are separate capabilities, and teams should grant them separately.

Multi-project support stops at the workspace boundary

Large models can be split by placing likec4.config.json files in different folders. Projects may be nested, share specification files through relative include paths, and import elements from one another. Current limits are concrete: referenced projects must be loaded in the same workspace, and imports only expose top-level model elements. Include scanning defaults to a depth of 3 and warns after 30 files unless configured otherwise.

Those constraints are manageable in a monorepo and awkward across independently released services. Open issue 3195 identifies another enterprise friction point: the website documents only the latest LikeC4 version, so teams that delay upgrades must inspect release notes or old source to find matching syntax. GitHub showed 193 combined issues and pull requests, 5,548 stars, and a last push on August 23, 2026. Release v1.59.2 fixed imported elements in dynamic views and missing MCP runtime dependencies, evidence that both multi-project and agent paths are being exercised.

LikeC4 is worth adopting when diagrams are an output of an owned architecture model. The source install is heavy, yet the 148-second build and passing 71-second tests make that weight easier to accept. It suits teams that review model diffs, enforce conventions, and query the graph. For a few static boxes, D2 or C4-PlantUML asks less of everyone.

Alternatives

ProjectWhat it isPick it when
C4-PlantUMLPlantUML macros for drawing software architecture with C4 conventions.pick this instead when your team already uses PlantUML and wants familiar C4 levels with fewer platform pieces.
D2A general diagram language with automatic layout and several rendering options.pick this instead when you need many kinds of diagrams and do not need a persistent architecture model or MCP queries.
DiagramsA Python library for drawing cloud architecture diagrams as code.pick this instead when Python and provider icons matter more than interactive architecture navigation.

What people are saying

  1. [github-trending] likec4/likec4

Sources

  1. LikeC4 README
  2. LikeC4 CLI documentation
  3. LikeC4 AI tools documentation
  4. LikeC4 multi-project documentation
  5. Documentation versioning issue
  6. LikeC4 v1.59.2 release

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →