CLI Distribution

The registry item JSON that Jolocky serves to the shadcn CLI, and how files and dependencies are packaged.

Jolocky serves each item as JSON from /r/<item>.json. The response uses the registry item format that npx shadcn add understands, so the CLI can install it like any other registry item.

Registry Item Format

A free item can be inspected directly:

curl https://www.jolocky.com/r/aurora-drift.json

The response looks like this (abridged: file contents are shortened, only two of the item's files are shown, and some meta fields are omitted):

{
  "name": "aurora-drift",
  "type": "registry:block",
  "description": "Aurora Drift Outro",
  "dependencies": [],
  "devDependencies": [],
  "registryDependencies": [],
  "files": [
    {
      "path": "components/footers/aurora-drift/aurora-drift-footer.tsx",
      "content": "\"use client\"\n\nimport * as React from \"react\"\n...",
      "type": "registry:block",
      "target": "components/footers/aurora-drift/aurora-drift-footer.tsx"
    },
    {
      "path": "components/footers/aurora-drift/footer-styles.ts",
      "content": "export const footerStyles = `...`",
      "type": "registry:lib",
      "target": "components/footers/aurora-drift/footer-styles.ts"
    }
  ],
  "meta": {
    "tier": "free",
    "author": "Jolocky"
  }
}

The meta object carries extra information such as the tier and catalog category. The CLI does not use it.

How Items Are Packaged

  1. Files with fixed targets: Every file has an explicit target under components/footers/<item>/. Files inside an item import each other with relative paths, so the item works wherever the folder lands.
  2. Dependency detection: The registry scans each file's imports. Known npm packages, such as three in Sonar Terrain, are listed in dependencies, and the CLI installs them. Most items import only React, so the list is usually empty.
  3. No global CSS changes: Each footer's CSS is shipped inside its own files, so the response contains no cssVars or Tailwind config and the CLI does not edit your stylesheet.

Installing by Name

If you declare the @jolocky namespace in your components.json, you can install by name instead of URL:

pnpm dlx shadcn@latest add @jolocky/aurora-drift

See components.json for the namespace setup.