Liam ERD: interactive ER diagrams from a schema file or a URL
Automatically generates beautiful and easy-to-read ER diagrams from your database.
At a glance
- What is it?
- Liam ERD turns an existing database schema into an interactive entity-relationship diagram. It is aimed at teams that want schema documentation without running a diagramming tool by hand, and it ships as a hosted viewer plus an npm CLI.
- Who is it for?
- Adopt Liam ERD if your schema already lives in a file in a Git repository and you want a diagram that stays in sync with it, either by prefixing a public file URL with liambx.com/erd/p/ or by running npx @liam-hq/cli init for a private repository. Do not adopt it if you need a diagram generated by connecting directly to a live database, since the README describes schema files and repository URLs, not a connection string.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 7 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The problem Liam ERD addresses: schema files that nobody can read
A schema file is a poor diagram. Rails migrations, a Prisma schema and a raw SQL dump all describe tables and relations, but reading the relations out of them means holding several files in your head at once. Diagramming tools exist, and most of them ask you to draw the model yourself or to keep a second copy of it in a diagram-specific format. That second copy drifts.
Liam ERD takes the opposite position. The schema file is the source of truth and the diagram is a rendering of it. The README describes the project as generating "beautiful, interactive ER diagrams from your database" and lists reverse engineering of existing schemas as the core operation. The audience is anyone who already keeps a schema in version control: Rails projects with db/schema.rb, Prisma users with schema.prisma, and teams that maintain SQL files. The repository topics include ruby-on-rails, prisma and postgresql, which matches that reading.
It is not a general-purpose diagram editor. There is no documented canvas where you drag tables around and export a schema. The input is a schema, the output is a view.
How the hosted URL viewer and the CLI differ
There are two entry points, and they are not equivalent.
The public path is a URL rewrite. You take a link to a schema file on a public host and insert liambx.com/erd/p/ between the scheme and the host. The README gives this example, where the original is https://github.com/user/repo/blob/master/db/schema.rb and the modified form is https://liambx.com/erd/p/github.com/user/repo/blob/master/db/schema.rb. The diagram is rendered on the Liam site from the file at that path. Nothing is installed and nothing is committed.
The private path is the CLI. The README's instruction for private repositories is a single interactive command, npx @liam-hq/cli init. The package name is @liam-hq/cli and it is published on npm; the README carries an npm version badge for it. The repository is a pnpm workspace with a frontend/ directory and release tooling built on changesets, and the release script builds the CLI package specifically before publishing, which tells you the CLI is the artifact the maintainers ship to users.
The rendering itself is a React application. The repository topics list react-flow and reactjs, and the primary language is TypeScript. The README claims the UI handles panning, zooming and filtering, and states it is optimized to handle 100+ tables. That last figure is a claim in the README, not a measurement published anywhere in the repository.
One consequence of the hosted path deserves attention. Pasting a schema file URL into liambx.com/erd/p/ means the file is fetched by Liam's servers. The README frames the split as public versus private repositories, which is a reasonable proxy for whether that is acceptable, but it is a proxy and not a policy. The README does not describe what happens to a fetched file.
Installing @liam-hq/cli and generating your first diagram
The README does not document a global install. The private-repository path it gives is a one-shot invocation through npx, which downloads and runs the package without adding it to a project. That is the command to start with.
npx @liam-hq/cli initThe README labels this an interactive setup, so expect prompts rather than flags. The README does not enumerate the prompts, the accepted schema formats or the files the command writes, so the first run is also the point at which you find out whether your schema is supported.
For a public repository, no install is involved. Take the URL of the schema file and move the host behind the liambx.com/erd/p/ prefix:
# Original
https://github.com/user/repo/blob/master/db/schema.rb
# Modified
https://liambx.com/erd/p/github.com/user/repo/blob/master/db/schema.rbOpen the modified URL and the diagram renders on the Liam site. What you should see is the schema laid out as tables with their relations, with panning and zooming available.
The repository has its own development setup if you intend to work on Liam rather than use it. The root package.json is private, declares [email protected] as the package manager, and defines dev, build, lint and test scripts that delegate to Turborepo. A prebuild script creates empty .env and .env.local files if they are missing, and a prepare script runs lefthook install. Those are contributor commands, not user commands, and the README points contributors at CONTRIBUTING.md.
Where Liam ERD is the wrong tool
The clearest limitation is the input model. Liam ERD renders a schema artifact. If your database is the only place the schema exists, and you have no file that describes it, there is nothing documented here to point the tool at. A team that wants to connect to a live Postgres instance and see the current tables will not find that in the README.
The public URL path depends on the schema file being reachable at a stable public address. A file behind authentication, in a private repository, or generated at build time and never committed does not fit that path, and the fallback is the CLI, which the README documents in a single line.
That thinness is itself a limitation. The README does not document the CLI's flags, its output format, whether it writes a file, where that file goes, or how to regenerate a diagram after a schema change. It does not document rollback or cleanup. Anyone evaluating the CLI has to learn its surface from the interactive prompts or from the website documentation, which the README links at liambx.com/docs.
There is also a maturity question around the release line. The most recent releases listed are @liam-hq/[email protected] and @liam-hq/[email protected], both dated 2025-11-25, with @liam-hq/[email protected] on 2025-11-12. The CLI is at 0.7.x, which normally signals that the maintainers still consider the interface unsettled. The last push to the repository was on 2026-09-22, so work is ongoing, but a 0.x version number is a warning about interface churn, not a statement about quality.
Finally, the README's performance claim about 100+ tables has no supporting detail in the repository. Treat it as a design goal until you have rendered your own largest schema.
Liam ERD against ChartDB and dbdiagram
The related searches around this project name ChartDB, dbdiagram and a SQL to DBML converter, and those comparisons are fair because they overlap on the output and differ on the input.
DBML-based tools make the diagram format the source of truth. You write DBML, or convert SQL into DBML, and the diagram is generated from that. The diagram is portable and the format is designed for editing by hand. The cost is that the DBML file is a second artifact alongside your schema, and someone has to keep the two aligned.
Liam ERD inverts that. There is no diagram format to maintain. The schema file you already have is the input, and the diagram is derived from it every time it is viewed. That removes the drift problem and removes the ability to hand-tune the layout, because there is no persisted layout to tune.
ChartDB sits closer to the diagramming-tool end of the spectrum: the diagram is the working object. If your goal is to design a schema rather than to document one that exists, that is a better fit and Liam ERD is not the tool for the job.
The honest summary is that Liam ERD competes on zero maintenance rather than on features. If your schema is already in Git and you want a link you can paste into a pull request or a README, the URL rewrite is about as low-friction as this category gets. If you need to edit the model or export a format other tools consume, look elsewhere.
Licence, maintenance and what an upgrade costs
Liam ERD is licensed under the Apache License Version 2.0, with the full text in the repository's LICENSE file. The README also points to docs/packages-license.md for third-party package licences, which matters because the frontend is built on React and React Flow and the shipped CLI bundles dependencies. Apache-2.0 is permissive and includes an explicit patent grant. It is not a copyleft licence, so it does not obligate you to publish modifications. This is a description of the licence text, not legal advice; if you plan to redistribute the CLI inside a product, have counsel read the third-party licence list rather than the top-level licence alone.
The maintenance signal is mixed and worth reading carefully. The repository is not archived, and the last push was on 2026-09-22, so development is current. The release cadence visible in the listed versions is slower than the push activity: @liam-hq/[email protected] on 2025-11-12, then @liam-hq/[email protected] and @liam-hq/[email protected] on 2025-11-25. The repository carries a roadmap link and a changesets directory, so releases are managed deliberately rather than pushed ad hoc.
The upgrade cost depends on which path you took. The hosted URL path has no upgrade cost at all, because there is nothing installed; the diagram changes when the site changes, which also means you do not control when it changes. The CLI path carries the usual 0.x risk: a minor version bump can change prompts or output, and since the README documents neither, a breaking change would not be obvious from a changelog entry alone. If you pin the CLI in a package.json rather than calling npx, you control when that happens.
Editorial conclusion
Adopt Liam ERD if your schema already lives in a file in a Git repository and you want a diagram that stays in sync with it, either by prefixing a public file URL with liambx.com/erd/p/ or by running npx @liam-hq/cli init for a private repository. Do not adopt it if you need a diagram generated by connecting directly to a live database, since the README describes schema files and repository URLs, not a connection string. Before committing to it, verify that your schema format is one the CLI accepts, and check the roadmap for the current state of the setup flow.
Frequently asked questions
What is Liam ERD and what does it generate?
Liam ERD generates interactive entity-relationship diagrams from a database schema. The README describes it as automatically generating ER diagrams from your database, with panning, zooming and filtering in the viewer.
How do I install the Liam ERD CLI?
The README does not describe a global install. For private repositories it gives a single interactive command, npx @liam-hq/cli init, which runs the published @liam-hq/cli package without adding it to your project.
Can I use Liam ERD with a private repository?
Yes, that is the case the README separates out. Public repositories use the liambx.com/erd/p/ URL prefix on a schema file link, and private repositories use the npx @liam-hq/cli init setup instead.
Which schema formats does Liam ERD support?
The README does not list supported formats. It shows a db/schema.rb example for the public URL path and the repository topics include prisma, postgresql and sql, but the CLI's accepted inputs are not documented in the README.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/liam-hq-liam)