Distribution
Registry and CLI
Install and update editable Nerio source from an immutable package Registry, local manifest, or bounded HTTPS mirror without shadcn formats or tooling.
Quick start
pnpm add -D @nerio-ui/registry@1.0.0-beta.1 @nerio-ui/cli@1.0.0-beta.1pnpm exec nerio initpnpm exec nerio listpnpm exec nerio info buttonpnpm exec nerio add button --dry-runpnpm exec nerio add buttonpnpm exec nerio diff buttonpnpm exec nerio update button --dry-runpnpm exec nerio doctorinit creates configuration, doctor validates the manifest, and add writes the selected component and source dependencies. Use list to discover components, info to inspect metadata, and add --dry-run to review the initial install plan. Use diff and update --dry-run before applying an upstream source update.
For a one-off initialization or component install, invoke the real package name. Keep the local installation above as the default for repeatable lifecycle work.
pnpm dlx @nerio-ui/cli@1.0.0-beta.1 initpnpm dlx @nerio-ui/cli@1.0.0-beta.1 add buttonProject configuration
{ "schemaVersion": "1.0.0", "registry": "@nerio-ui/registry/manifest.json", "components": "components/nerio"}The default package specifier resolves the immutable Registry shipped with the installed CLI-compatible release. Relative registry paths resolve from the target project. HTTPS manifests resolve every source file relative to the final manifest URL. Plain HTTP is rejected unless each command supplies --allow-insecure-http; reserve that opt-in for a trusted local Registry. Remote requests enforce a 10-second request/body timeout, a 2 MiB manifest limit, a 4 MiB per-source limit, at most three redirects, content-type handling, schema/path validation, and SHA-256 integrity.
Installed source lifecycle
A successful install writes nerio.lock.json beside nerio.json. The portable record contains Registry schema and release metadata, exact source revision, style contract version, requested items, dependency closure, installed paths, and original SHA-256 hashes and Registry integrity metadata. It contains no source content, secrets, or absolute machine paths.
diff [component]reports unchanged, locally modified, upstream changed, added, removed, and combined conflict states.update [component] --dry-runprints the complete deterministic plan without writing.update [component]applies added and upstream-only changes, removes only unchanged obsolete files, and preserves local-only edits.- When local and upstream changes overlap, the update stops before writing. Resolve the source manually or use
--forceonly when intentional replacement is acceptable. - Shared tokens and utilities are tracked independently from leaf components, so dependency closures update without duplicate files.
- Add and update fetch and validate the complete plan before writing, stage every change, commit source before lock metadata, and restore both source and lock state after any handled failure. A durable local journal recovers an interrupted process on the next state-sensitive command (
add,diff,update, ordoctor); already-committed source and lock state is retained. A project-local process lock serializes installs, updates, validation, and recovery so parallel commands cannot lose source ownership or lock metadata;listandinforemain read-only inspection commands. An owner heartbeat also makes locks reclaimable after process death, restart, or PID reuse.
To adopt a pre-metadata alpha install, commit or back up local changes, point nerio.json at the intended release Registry, and rerun add <component>. Files that still match the release are adopted into the new metadata without replacement; customized token source remains local and is reported as drift. The CLI accepts the legacy nerio.json 0.1.0 schema during adoption and diagnoses the move to schema 1.0.0. Resolve other pre-existing differences explicitly before the first managed update. Use the same diff-first sequence for prerelease-to-prerelease and prerelease-to-1.0 migrations.
Available source items
typographyfoundation - 5 files - no primitivemotion-adapterfoundation - 1 files - no primitivekbdfoundation - 5 files - no primitivebuttonactions - 9 files - buttontoggleactions - 9 files - togglebutton-groupactions - 5 files - no primitivebadgedata-display - 6 files - no primitivespinnerfeedback - 6 files - no primitiveskeletonfeedback - 6 files - no primitiveempty-statefeedback - 5 files - no primitivealertfeedback - 6 files - no primitivecarddata-display - 5 files - no primitiveseparatordata-display - 5 files - no primitiveavatardata-display - 6 files - no primitiveprogressfeedback - 6 files - no primitivestatdata-display - 5 files - no primitivekey-valuedata-display - 5 files - no primitivetabledata-display - 5 files - no primitiveitemdata-display - 6 files - no primitivelistdata-display - 6 files - no primitiveselectforms - 10 files - selectcomboboxforms - 11 files - comboboxsearch-fieldforms - 3 files - no primitiveradio-groupforms - 8 files - radio-group, radioinputforms - 7 files - no primitivefile-inputforms - 8 files - no primitiveinput-groupforms - 6 files - no primitivetextareaforms - 6 files - no primitivelabelforms - 8 files - Tooltipform-messageforms - 5 files - no primitivefieldforms - 5 files - no primitiveform-groupforms - 5 files - no primitivecheckboxforms - 9 files - checkboxswitchforms - 7 files - switchcalendarforms - 6 files - no primitivedate-pickerforms - 2 files - popoversliderforms - 9 files - slidertabsnavigation - 7 files - tabscollapsibledata-display - 6 files - collapsibleaccordiondata-display - 6 files - accordionbreadcrumbsnavigation - 5 files - no primitivepaginationnavigation - 5 files - no primitivedialogoverlays - 7 files - dialogalert-dialogoverlays - 1 files - alert-dialogsidebar-primitivenavigation - 8 files - no primitivecommand-primitivenavigation - 8 files - autocompletesheetoverlays - 7 files - dialogpopoveroverlays - 7 files - popoverdropdown-menuoverlays - 8 files - menutooltipoverlays - 8 files - tooltiptoastfeedback - 6 files - toastThis page reads Registry 1.0.0-beta.1 (v1.0.0-beta.1) using schema 1.1.0 and style contract tailwind-v1. Initial add refuses to replace changed files by default. Use --overwrite only for intentional reinstall; normal upgrades use the non-destructive update workflow.
Registry contract
- Metadata declares dependencies, files, SHA-256 integrity, Base UI primitives, slots, and variants.
- Top-level metadata pins the Registry release, exact source revision, schema, and style contract.
- Server-safe form items such as
form-groupdeclare no Base UI primitive; interactive controls such ascheckbox,radio-group, andswitchdeclare their Base UI primitive contracts. - Required tokens make styling dependencies explicit for products and AI agents.
listprints component name, title, and category from the configured registry.info <component>prints dependencies, registry dependencies, files, tokens, and usage.- Registry dependencies are traversed before the requested component is installed.
--dry-runprints every target file without writing to the project.- Target paths are constrained to the configured component directory.
doctordistinguishes blocking version, schema, dependency, metadata, and setup errors from informational local source drift.