# cpl new

## Contents

- Description

- Arguments

- Project types

Generates a workspace and initial project or add a project to workspace.

cpl new <type> <name>
cpl n <type> <name>
cpl N <type> <name>

## Description

Generates a workspace and initial project or add a project to workspace.

You can define custom project types by creating templates in a `.cpl` folder.

If the command is running in a CPL workspace, it will add the new project to the workspace.

Argument | Description | Value type
--- | --- | ---
`<type>` | The type of the project, see types | `str`
`<name>` | The name of the project | `str`
`--base` | First element of path will be used as base-path not ‘src’. For example: ‘cpl g c test/Test’ will be created at `src/test/` with –base it would be `test/` | `str`

## Project types

Project type | Description
--- | ---
`console` | A simple console application
`library` | A package

## Flags

Argument | Description
--- | ---
`--async` | Specifies whether async is used
`--application-base` | Specifies whether application base is used
`--startup` | Specifies whether startup is used
`--service-providing` | Specifies whether service-providing is used
`--nothing` | Specifies whether nothing is used
`--venv` | Specifies whether venv is used