> ## Documentation Index
> Fetch the complete documentation index at: https://docs.honeyhive.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Projects

> Create and manage projects within a workspace. A project is the container for the events, datasets, evaluations, and alerts logged against it.

## Schema introspection

Every command below with arguments supports two read-only flags for tooling and AI agents:

* `--show-file-schema`: print the JSON Schema for the full request object (the format `--filename` accepts).
* `--show-argument-schema <flag-name>`: print the JSON Schema for one argument's value. Pass the kebab flag name **without** the leading `--` (e.g. `workspace-id`, not `--workspace-id`).

Both write pure JSON to stdout and never call the API. They cannot be combined with any other command-specific flag.

## `create`

Create a project

Create a project in a workspace. The parent workspace is identified by the `workspace_id`
path parameter alone; the `x-hh-workspace-id` header does not participate. A workspace's id
is listed on the API keys page of its workspace settings in the HoneyHive app.

The optional `project_creator` field names the user (by email) who receives the
project-creator membership on the new project. The named user must already be a member of
the workspace. When omitted, the project is created without any membership. The field is
only accepted on API-key-initiated requests. User-initiated creation always makes the
calling user the creator, so sending the field returns a 400.

The roles that membership carries come from your organization's role configuration. An
organization that grants no role on project creation is a supported case: the request
still succeeds and the named user receives no access. A 200 response is not by itself
confirmation that the named user was granted anything.

A `project_creator` who is already signed in does not see the new project immediately. A
session captures its scope tree and permission grants when it is created, so a membership
granted afterwards is not reflected in it. Creating the project marks that user's sessions
for refresh, and the refresh takes effect on their next request to the control plane, so
an idle browser tab may need a page reload.

### Usage

```sh theme={null}
honeyhive projects create [options]
```

### Options

| Flag                | Type   | Required | Description                                                                                                                                                                                                                |
| ------------------- | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--name`            | string | yes      | Project display name                                                                                                                                                                                                       |
| `--workspace-id`    | string | yes      | The unique identifier of the workspace the project is created in                                                                                                                                                           |
| `--description`     | string | no       | Project description                                                                                                                                                                                                        |
| `--project-creator` | string | no       | Email of the user to grant the project-creator membership to (API key actors only). A signed-in user does not see the new project until their session refreshes, which happens on their next request to the control plane. |

Also supports `--show-file-schema`, `--show-argument-schema <flag-name>`, and `--filename`. See [Schema introspection](#schema-introspection) for details.

## `get`

Get a project

Retrieve a single project by id. The project is identified by the `project_id` path
parameter alone; the `x-hh-project-id` header does not participate.

### Usage

```sh theme={null}
honeyhive projects get [options]
```

### Options

| Flag           | Type   | Required | Description                                      |
| -------------- | ------ | -------- | ------------------------------------------------ |
| `--project-id` | string | yes      | The unique identifier of the project to retrieve |

Also supports `--show-file-schema`, `--show-argument-schema <flag-name>`, and `--filename`. See [Schema introspection](#schema-introspection) for details.

## `update`

Update a project

Update a project's display name and/or description. The project is identified by the
`project_id` path parameter alone; the `x-hh-project-id` header does not participate.
Only fields included in the request body are modified.

### Usage

```sh theme={null}
honeyhive projects update [options]
```

### Options

| Flag            | Type   | Required | Description                                    |
| --------------- | ------ | -------- | ---------------------------------------------- |
| `--project-id`  | string | yes      | The unique identifier of the project to update |
| `--description` | string | no       | Project description                            |
| `--name`        | string | no       | Project display name                           |

Also supports `--show-file-schema`, `--show-argument-schema <flag-name>`, and `--filename`. See [Schema introspection](#schema-introspection) for details.

## `delete`

Delete a project

Delete a project. The project is soft-deleted (archived) and no longer appears in reads;
the response returns the archived project. The project is identified by the `project_id`
path parameter alone; the `x-hh-project-id` header does not participate.

### Usage

```sh theme={null}
honeyhive projects delete [options]
```

### Options

| Flag           | Type   | Required | Description                                    |
| -------------- | ------ | -------- | ---------------------------------------------- |
| `--project-id` | string | yes      | The unique identifier of the project to delete |

Also supports `--show-file-schema`, `--show-argument-schema <flag-name>`, and `--filename`. See [Schema introspection](#schema-introspection) for details.


## Related topics

- [Organization Hierarchy](/v2/workspace/organization-hierarchy.md)
- [Delete a project](/v2/control-plane-api-reference-autogen/projects/delete-a-project.md)
- [Projects Methods](/v2/control-plane-sdk-reference/typescript/ref/projects/index.md)
