# Registry

Learn how to use the pdfcn registry with the shadcn CLI.

> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).



The **pdfcn** registry ships Takumi and Forme components, blocks, and themes in the [shadcn registry format](https://ui.shadcn.com/docs/registry). Register the namespace once in `components.json`, then pull items by name with the CLI.

## Setup [#setup]

Add a **registries** entry for this site. See the [shadcn registry documentation](https://ui.shadcn.com/docs/registry) for all `components.json` fields and behaviors.

```json
{
  "registries": {
    "@pdfcn": "https://pdfcn.dev/r/{name}.json"
  }
}
```

You can replace `@pdfcn` with another namespace; it only needs to match what you pass to `shadcn add`.

## Usage [#usage]

Items are namespaced by base: `takumi/` for Takumi and `forme/` for Forme.

Registry files follow these destinations:

* Components install into `components/ui/`.
* Blocks install into the configured blocks directory.

Components declare their dependencies, so installing a component does not require additional setup.

### Takumi [#takumi]

Install a component:

```bash
npx shadcn@latest add @pdfcn/takumi/text
```

Install a block:

```bash
npx shadcn@latest add @pdfcn/takumi/invoice-minimal
```

Without a registry alias, use the full URL (as on each docs page):

```bash
npx shadcn@latest add https://pdfcn.dev/r/takumi/text.json
```

### Forme [#forme]

Install a component:

```bash
npx shadcn@latest add @pdfcn/forme/text
```

Install a block:

```bash
npx shadcn@latest add @pdfcn/forme/invoice-minimal
```

Without a registry alias, use the full URL (as on each docs page):

```bash
npx shadcn@latest add https://pdfcn.dev/r/forme/text.json
```
