The slabui CLI is in development. Commands, options and the registry format
may change before version 1.0.
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-installskips 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}
>>>>>>> remoteIn 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 @slabuiPass 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:
lightvariables go to:rootanddarkvariables to.dark.- Every color also gets a
--color-<name>: var(--<name>)mapping in@theme inline, so Tailwind CSS 4 generates utilities likebg-<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 --overwritereplaces them. - On
update, variables removed in the new version are only removed after confirmation, and variables you deleted are not added back.
search
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,infoandsearch, suggestingslabui 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.