> ## 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 workstation

> Manage SSH workstations on training infrastructure

## create

```sh theme={"system"}
baseten train workstation create [OPTIONS]
```

Create an SSH workstation: a training job that holds GPUs for an interactive session instead of running a training script.

Pass --node-count for a multi-node workstation, where each node has eight GPUs and SLURM is set up across them. Connect once the job is running.

### Options

<ParamField body="--accelerator" type="TEXT" default="H100">
  GPU accelerator type.
</ParamField>

<ParamField body="--checkpoint-from-job" type="TEXT">
  Training job whose latest checkpoint the workstation starts from.
</ParamField>

<ParamField body="--checkpoint-path" type="TEXT">
  Path inside the container where checkpoints are written.
</ParamField>

<ParamField body="--checkpoint-volume-size" type="INTEGER">
  Size of the checkpoint volume in GiB.
</ParamField>

<ParamField body="--enable-checkpointing" type="BOOL">
  Attach checkpoint storage to the workstation.
</ParamField>

<ParamField body="--gpu-count" type="INTEGER">
  Number of GPUs on a single node, 1 to 8. Mutually exclusive with --node-count.
</ParamField>

<ParamField body="--image" type="TEXT">
  Docker base image the workstation runs.
</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="--node-count" type="INTEGER">
  Number of eight-GPU nodes, 1 to 16. Mutually exclusive with --gpu-count.
</ParamField>

<ParamField body="--orchestrator" type="TEXT" default="slurm">
  Multi-node orchestrator set up across the nodes.

  One of: `slurm`
</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="--project" type="TEXT">
  Training project that owns the workstation. Defaults to 'workstation-`accelerator`'.
</ParamField>

<ParamField body="--team" type="TEXT">
  Team name or ID that owns the training project.
</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

Create a single-GPU workstation

```sh theme={"system"}
baseten train workstation create
```

Create a four-node workstation with checkpoint storage

```sh theme={"system"}
baseten train workstation create --node-count 4 --enable-checkpointing --checkpoint-volume-size 512
```

### Output

**Text mode (`--output text`):** A confirmation that the workstation was created, with the ssh host of each node and the commands to view its logs or stop it.

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