Pricing

Commands

Add, update, compare and search components with the slabui CLI.

These commands use the slabui CLI installed in your project (see Installation). All commands accept --cwd <dir> to run in another folder and --yes to never prompt, which is useful in CI and for AI agents.

init

Creates slabui.json. See Installation for the options and the configuration fields.

pnpm slabui init

add

Installs items and their dependencies. Without a version, the latest one is used.

pnpm slabui add button input
pnpm slabui add button@1.0.1
pnpm slabui add button@^1
  • Files that already exist are only overwritten after confirmation, or with --overwrite.
  • Theme variables are added to your CSS file, keeping values you customized.
  • --skip-install skips the npm packages.

Blocks and examples

Blocks and examples are starting points: they are copied once and become yours. They require --path and keep their folder structure:

pnpm slabui add button-outline --path components/examples

Their dependencies are installed as usual, but blocks and examples are not tracked in slabui.json, so you can install the same one in different folders.

update

Updates installed items to the latest version within the installed major.

pnpm slabui update
pnpm slabui update button
pnpm slabui update button --major

For each file, the CLI compares three versions: the one you installed, your local file and the new version.

  • Unchanged file: replaced by the new version.
  • Changed file: your changes and the new version are merged.
  • Conflict: when both changed the same lines, the file gets markers to resolve in your editor:
<<<<<<< local
      disabled={disabled || loading || props.readOnly}
=======
      disabled={disabled || loading}
      aria-busy={loading || undefined}
>>>>>>> remote

In an interactive terminal, the CLI asks what to do with each conflict.

diff

Shows what update would change. With --local, shows only what you changed since installing. Like update, it compares with the latest version within the installed major; pass --major or a version (button@2) to compare with another one. Exits with code 1 when there is a difference.

pnpm slabui diff button
pnpm slabui diff button --local

outdated

Lists installed items that have newer versions, without downloading their code. Wanted is the version update would install (the latest within the installed major) and Latest is the newest of all; a newer major needs update --major.

pnpm slabui outdated
Item    Current  Wanted  Latest  Registry
button  1.0.0    1.0.1   2.0.0   @slabui
table   1.0.1    1.0.2   1.0.2   @slabui

Pass item names to check only those, --all to also list the items that are up to date and --json for scripts and agents. It exits with code 1 when an item is outdated, no longer exists in the registry or has a version that left the index, so it can fail a CI step. Blocks and examples are not tracked, so they are not listed.

Theme variables

Items can bring CSS variables (see Themes). add and update write them to the css file from slabui.json:

  • light variables go to :root and dark variables to .dark.
  • Every color also gets a --color-<name>: var(--<name>) mapping in @theme inline, so Tailwind CSS 4 generates utilities like bg-<name>.
  • @custom-variant dark (&:is(.dark *)); is added when the file does not declare the dark variant yet.
  • Values you changed are kept, with a warning. add --overwrite replaces them.
  • On update, variables removed in the new version are only removed after confirmation, and variables you deleted are not added back.

Fuzzy search by name, title, keywords and description:

pnpm slabui search modal
pnpm slabui search dashboard --type block

info

Versions, files and dependencies of an item:

pnpm slabui info button

Update notices

At the end of a command, slabui may print two notices to stderr:

  • A new version of the CLI, with the command to update it in your project's package manager (pnpm add -D slabui@latest).
  • Installed items with newer versions, after add, info and search, suggesting slabui outdated. It reuses the index the command already downloaded and shows up at most once a day per project.

They never slow commands down: the npm check is cached for 24 hours in your user cache folder and is skipped if it does not answer in time. Notices are off in CI, without an interactive terminal, with --json and with SLABUI_NO_UPDATE_CHECK=1.

Telemetry

slabui makes no extra requests for telemetry. On the requests it already makes to a registry, it sends its version (User-Agent: slabui/<version>) and the command that caused them (add, update, info…), so the registry can tell installs from updates. Search terms, file contents and data about your project are never sent.

The SlabUI registry counts downloads per item and version without storing IP addresses. To opt out, set SLABUI_TELEMETRY_DISABLED=1 (or DO_NOT_TRACK=1): slabui stops sending the command and asks the registry not to count you.