> ## 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 train checkpoint

> Inspect training job checkpoints

## list

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

List the checkpoints a training job has synced, newest first.

Checkpoints only appear for jobs that enabled checkpointing.

### Options

<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="--job-id" type="TEXT" required>
  ID of the training job.
</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 job's checkpoints

```sh theme={"system"}
baseten train checkpoint list --job-id p7qr9qv
```

List a job's checkpoints oldest first

```sh theme={"system"}
baseten train checkpoint list --job-id p7qr9qv --direction asc
```

### Filter output with `--jq`

Print just the checkpoint IDs

```sh theme={"system"}
baseten train checkpoint list --job-id p7qr9qv --jq '.checkpoints[].checkpoint_id'
```

### Output

**Text mode (`--output text`):** Table with columns: ID, TYPE, BASE MODEL, SIZE, SYNC, CREATED. When the job has no checkpoints, prints "No checkpoints found." to stderr.

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

## files

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

List presigned download URLs for the files of a training job's checkpoints.

The URLs are short-lived.

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

### Options

<ParamField body="--job-id" type="TEXT" required>
  ID of the training job.
</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 every checkpoint file of a job

```sh theme={"system"}
baseten train checkpoint files --job-id p7qr9qv
```

Save the URLs to a file for a download script

```sh theme={"system"}
baseten train checkpoint files --job-id p7qr9qv --output json > checkpoint-urls.json
```

### Filter output with `--jq`

Print just the download URLs

```sh theme={"system"}
baseten train checkpoint files --job-id p7qr9qv --output jsonl --jq '.url'
```

### Output

**Text mode (`--output text`):** Table with columns: NODE, NAME, SIZE, MODIFIED, URL. When there are no files, prints "No checkpoint files found." to stderr.

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

## deploy

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

Deploy a training job's LoRA checkpoints as a model served by vLLM.

Without --config, the checkpoints and the model that serves them are chosen interactively. Pass --config for a repeatable deploy: it is a Python file defining a DeployCheckpointsConfig, so it is executed rather than read.

The generated model config is written to disk either way, so a deploy can be re-run or edited by hand afterward.

### Options

<ParamField body="--config" type="TEXT">
  Python file defining a DeployCheckpointsConfig: which checkpoints deploy and the model that serves them.
</ParamField>

<ParamField body="--config-out-dir" type="TEXT">
  Directory the generated model config is written to. Defaults to a directory under ./truss\_configs.
</ParamField>

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

<ParamField body="--job-id" type="TEXT">
  Training job whose checkpoints are deployed. Required unless --config names them.
</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="--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 a job's checkpoints, choosing them interactively

```sh theme={"system"}
baseten train checkpoint deploy --job-id p7qr9qv
```

Deploy the checkpoints a config file names

```sh theme={"system"}
baseten train checkpoint deploy --config ./deploy_checkpoints.py
```

Generate the model config without deploying

```sh theme={"system"}
baseten train checkpoint deploy --job-id p7qr9qv --dry-run --config-out-dir ./generated
```

### Output

**Text mode (`--output text`):** The new model and deployment IDs with links to the deployment's logs, the path the model config was written to, and an example request naming the deployed checkpoints. With --dry-run, only the config path.

**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.
