
Security News
Risky Biz Podcast: Making Reachability Analysis Work in Real-World Codebases
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
likec4
package is a composition of language services, react components, vite plugin and CLI.
Features:
Compatibility Note:
LikeC4 requires Node.js version 20+
If you're using it in an npm project, install it as a development dependency:
npm install --save-dev likec4
You can reference it directly in the package.json#scripts
object:
{
scripts: {
dev: 'likec4 serve ...',
build: 'likec4 build ...'
}
}
To use the CLI globally, you can call it with npx
:
npx likec4 [command]
If you want to use it in any arbitrary project without npx
, install it globally:
npm install --global likec4
# Then, you can call `likec4` directly:
likec4 [command]
Refer to the help:
likec4 build -h likec4 codegen react -h
Almost all commands have a
--help
option and provide usage examples.
In a folder with LikeC4 sources:
likec4 serve
# Aliases:
likec4 start
likec4 dev
This recursively searches for *.c4
, *.likec4
files in the current folder, parses and serves diagrams in a local web server.
Any change in the sources triggers a hot update in the browser.
Tip:
You can uselikec4 start [path]
in a separate terminal window and keep it running while you're editing diagrams in editor, or even serve multiple projects at once.
Build a single HTML with diagrams, ready to be embedded into your website:
likec4 build -o ./dist
Demo - https://template.likec4.dev
Tip:
likec4/template repository demonstrates how to deploy to github pages.
likec4 codegen react --outfile ./src/likec4.generated.tsx
likec4 export png -o ./assets
This command starts the local web server and uses Playwright to take screenshots.
If you plan to use it on CI, refer to Playwright documentation for details.
Export to various formats via codegen:
likec4 codegen mmd
likec4 codegen mermaid
likec4 codegen dot
likec4 codegen d2
likec4 codegen plantuml
๐ Read documentation for other CLI usage
Start MCP server with stdio
transpor:
likec4 mcp
# or
likec4 mcp --stdio
Start MCP server with http
transport on port 33335:
likec4 mcp --http
Start MCP server with http
transport on port 1234:
likec4 mcp -p 1234
๐ Read documentation for MCP usage
LikeC4 Vite Plugin allows you to embed views from your LikeC4 model into your Vite-based application.
The plugin will automatically generate the necessary code to render the views.
Add LikeC4 plugin to the Vite config:
// vite.config.ts
import react from '@vitejs/plugin-react'
import { LikeC4VitePlugin } from 'likec4/vite-plugin'
import { defineConfig } from 'vite'
export default defineConfig({
plugins: [
react(),
LikeC4VitePlugin(),
],
})
Use the LikeC4View
component in your application:
import { LikeC4View } from 'likec4:react'
import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
createRoot(document.getElementById('root')!).render(
<StrictMode>
<LikeC4View viewId="index" />
</StrictMode>,
)
๐ Read documentation for Vite piugin usage
You can access and traverse your architecture model programmatically using the LikeC4 API.
Recursively searches and parses source files from the given workspace directory:
import { LikeC4 } from 'likec4'
const likec4 = await LikeC4.fromWorkspace('path to workspace', opts)
Parses the model from the string:
import { LikeC4 } from 'likec4'
const likec4 = await LikeC4.fromSource(
`
specification {
element system
element user
}
model {
customer = user 'Customer'
cloud = system 'System'
}
views {
view index {
include *
}
}`,
opts,
)
When the model is initialized, you can use the following methods to query and traverse it.
import { LikeC4 } from 'likec4'
const likec4 = await LikeC4.fromSource(`....`)
// Validation errors
console.log(likec4.getErrors())
// Traverse the model
const model = likec4.model()
model
.element('cloud.backend.api')
.incoming() // relationships incoming to the element
.filter(r => r.tags.includes('http')) // filter by tags
.map(r => r.source) // get source elements
// Layouted views
const diagrams = await likec4.diagrams()
We are always happy to help you get started:
LikeC4 is a MIT-licensed open source project with its ongoing development made possible entirely by your support.
If you like the project, please consider contributing financially to help grow and improve it.
You can support us via OpenCollective or GitHub Sponsors.
This project is released under the MIT License
1.38.1 (2025-08-20)
Enhanced MCP:
Switched to Streamable Transport (update path from /sse
โ /mcp
):
{
"mcpServers": {
"likec4": {
"url": "http://localhost:33335/mcp"
}
}
}
Added detailed instructions and tool descriptions
New tool: find-relationships
โ discover relationships between elements.
Example: โExport to CSV all relationships between Backend and 'Amazon SQS'โ
Added filesystem watcher, that keeps the model always in sync
New CLI command:
Introduced likec4 mcp
for starting the server manually:
likec4 mcp --port 1234 ./src
FAQs
Toolchain for your architecture diagrams
The npm package likec4 receives a total of 8,698 weekly downloads. As such, likec4 popularity was classified as popular.
We found that likec4 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.ย It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socketโs AI scanner detected the supply chain attack and flagged the malware.
Security News
CISAโs 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.