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

# RECIPES

> Create and manage the reusable configs you launch runs from

| Command                                   | Description                                                          |
| ----------------------------------------- | -------------------------------------------------------------------- |
| [`create`](#create)                       | Create a recipe in a project from a JSON request body.               |
| [`delete`](#delete)                       | Delete a recipe by ID.                                               |
| [`download`](#download)                   | Download a recipe's config to a local JSON file for editing.         |
| [`generate-template`](#generate-template) | Print a ready-to-edit recipe request body for the given recipe type. |
| [`get`](#get)                             | Show a single recipe by ID.                                          |
| [`list`](#list)                           | List recipes in a project, optionally sorted.                        |
| [`update`](#update)                       | Rename a recipe, or replace its config from a JSON body.             |

***

## CREATE

Create a recipe in a project from a JSON request body.

```bash theme={null}
oumi-cli recipes create [OPTIONS]
```

**Options**

| Option              | Type   | Required | Description                                                                                                                                                                                                                                                             |
| ------------------- | ------ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--project`         | str    |          | Project to create the recipe in; falls back to OUMI\_PROJECT\_ID or the active profile.                                                                                                                                                                                 |
| `--type`            | choice | ✓        | Recipe kind to create, a guard that must agree with the body's recipeConfig.type discriminator. Templates from 'generate-template `--type` \<type>' already set this correctly; pass the same `--type` you generated with. One of: `training`, `evaluate`, `synthesis`. |
| `--input-json`      | str    |          | Request body as an inline JSON string. Pass exactly one of `--input-json` or `--input-json-file`.                                                                                                                                                                       |
| `--input-json-file` | path   |          | Path to a file holding the request body as JSON. Pass exactly one of `--input-json` or `--input-json-file`.                                                                                                                                                             |

***

## DELETE

Delete a recipe by ID.

```bash theme={null}
oumi-cli recipes delete [OPTIONS] {recipe_id}
```

**Arguments**

| Argument    | Type | Required | Description                            |
| ----------- | ---- | -------- | -------------------------------------- |
| `RECIPE_ID` | int  | ✓        | ID of the recipe (see `recipes list`). |

**Options**

| Option      | Type | Required | Description                                                                               |
| ----------- | ---- | -------- | ----------------------------------------------------------------------------------------- |
| `--project` | str  |          | Project to scope the operation to; falls back to OUMI\_PROJECT\_ID or the active profile. |
| `--force`   | flag |          | Delete without confirmation prompt.                                                       |
| `--yes`     | flag |          | Delete without confirmation prompt (alias for `--force`).                                 |

***

## DOWNLOAD

Download a recipe's config to a local JSON file for editing.

```bash theme={null}
oumi-cli recipes download [OPTIONS] {recipe_id}
```

**Arguments**

| Argument    | Type | Required | Description                                        |
| ----------- | ---- | -------- | -------------------------------------------------- |
| `RECIPE_ID` | int  | ✓        | ID of the recipe to download (see `recipes list`). |

**Options**

| Option      | Type | Required | Description                                                                               |
| ----------- | ---- | -------- | ----------------------------------------------------------------------------------------- |
| `--project` | str  |          | Project to scope the operation to; falls back to OUMI\_PROJECT\_ID or the active profile. |
| `--out`     | path |          | Destination file or directory. Defaults to ./recipe-\<id>.json in the current directory.  |

***

## GENERATE-TEMPLATE

Print a ready-to-edit recipe request body for the given recipe type.

```bash theme={null}
oumi-cli recipes generate-template [OPTIONS]
```

**Options**

| Option   | Type   | Required | Description                                                                                                                |
| -------- | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------- |
| `--type` | choice | ✓        | Recipe kind to generate a template for; sets recipeConfig.type in the output. One of: `training`, `evaluate`, `synthesis`. |

***

## GET

Show a single recipe by ID.

```bash theme={null}
oumi-cli recipes get [OPTIONS] {recipe_id}
```

**Arguments**

| Argument    | Type | Required | Description                            |
| ----------- | ---- | -------- | -------------------------------------- |
| `RECIPE_ID` | int  | ✓        | ID of the recipe (see `recipes list`). |

**Options**

| Option      | Type | Required | Description                                                                               |
| ----------- | ---- | -------- | ----------------------------------------------------------------------------------------- |
| `--project` | str  |          | Project to scope the operation to; falls back to OUMI\_PROJECT\_ID or the active profile. |

***

## LIST

List recipes in a project, optionally sorted.

```bash theme={null}
oumi-cli recipes list [OPTIONS]
```

**Options**

| Option             | Type      | Required | Description                                                                                                               |
| ------------------ | --------- | -------- | ------------------------------------------------------------------------------------------------------------------------- |
| `--project`        | str       |          | Project to scope the operation to; falls back to OUMI\_PROJECT\_ID or the active profile.                                 |
| `--limit`          | int range |          | Return at most N recipes (default 100). The CLI fetches and loops over pages internally; you never pass a page token.     |
| `--all`            | flag      |          | Return every recipe, looping until the cursor is exhausted (bounded by `--max-items`). Mutually exclusive with `--limit`. |
| `--max-items`      | int range |          | Hard safety cap for `--all` (default 10000).                                                                              |
| `--sort-by`        | choice    |          | Field to sort by. One of: `created_at`, `updated_at`.                                                                     |
| `--sort-direction` | choice    |          | Sort order (asc is oldest-first).                                                                                         |

***

## UPDATE

Rename a recipe, or replace its config from a JSON body.

```bash theme={null}
oumi-cli recipes update [OPTIONS] {recipe_id}
```

**Arguments**

| Argument    | Type | Required | Description                            |
| ----------- | ---- | -------- | -------------------------------------- |
| `RECIPE_ID` | int  | ✓        | ID of the recipe (see `recipes list`). |

**Options**

| Option              | Type | Required | Description                                                                                                                    |
| ------------------- | ---- | -------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `--project`         | str  |          | Project to scope the operation to; falls back to OUMI\_PROJECT\_ID or the active profile.                                      |
| `--display-name`    | str  |          | New display name for the recipe. Renames only. Does not touch recipeConfig. Mutually exclusive with `--input-json`\*.          |
| `--input-json`      | str  |          | Full replacement request body as an inline JSON string; creates a new recipe version. Exclusive of `--display-name`.           |
| `--input-json-file` | path |          | Path to a file holding the full replacement request body as JSON; creates a new recipe version. Exclusive of `--display-name`. |

***
