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

# murmur history ls|show|revert

> List a catalog resource's versions, print one version's content, or revert the resource to a prior version.

Every write to a catalog resource creates a new version. These subcommands read that version history and restore an earlier version. Versions are identified by their generation number.

This is separate from agent run history, which is [`murmur history`](/cli/history) with flags only.

## Synopsis

```bash theme={null}
murmur history ls <kind> <name>
murmur history show <kind> <name> <generation>
murmur history revert <kind> <name> <generation> [--manager NAME] [--force-ownership]
```

`list` is an alias for `ls`. Run [`murmur describe`](/cli/describe) to list the kinds.

## Arguments

| Name | Type | Required | Description |
| - | - | - | - |
| `kind` | string | yes | The catalog kind, for example `recipe` or `workspace`. |
| `name` | string | yes | The resource name. |
| `generation` | int | `show`, `revert` | The version to print or restore, from the `GENERATION` column of `murmur history ls`. |

### `revert` flags

| Name | Type | Default | Description |
| - | - | - | - |
| `--manager` | string | none | Declare the system responsible for the resource, recorded as its `managed_by` marker. Later writes that do not declare the same manager are refused unless forced. Leave unset for a manual edit. |
| `--force-ownership` | bool | `false` | Revert even when another system manages the resource. Without `--manager`, the revert releases the resource (clears `managed_by`). With `--manager`, that manager becomes the new one. |

## `murmur history ls`

Prints one line per version, newest first, then a count on stderr.

```bash theme={null}
murmur history ls recipe default
```

```
GENERATION        TIMESTAMP             ACTION                   AUTHOR  ACCOUNT    BYTES
1759012345678901  2026-09-27T16:12:25Z  revert←1758923456789012  alice   developer  412
1758998765432109  2026-09-27T12:06:05Z  set                      bob     developer  431
1758923456789012  2026-09-26T15:10:56Z  set                      alice   developer  412
3 version(s)
```

`ACTION` is `set`, `delete`, or `revert`. A revert shows the generation it restored after `←`. Empty values print as `-`.

## `murmur history show`

Prints one version's content as YAML, in the same form as [`murmur get`](/cli/get).

```bash theme={null}
murmur history show recipe default 1758923456789012
```

Kinds whose content is suppressed on read, such as `secret`, have no readable content. For those the command prints `<kind> "<name>" version <generation> has no readable content` to stderr.

## `murmur history revert`

Writes the content of a prior version as a new version. The older versions stay in the history.

```bash theme={null}
murmur history revert recipe default 1758923456789012
```

```
Reverted recipe "default" to version 1758923456789012
```

A revert is a manual edit and declares no manager. If the resource is managed by another system, such as Terraform or your own automation, the revert is refused, because that system may overwrite the change on its next run. `--force-ownership` reverts anyway and releases the resource. Releasing does not remove the resource from whatever manages it: if it is still in Terraform configuration, the next `terraform apply` reverts the value and reclaims the marker.

## Errors

| Code | Meaning | What to do |
| - | - | - |
| none | `parse generation "<value>": ...` | Pass the numeric generation from `murmur history ls`. |
| none | `unknown history subcommand "<name>"` | Use `ls`, `show`, or `revert`. |
| none | `revert <kind>: <kind> "<name>" is managed by "<manager>", which may overwrite this change on its next run; re-run with --force-ownership to write anyway and release the resource, clearing its managed_by marker` | Change the resource through its manager, or re-run with `--force-ownership`. |
| `NOT_FOUND` | The resource or generation does not exist. | Check the name with [`murmur get`](/cli/get) and the generation with `murmur history ls`. |
| `PERMISSION_DENIED` | You cannot read the resource, or cannot write it (for `revert`). | Ask for a role that grants access to the kind. See [authorization](/security/authorization). |

## Related

* [`murmur get`](/cli/get): read a catalog resource
* [`murmur set`](/cli/set): replace a catalog resource
* [`murmur describe`](/cli/describe): list catalog kinds
* [`murmur history`](/cli/history): agent run history
