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

# tp recipe

> Inspect and move an experiment's method lock.

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
tp recipe status my-grpo     # what has drifted
tp recipe upgrade my-grpo    # move the lock to the current catalogue
```

`recipe.lock.json` pins the method version, its digest and the framework build. Submission
refuses a lock that disagrees with what the server published. How the lock works is in
[choosing a method](https://docs.tuneplane.ai/en/guides/methods.md).

## Worked examples

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
tp recipe status my-grpo --server            # also handshake against the console's catalogue
tp recipe status --all                       # scan experiments/ and smoke/

tp recipe upgrade my-grpo --dry-run          # show the diff, write nothing
tp recipe upgrade my-grpo --framework-version 0.9.0
tp recipe upgrade --all                      # validate everything, then write in one go

tp recipe sync                               # pull published methods to this machine
tp recipe sync --prune                       # and drop ones the platform no longer publishes
tp recipe ls --source user                   # only methods published as packs
```

`tp recipe status` prints a field-by-field diff: recipe version, digest, framework version,
`runtime_id`, and the SDK range the lock requires. A diff does not mean something is broken. It
means behaviour may change on upgrade, which is why the upgrade is explicit.

`--accept-runtime-change` is for the case where the framework version your lock names is gone
from the catalogue: without it, the upgrade refuses rather than silently moving you to the
current default.

## Check it worked

`tp recipe status my-grpo` prints no diff, and `git diff` shows the rewritten
`recipe.lock.json`. Commit it, or the next submission is refused for a dirty tree.

In a hurry, `tp submit my-grpo --profile h200:8 --upgrade-recipe` does both in one step.

## `tp recipe`

Manage recipe locks

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
tp recipe <subcommand>
```

| Command | Description |
| - | - |
| `tp recipe ls` | List every available method |
| `tp recipe status` | Show an experiment's lock drift |
| `tp recipe sync` | Sync published methods to this machine |
| `tp recipe upgrade` | Upgrade an experiment lock |

### `tp recipe ls`

List every available method

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
tp recipe ls [options]
```

| Option | Description |
| - | - |
| `--source` | Only one source: builtin \| user |

### `tp recipe status`

Show an experiment's lock drift

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
tp recipe status [EXP] [options]
```

| Argument | Description |
| - | - |
| `EXP` | Experiment name or path; omitting it requires --all |

| Option | Description |
| - | - |
| `--all` | Scan experiments/ and smoke/ |
| `--server` | Also cross-check against the Console catalog |

### `tp recipe sync`

Sync published methods to this machine

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
tp recipe sync [options]
```

| Option | Description |
| - | - |
| `--server` | Console address (defaults to the one you logged into) |
| `--prune` | Whether to drop methods that exist locally but not on the platform (or were unpublished) |

### `tp recipe upgrade`

Upgrade an experiment lock

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
tp recipe upgrade [EXP] [options]
```

| Argument | Description |
| - | - |
| `EXP` | Experiment name or path; mutually exclusive with --all |

| Option | Description |
| - | - |
| `--all` | Validate everything first, then write in one go |
| `--dry-run` | Only show the diff, write nothing |
| `--framework-version` | Also move to this exact framework version |
| `--accept-runtime-change` | When the locked framework version is gone from the catalog, fall back to the current default |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.