# registry catalog

Manage registry catalog items

Canonical URL: https://docs.paradoc.dev/cli/commands/registry/catalog/

Manage the artifact source files that `registry.config.json` lists.

## Usage

```bash
paradoc registry catalog <command> [options]
```

## Subcommands

| Command  | Description                                                             |
| -------- | ----------------------------------------------------------------------- |
| `add`    | Add an artifact source file to the registry catalog                     |
| `remove` | Remove an artifact, or one source file of it, from the registry catalog |

***

## catalog add

Add an artifact source file to the registry catalog.

```bash
paradoc registry catalog add <artifact> [options]
```

### Arguments

| Argument   | Description                                                    |
| ---------- | -------------------------------------------------------------- |
| `artifact` | Path to artifact file (JSON/YAML): one release of one artifact |

### Options

| Option                | Description                                                      |
| --------------------- | ---------------------------------------------------------------- |
| `-c, --config <path>` | Path to registry.config.json (default: `./registry.config.json`) |

### Description

Reads and validates the artifact file, then adds its path to `sources` in `registry.config.json`. Each file is one release: one version of one edition, or one version of an artifact that has no editions. Files with the same `name` are the editions and versions of one artifact.

The file must be in the folder of `registry.config.json` or below it. The command refuses a file that conflicts with the catalog, for example a second file for the same edition and version, and says why. A file that is already listed changes nothing. A version with build metadata (`1.0.0+build.5`) is refused.

Search tags and default editions and versions are not set here. Edit `tags` and `defaults` in `registry.config.json`. See [Registry config](/concepts/registries#registry-config).

### Examples

```bash
paradoc registry catalog add forms/w4/2024-1.1.0.json
paradoc registry catalog add forms/lease.yaml -c ./my-registry/registry.config.json
```

### Output

```
✓ Added w4 2024 v1.1.0 (form)
Catalog now has 4 source file(s)
```

***

## catalog remove

Remove an artifact, or one source file of it, from the registry catalog.

```bash
paradoc registry catalog remove <target> [options]
paradoc registry catalog rm <target> [options]
```

### Arguments

| Argument | Description                                                                                  |
| -------- | -------------------------------------------------------------------------------------------- |
| `target` | Artifact name, which removes every edition and version of it, or the path of one source file |

### Options

| Option                | Description                                                      |
| --------------------- | ---------------------------------------------------------------- |
| `-c, --config <path>` | Path to registry.config.json (default: `./registry.config.json`) |
| `-y, --yes`           | Skip confirmation prompts                                        |

### Description

Removes source files from `sources` in `registry.config.json`. It does not delete the files. The next [`registry compile`](/cli/commands/registry/compile) writes a manifest without those releases, which is how you withdraw a version.

### Examples

```bash
paradoc registry catalog remove w9
paradoc registry catalog rm forms/w4/2025-1.0.0.json -y
```

### Output

```
✓ Removed forms/w4/2025-1.0.0.json from the catalog
Catalog now has 4 source file(s)
```

## See also

* [registry make](/cli/commands/registry/make) - Create a registry
* [registry compile](/cli/commands/registry/compile) - Compile registry artifacts
