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

# baseten loops checkpoint

> Work with Loops checkpoints

## list

```sh theme={"system"}
baseten loops checkpoint list [OPTIONS]
```

List checkpoints for a Loops run, newest first.

Identify the run with --run-id, or pass --base-model to list checkpoints across all of your runs of that base model.

### Options

<ParamField body="--base-model" type="TEXT">
  List checkpoints across your runs of this base model.

  Mutually exclusive with other flags in group `loops-checkpoint-scope`.
</ParamField>

<ParamField body="--direction" type="TEXT" default="desc">
  Sort order by creation time: 'desc' (newest first) or 'asc' (oldest first).

  One of: `asc`, `desc`
</ParamField>

<ParamField body="-q, --jq" type="TEXT">
  Filter JSON output with a jq expression; implies --output json (or jsonl for streamed commands)
</ParamField>

<ParamField body="-o, --output" type="TEXT" default="text">
  Output format

  One of: `text`, `json`, `jsonl`, `none`
</ParamField>

<ParamField body="--profile" type="TEXT">
  Use a specific stored profile for this command, overriding BASETEN\_PROFILE and the current profile
</ParamField>

<ParamField body="--run-id" type="TEXT">
  List checkpoints saved by this run.

  Mutually exclusive with other flags in group `loops-checkpoint-scope`.
</ParamField>

<ParamField body="-v, --verbose" type="BOOL">
  Enable verbose logging
</ParamField>

### Examples

List a run's checkpoints

```sh theme={"system"}
baseten loops checkpoint list --run-id <run-id>
```

List every checkpoint for a base model, oldest first

```sh theme={"system"}
baseten loops checkpoint list --base-model Qwen/Qwen3-8B --direction asc
```

### Filter output with `--jq`

Print the deployable checkpoint names

```sh theme={"system"}
baseten loops checkpoint list --run-id <run-id> --jq '.checkpoints[] | select(.target != "trainer") | .checkpoint_id'
```

### Output

**Text mode (`--output text`):** Table with columns: ID, NAME, RUN, TARGET, TYPE, SIZE, CREATED. When no checkpoints match, prints "No Loops checkpoints found." to stderr.

**JSON mode (`--output json`):** payload type `managementapi.ListLoopsCheckpointsResponse`.

## files

```sh theme={"system"}
baseten loops checkpoint files [OPTIONS]
```

List presigned download URLs for the files under a Loops checkpoint.

The URLs are short-lived. Use 'baseten loops checkpoint list' to find checkpoint IDs.

For machine-readable streaming, prefer --output jsonl over --output json.

### Options

<ParamField body="--checkpoint-id" type="TEXT" required>
  ID of the Loops checkpoint.
</ParamField>

<ParamField body="-q, --jq" type="TEXT">
  Filter JSON output with a jq expression; implies --output json (or jsonl for streamed commands)
</ParamField>

<ParamField body="-o, --output" type="TEXT" default="text">
  Output format

  One of: `text`, `json`, `jsonl`, `none`
</ParamField>

<ParamField body="--profile" type="TEXT">
  Use a specific stored profile for this command, overriding BASETEN\_PROFILE and the current profile
</ParamField>

<ParamField body="-v, --verbose" type="BOOL">
  Enable verbose logging
</ParamField>

### Examples

List a checkpoint's files

```sh theme={"system"}
baseten loops checkpoint files --checkpoint-id <checkpoint-id>
```

### Filter output with `--jq`

Print just the download URLs

```sh theme={"system"}
baseten loops checkpoint files --checkpoint-id <checkpoint-id> --output jsonl --jq '.url'
```

### Output

**Text mode (`--output text`):** Table with columns: NAME, SIZE, URL.

**JSON mode (`--output json`):** payload type `managementapi.CheckpointFile`.

## deploy

```sh theme={"system"}
baseten loops checkpoint deploy [OPTIONS]
```

Deploy checkpoints saved by a Loops run as a model served by vLLM.

Name the checkpoints with --checkpoint (which needs --run-id, since names are scoped to a run) or with --checkpoint-id, or pass none of them to choose interactively. Requests then select a checkpoint by name through the model parameter, so one deployment serves them all.

Pass --config for a repeatable deploy: it is a Python file defining a DeployCheckpointsConfig, so it is executed rather than read.

### Options

<ParamField body="--checkpoint" type="TEXT (repeatable)">
  Name of a checkpoint to deploy, for example 'step-50'. Requires --run-id, since names are scoped to a run. Cannot be combined with --checkpoint-id or --config. Repeatable.
</ParamField>

<ParamField body="--checkpoint-id" type="TEXT (repeatable)">
  ID of a checkpoint to deploy. Cannot be combined with --run-id, --checkpoint, or --config. Repeatable.
</ParamField>

<ParamField body="--config" type="TEXT">
  Python file defining a DeployCheckpointsConfig: which checkpoints deploy and the model that serves them. Cannot be combined with --checkpoint or --checkpoint-id.
</ParamField>

<ParamField body="--dry-run" type="BOOL">
  Print the generated model config without deploying anything.
</ParamField>

<ParamField body="-q, --jq" type="TEXT">
  Filter JSON output with a jq expression; implies --output json (or jsonl for streamed commands)
</ParamField>

<ParamField body="-o, --output" type="TEXT" default="text">
  Output format

  One of: `text`, `json`, `jsonl`, `none`
</ParamField>

<ParamField body="--profile" type="TEXT">
  Use a specific stored profile for this command, overriding BASETEN\_PROFILE and the current profile
</ParamField>

<ParamField body="--run-id" type="TEXT">
  Loops run whose checkpoints are deployed. Cannot be combined with --checkpoint-id.
</ParamField>

<ParamField body="--truss-executable" type="TEXT">
  Run this truss executable instead of fetching one with uv, e.g. a virtualenv's bin/truss. A value with no path separator is looked up on PATH, so '--truss-executable truss' runs the truss you installed. Defaults to BASETEN\_TRUSS\_EXECUTABLE.
</ParamField>

<ParamField body="--truss-no-forward-auth" type="BOOL">
  Do not forward this CLI's credentials to truss, leaving it to resolve a remote from your trussrc. Old truss versions ignore forwarded credentials and use the trussrc regardless.
</ParamField>

<ParamField body="--truss-version" type="TEXT">
  Version of truss to fetch and run with 'uv tool run', e.g. 0.18.26. Defaults to BASETEN\_TRUSS\_VERSION, or the latest release. Mutually exclusive with --truss-executable.
</ParamField>

<ParamField body="-v, --verbose" type="BOOL">
  Enable verbose logging
</ParamField>

### Examples

Deploy two checkpoints of a run by name

```sh theme={"system"}
baseten loops checkpoint deploy --run-id <run-id> --checkpoint step-50 --checkpoint step-100
```

Deploy a checkpoint by ID, choosing the rest interactively

```sh theme={"system"}
baseten loops checkpoint deploy --checkpoint-id <checkpoint-id>
```

### Output

**Text mode (`--output text`):** The new model and deployment IDs with links to the deployment's logs, and how to name a checkpoint in a request. With --dry-run, the generated model config instead.

**JSON mode (`--output json`):** payload type `cmd.TrussDelegatedResult`.

Under --output json the text output goes to stderr and stdout is an empty object: this command reports nothing structured yet.
