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

> Create, fill and inspect a governed directory a job mounts read-only.

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
tp volume create acme/support-transcripts -d "Tier-2 tickets, redacted"
tp volume push ./transcripts --name acme/support-transcripts
tp volume ls
```

A Volume has **no versions**: its current contents are its contents. The walkthrough is
[mounting a governed folder](https://docs.tuneplane.ai/en/guides/volumes.md).

## Worked examples

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
tp volume create acme/support-transcripts -d "Tier-2 tickets, redacted"
tp volume create acme/refs --public                       # any signed-in user may reference it

tp volume push ./transcripts --name acme/support-transcripts
tp volume push ./transcripts --name support-transcripts   # a bare name lands in your namespace
tp volume push ./big-corpus --name acme/refs --concurrency 16

tp volume ls                                              # what you can reference

tp volume rm acme/support-transcripts -p old/2024 -p drafts   # delete files inside it
tp volume rm acme/support-transcripts --yes                   # delete the whole volume
```

Then reference it from a job:

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
tp submit my-sft --profile h200:8 --volume acme/support-transcripts
```

## Notes the flag table cannot carry

* `tp volume push` uploads everything under the directory, minus OS and Office noise. Raise
  `--concurrency` on a fast link; the right number depends on the link.
* A volume reference never carries `@version`. A version suffix is refused when the spec is
  parsed.
* `tp volume rm` without `--path` deletes the volume itself, not just its files.
* Downloading a volume's files is off until its owner turns it on, and there is no CLI command
  that fetches them.

## Check it worked

`tp volume ls` lists the volume with its file count. Inside a running job the files are at
`$VOLUMES_DIR/<leaf name>`, read-only.

## `tp volume`

Volumes a job can mount

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

| Command | Description |
| - | - |
| `tp volume create` | Create an empty volume |
| `tp volume imports` | Copies into a volume, and how they are going |
| `tp volume ls` | List the volumes you can reference |
| `tp volume push` | Add files to a volume, from here or from storage the platform can reach |
| `tp volume rm` | Delete a volume, or files inside it |

### `tp volume create`

Create an empty volume

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
tp volume create <NAME> [options]
```

| Argument | Description |
| - | - |
| `NAME` | \<owner>/\<name>, or a bare name in your own namespace (**required**) |

| Option | Description |
| - | - |
| `--public` | Let every signed-in user reference it |
| `--description`, `-d` | One line shown in the listing |

### `tp volume imports`

Copies into a volume, and how they are going

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
tp volume imports <NAME>
```

| Argument | Description |
| - | - |
| `NAME` | \<owner>/\<name>, or a bare name in your own namespace (**required**) |

No options beyond `--help`.

### `tp volume ls`

List the volumes you can reference

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
tp volume ls
```

No options beyond `--help`.

### `tp volume push`

Add files to a volume, from here or from storage the platform can reach

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
tp volume push [DIRECTORY] [options]
```

| Argument | Description |
| - | - |
| `DIRECTORY` | Everything under it is uploaded, minus OS and Office noise |

| Option | Description |
| - | - |
| `--name`, `-n` | \<owner>/\<name>, or a bare name in your own namespace (**required**) |
| `--from` | Copy from storage the platform can already reach, instead of from this machine. The bytes never cross this link and the copy survives closing the terminal |
| `--concurrency` `<int>` | Uploads in flight. Left alone, it is chosen from the size of what you are sending; the right number depends on the link, which nothing here can see (default `0`) |

### `tp volume rm`

Delete a volume, or files inside it

```bash theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
tp volume rm <NAME> [options]
```

| Argument | Description |
| - | - |
| `NAME` | \<owner>/\<name> (**required**) |

| Option | Description |
| - | - |
| `--path`, `-p` | Delete these files or directories instead of the whole volume; repeatable (repeatable) |
| `--yes`, `-y` | Skip the confirmation |


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