Appearance
Quickstart
This page covers both normal end-user usage and the contributor-only local fixture flow used inside this repository.
Current Scope
UCR currently supports:
- Bun-managed non-Next projects with
bun-http - npm- and pnpm-managed non-Next projects with
node-http - Bun-, npm-, and pnpm-managed Next projects with
next-app-router - local registries and remote HTTPS registries
Yarn and additional adapters are still out of scope.
Prerequisites
- a managed target project using Bun, npm, or pnpm
- the
ucrstandalone binary on yourPATH
Install the binary from GitHub Releases:
bash
curl -fsSL https://ucr.network/install.sh | shThe Unix installer writes PATH configuration for future shells automatically. Because curl | sh runs in a child shell, open a new terminal before invoking ucr in that flow.
On Windows PowerShell:
powershell
irm https://ucr.network/install.ps1 | iexTo update an existing standalone installation later:
bash
ucr self-updateStandard End-User Flow
Initialize the current project against the built-in official registry:
bash
ucr init --target .List the remote catalog:
bash
ucr listThe official catalog is grouped for day-to-day usage:
- start with
Project Foundations - add either a starter CRUD block or the granular
Entity/API Flows - add
Admin UIblocks last fornext-app-routerprojects
Inspect one item:
bash
ucr show entity-contractFor the complete shipped catalog, see Official Registry. It expands the high-level CLI output with per-item purpose, requirements, outputs, and usage recipes.
Fastest starter path for a Next resource:
bash
ucr add next-crud-resource --instance posts --input entity=Post --input plural=posts --input-file fields=./post.fields.jsonGranular path for the same resource:
bash
ucr add entity-contract --instance posts --input entity=Post --input plural=posts --input-file fields=./post.fields.jsonOn Next projects, add admin/detail UI after the API flow is in place:
bash
ucr add admin-page --instance posts --input entity=Post --input plural=posts
ucr add entity-detail-page --instance posts --input entity=Post --input plural=postsFastest starter path for a Node HTTP resource:
bash
ucr add node-crud-resource --instance posts --input entity=Post --input plural=posts --input-file fields=./post.fields.json
ucr add node-server --instance server --input-file routeModules=./route-modules.jsonFastest starter path for a Bun HTTP resource:
bash
ucr add bun-crud-resource --instance posts --input entity=Post --input plural=posts --input-file fields=./post.fields.json
ucr add bun-server --instance server --input-file routeModules=./route-modules.jsonCompare local state with upstream:
bash
ucr diff entity-contract --instance postsApply safe upstream changes later:
bash
ucr upgrade entity-contract --instance postsTo pin a project to a versioned remote registry manifest instead of latest:
bash
ucr init --registry https://ucr.network/registry/ucr-official/v3.0.0/registry.json --target .Registry Override Modes
All commands accept an explicit registry reference:
bash
ucr list --registry https://ucr.network/registry/ucr-official/latest/registry.jsonThat same flag also accepts a local registry file:
bash
ucr list --registry /absolute/path/to/registry.jsonYou can also persist the registry reference in .ucr/config.json via init, or override it per-shell with UCR_REGISTRY.
For authenticated remote private registries, set UCR_REGISTRY_AUTH_HEADER first:
bash
export UCR_REGISTRY_AUTH_HEADER="Authorization: Bearer $UCR_TOKEN"
ucr list --registry https://registry.example.com/ucr/registry.jsonpowershell
$env:UCR_REGISTRY_AUTH_HEADER = "Authorization: Bearer $env:UCR_TOKEN"
ucr list --registry https://registry.example.com/ucr/registry.jsonSee Private Registries for the exact auth format, same-origin bundle behavior, and what UCR does not persist.
Contributor Flow In This Repository
Contributors still work from the source registry and examples checked into this repo.
Prepare the workspace:
bash
bun install
bun run buildBuild the published registry assets locally:
bash
bun run registry:buildInspect the Bun HTTP example against the local fixture:
bash
bun packages/cli/dist/bin.js list --registry fixtures/registries/ucr-official/registry.json --target examples/bun-serviceInspect the Next example:
bash
bun packages/cli/dist/bin.js show admin-page --registry fixtures/registries/ucr-official/registry.json --target examples/next-appInspect the Node HTTP example:
bash
bun packages/cli/dist/bin.js show node-server --registry fixtures/registries/ucr-official/registry.json --target examples/node-serviceThis repository keeps the examples because they demonstrate:
bun-httpoutputs underucr/...,server/routes/..., andserver/...node-httpoutputs underucr/...,server/routes/..., andserver/...next-app-routeroutputs undersrc/ucr/...,src/app/api/..., andsrc/app/...- the exact item catalog that becomes the official published registry
What To Read Next
- Private Registries for local and authenticated remote registry setup
- Concepts for instance ids, capabilities, cache behavior, and state files
- Commands for all flags and examples
- Trust And Scope for license, privacy, pricing, and compatibility facts
- Official Registry for the concrete
ucr-officialitem catalog - Examples for the checked-in Bun, Node, and Next compositions