The component lives in your repo
Ply at ply-ui.com copies Angular and Tailwind components into your repo. You edit the file the CLI wrote.
Ply — ply-ui.com — copies each Angular component into the project. You open the file and change the Tailwind markup. Teams are asking about that model because PrimeNG 22 no longer ships MIT source: releases through 21 stay MIT, and v22 is a compiled package under the PrimeUI license (PrimeTek). What follows is what copy-in changes in the app.
The command writes files
npx ply-ui-cli init
npx ply-ui-cli add card dialog data-table
add writes .ts, .html, and .spec.ts under src/app/components/<name>/ by default. The UI is those files. Styling is Tailwind CSS. The component is an Angular class you already know how to edit.
shadcn/ui describes the same distribution in one sentence: “This is not a component library. It is how you build your component library.” Ply is that shape for Angular. @angular/material recorded 2,443,745 weekly downloads for 16–22 August 2026 — a package you depend on. A Ply component is a file in git, so the thing you version is the source.
You change the template
A header divider, a tighter footer, a stacked action row: those are class changes in the HTML the CLI wrote. The longer version of why that boundary matters is Your UI library shouldn't live in node_modules.
Updates compare files
npx ply-ui-cli diff shows what changed upstream. npx ply-ui-cli update applies it. Files you have not touched update. Files you edited stay unless you ask to overwrite them. init writes ply-ui-lock.json, which is how the CLI knows which copies are yours.
The free tier is MIT
The catalog is 218 items: 128 free, 90 Pro. The free components, ply-ui-cli, and ply-ui-mcp are MIT at github.com/ply-ui-ng/ply. The MIT license asks you to keep the copyright notice. You can ship the code in a product. Pro is a one-time $99 license for blocks, layouts, and advanced widgets. Setup is /getting-started.
Where this stops
A tree table and a cascade select sit outside this catalog. If the screen depends on one of those, keep the library that has it. Copy-in is the path when the requirement is a component you can read, diff, and edit.
npx ply-ui-cli list is the catalog. npx -y ply-ui-mcp is the same free catalog for an agent. The six-library table is /compare.
Frequently asked questions
Same wording as the canonical FAQ.
Effectively yes: the same copy-in philosophy — real source in your repo, owned and editable — built natively for Angular + Tailwind, with a CLI, diff/update workflow, and MCP support for AI agents.
npx ply-ui-cli diff shows upstream changes per file. update applies them: untouched files always take upstream; files you edited while upstream stayed the same are skipped unless you pass --overwrite-local; files both sides changed are conflicts — prompt (Merge first), --yes to skip, --force to take upstream, or --merge for a 3-way merge using .ply-ui/snapshots. Tracked via ply-ui-lock.json.
The 128 free components, ply-ui-cli, and ply-ui-mcp are MIT. Free source is at github.com/ply-ui-ng/ply. You may use, modify, and redistribute them. Pro components are a separate paid license — see LICENSE-PRO.md.
npx ply-ui-cli init once per project, then npx ply-ui-cli add <name>. Omit the name in a terminal to pick from the catalog (filter, then type to select). --yes and CI need explicit names. Components land in src/app/components/<name>/ by default and are yours.
Install Tailwind CSS 4 and @angular/cdk, run npx ply-ui-cli init, then npx ply-ui-cli add card (or add with no name to pick from the catalog). The steps, MCP setup for AI tools, and a StackBlitz starter are at /getting-started/. Brand color, translated strings, and right-to-left layouts are at /configuration/.
Start with the free tier
All primitives, all 19 form blocks, and 392 outline icons — no account, no licence key.