# new

Create new Paradoc artifacts

Canonical URL: https://docs.paradoc.dev/cli/commands/new/

Creates new Paradoc artifacts with interactive prompts or command-line options.

## Usage

```bash
paradoc new <type> <name> [options]
```

## Subcommands

| Command     | Description                     |
| ----------- | ------------------------------- |
| `form`      | Create a new form artifact      |
| `document`  | Create a new document artifact  |
| `checklist` | Create a new checklist artifact |
| `bundle`    | Create a new bundle artifact    |

***

## new form

Create a new form artifact.

```bash
paradoc new form <name> [options]
```

### Options

| Option                         | Description                                     |
| ------------------------------ | ----------------------------------------------- |
| `-y, --yes`                    | Non-interactive mode (skip prompts)             |
| `--slug <slug>`                | Override auto-generated slug                    |
| `--title <title>`              | Human-readable title                            |
| `--description <desc>`         | Description                                     |
| `--code <code>`                | Form number as printed by its issuer            |
| `--artifact-version <version>` | Version (default: 1.0.0)                        |
| `--dir <path>`                 | Custom output directory                         |
| `--field <name:type>`          | Add field (can be used multiple times)          |
| `--dry-run`                    | Preview without creating files                  |
| `--format <format>`            | Output format: `json` or `yaml` (default: json) |

`type` must be one of the field types the schema accepts (`text`, `boolean`, `number`, `coordinate`, `bbox`, `money`, `address`, `phone`, `duration`, `email`, `uuid`, `uri`, `enum`, `date`, `datetime`, `time`, `person`, `organization`, `identification`, `multiselect`, `percentage`, `rating`, `fieldset`, `list`). An unknown type exits non-zero and lists the valid types. Every type scaffolds with the keys it requires, so the result passes `paradoc validate`: `enum` and `multiselect` get sample `enum` options, `fieldset` gets an empty `fields` map, and `list` gets a `text` `item`.

### Examples

Interactive form creation:

```bash
paradoc new form my-form
```

Non-interactive with options:

```bash
paradoc new form lease-agreement \
  --yes \
  --title "Lease Agreement" \
  --field "address:address" \
  --field "rent:money" \
  --format yaml
```

***

## new document

Create a new document artifact.

```bash
paradoc new document <name> [options]
```

### Options

| Option                         | Description                                     |
| ------------------------------ | ----------------------------------------------- |
| `-y, --yes`                    | Non-interactive mode (skip prompts)             |
| `--slug <slug>`                | Override auto-generated slug                    |
| `--title <title>`              | Human-readable title                            |
| `--description <desc>`         | Description                                     |
| `--code <code>`                | Form number as printed by its issuer            |
| `--artifact-version <version>` | Version (default: 1.0.0)                        |
| `--dir <path>`                 | Custom output directory                         |
| `--dry-run`                    | Preview without creating files                  |
| `--format <format>`            | Output format: `json` or `yaml` (default: json) |

***

## new checklist

Create a new checklist artifact.

```bash
paradoc new checklist <name> [options]
```

### Options

| Option                         | Description                                     |
| ------------------------------ | ----------------------------------------------- |
| `-y, --yes`                    | Non-interactive mode (skip prompts)             |
| `--slug <slug>`                | Override auto-generated slug                    |
| `--title <title>`              | Human-readable title                            |
| `--description <desc>`         | Description                                     |
| `--code <code>`                | Form number as printed by its issuer            |
| `--artifact-version <version>` | Version (default: 1.0.0)                        |
| `--dir <path>`                 | Custom output directory                         |
| `--item <text>`                | Add item (can be used multiple times)           |
| `--dry-run`                    | Preview without creating files                  |
| `--format <format>`            | Output format: `json` or `yaml` (default: json) |

### Example

```bash
paradoc new checklist move-in \
  --yes \
  --title "Move-in Checklist" \
  --item "Collect keys" \
  --item "Record meter readings"
```

***

## new bundle

Create a new bundle artifact.

```bash
paradoc new bundle <name> [options]
```

### Options

| Option                         | Description                                     |
| ------------------------------ | ----------------------------------------------- |
| `-y, --yes`                    | Non-interactive mode (skip prompts)             |
| `--slug <slug>`                | Override auto-generated slug                    |
| `--title <title>`              | Human-readable title                            |
| `--description <desc>`         | Description                                     |
| `--code <code>`                | Form number as printed by its issuer            |
| `--artifact-version <version>` | Version (default: 1.0.0)                        |
| `--dir <path>`                 | Custom output directory                         |
| `--dry-run`                    | Preview without creating files                  |
| `--format <format>`            | Output format: `json` or `yaml` (default: json) |

## See also

* [validate](/cli/commands/validate) - Validate created artifacts
* [fix](/cli/commands/fix) - Fix artifact issues

Every `new` subcommand accepts `--force` to overwrite an existing file. `--yes` skips prompts but does not permit overwriting without `--force`.
