# init

Initialize a new Paradoc project

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

Initializes a new Paradoc project in the current or specified directory.

## Usage

```bash
paradoc init [directory] [options]
```

## Arguments

| Argument    | Description                                             |
| ----------- | ------------------------------------------------------- |
| `directory` | Directory to initialize (defaults to current directory) |

## Options

| Option                           | Description                                           |
| -------------------------------- | ----------------------------------------------------- |
| `-y, --yes`                      | Non-interactive mode (skip prompts)                   |
| `--name <name>`                  | Project title (required in non-interactive mode)      |
| `--description <desc>`           | Project description                                   |
| `--visibility <public\|private>` | Project visibility (default: private)                 |
| `--nested`                       | Allow creating nested project inside existing project |
| `--dry-run`                      | Preview without creating files                        |

## Description

The `init` command creates a new Paradoc project with the following structure:

```
my-project/
├── paradoc.json      # Project manifest
└── .paradoc/         # CLI state directory (empty until an artifact is installed)
```

The manifest holds `$schema`, `name`, `title`, `description`, and `visibility`. The name is `@your-org/<title-slug>`; replace `your-org` with your own namespace. Add registries and other settings by hand (see [Projects](/cli/projects#the-project-manifest)).

In interactive mode, you'll be prompted for:

* Project title
* Description (optional)
* Visibility (public or private)
* Directory name

## Examples

Interactive initialization:

```bash
paradoc init
```

Non-interactive with all options:

```bash
paradoc init --yes --name "My Project" --visibility private
```

Initialize in a specific directory:

```bash
paradoc init my-new-project
```

Preview what would be created:

```bash
paradoc init --dry-run --yes --name "Test Project"
```

## See also

* [Projects](/cli/projects) - Project structure and manifest
* [add](/cli/commands/add) - Add artifacts to your project
