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

# shelf

> Manage shelves in the current repo

Shelves let you temporarily save workspace changes and restore them later, similar to Git's stash.

Shelves belong to a single repository but are not tied to any branch, you can create a shelf on one branch and apply it on another.

Shelf names must be unique within the repository for each user and cannot exceed 60 characters.

For all commands below, the `<shelf>` parameter can be either the shelf name or ID.

## list

Lists all shelves in the repository.

```bash theme={null}
dv shelf
```

## create

Creates a shelf from your current workspace changes.

```bash theme={null}
dv shelf create <name> [paths...] [--no-reset]
```

`<name>` is the name for your shelf.

`[paths...]` is an optional list of specific files to shelve. If omitted, all changes are shelved.

`[--no-reset]` keeps the workspace changes after creating the shelf. By default, changes are reset.

## show

Shows the list of files contained in a shelf.

```bash theme={null}
dv shelf show <shelf>
```

## apply

Applies a shelf to your current workspace.

```bash theme={null}
dv shelf apply <shelf> [--keep] [-f]
```

`[--keep]` preserves the shelf after applying. By default, the shelf is deleted.

`[-f]` skips the confirmation prompt.

If the shelved changes conflict with your current workspace, you'll need to resolve the conflicts before continuing.

## rename

Renames an existing shelf.

```bash theme={null}
dv shelf rename <shelf> <new_name>
```

## delete

Permanently deletes a shelf.

```bash theme={null}
dv shelf delete <shelf> [-f]
```

Use `-f` to skip the confirmation prompt. This action cannot be undone.

## Example: carry changes across machines

Because shelves are stored in the cloud, you can use them to move uncommitted work between machines on the same repo:

```bash theme={null}
# On Machine A
dv shelf create my-wip

# On Machine B (same repo, any workspace)
dv shelf apply my-wip
```

For more information about shelving in Diversion, visit the [Shelves](../basic/shelves) page.
