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

> List every agent run the tenant has executed, newest first, filtered by account, slug, phase, start time, or purge.

Lists [agent](/concepts/agents) runs, newest first, one row per execution. It covers every run the tenant has executed, including agents that are no longer running and runs that [`murmur delete`](/cli/delete) purged.

`murmur history` takes flags only. The subcommands `murmur history ls|show|revert` are a separate feature: catalog resource version history. See [`murmur history ls|show|revert`](/cli/history-catalog).

## Synopsis

```bash theme={null}
murmur history [flags]
```

## Arguments

| Name | Type | Required | Description |
| - | - | - | - |
| `-a`, `--account` | string | no | Account scope. Empty (the default) lists your own runs. `*` lists every account. `joe` lists one account under your own provider. `service_profile/deploy` lists one account under an explicit provider. |
| `--slug` | string | no | Case-insensitive substring of the agent slug. `%` and `_` match literally. |
| `--phase` | string | no | Only runs in this phase. Accepts `failed`, `task-complete`, or `PHASE_FAILED` spellings. Cannot be combined with `--purge`. |
| `--since` | string | no | Only runs started at or after this time: a date (`2026-01-01`, UTC midnight), an RFC3339 instant, or a Go duration before now (`720h`). Go durations have no `d` unit, so 90 days is `2160h`. |
| `--until` | string | no | Only runs started before this time: a date or an RFC3339 instant. Durations are not accepted. Must be after `--since`. |
| `--purge` | string | no | Only the runs one purge covers, by the purge ID [`murmur delete`](/cli/delete) printed. Cannot be combined with `--phase`. |
| `-n` | int | no | Page size. Server default 50, maximum 200. |
| `--page` | string | no | Next-page token printed by a previous call. Pass the same filters with it. |
| `--json` | bool | no | Print the `ListAgentHistoryResponse` as JSON. Default: `false`. |
| `--workspace` | string | no | Workspace name. Overrides the value from `murmur.yaml`. |

Listing requires `agent.list` on the accounts in scope.

## Output

A table with one row per run:

| Column | Meaning |
| - | - |
| `SLUG` | The agent's slug path. |
| `RUN` | `initial` for an agent's first run, `force-new` for a run that replaced a previous one. Blank when unknown. |
| `PHASE` | The run's phase, for example `PHASE_COMPLETED`. `purged` for a purged run. |
| `STARTED` | Start date, UTC. |
| `ENDED` | End date, UTC. `—` while the run is live, or when the run was purged. |
| `COST` | Recorded cost, for example `$0.85`. `—` when no cost was recorded, or when the run was purged. |

A purged run carries a second line under it, `purged by <account> on <date>`, with `(purging…)` appended while the purge is still running.

When more results exist, the table ends with the flag to fetch the next page:

```
next page: -page <token>
```

With `--purge`, the command first prints the purge's status: `purge <id>: purging…` while it runs, or `purge <id>: completed <time> — <N> agents, <N> runs, <N> VMs purged` once it finishes.

If no runs match, the command prints `no runs match` to stderr.

## Examples

### Your recent runs

```bash theme={null}
murmur history --since 168h
```

```
SLUG       RUN        PHASE                          STARTED     ENDED       COST
fix-auth   initial    PHASE_COMPLETED                2026-09-27  2026-09-27  $0.85
bump-deps  force-new  PHASE_FAILED                   2026-09-25  2026-09-25  $0.12
old-spike  initial    purged                         2026-09-22  —           —
                      purged by alice on 2026-09-26
```

### Failed runs across every account

```bash theme={null}
murmur history -a '*' --phase failed
```

### Next page

```bash theme={null}
murmur history -a '*' --phase failed --page CgsI2p...
```

### Track a purge

```bash theme={null}
murmur history --purge 3f9c2a7e-5b1d-4e8a-9c6f-2d7b1a0e4c55 -a alice
```

```
purge 3f9c2a7e-5b1d-4e8a-9c6f-2d7b1a0e4c55: completed 2026-09-26 18:04:11 — 2 agents, 3 runs, 1 VMs purged
```

## Errors

| Code | Meaning | What to do |
| - | - | - |
| none | `murmur history takes flags only: <args> was not parsed — filter by slug with: murmur history -slug <arg>` | Filter by slug with `--slug`. For catalog version history, use [`murmur history ls`](/cli/history-catalog). |
| none | `-purge and -phase cannot be combined: a purged run reports no phase, so no run matches both` | Drop one of the two flags. |
| none | `-until <t> is not after -since <t> — the window is empty` | Widen the window. |
| none | `unknown phase "<value>"` | Use a phase name from [`murmur status`](/cli/status#phases). |
| none | `-since: time "<value>" is not a date (2026-01-01) or an RFC3339 instant (2026-01-01T09:00:00Z), ...` | Use a date, an RFC3339 instant, or an hour-based duration such as `720h`. |
| `PERMISSION_DENIED` | You lack `agent.list` on an account in scope. | Narrow `-a` to accounts you can list. |
| `UNAUTHENTICATED` | Identity token is missing or expired. | Run [`murmur login`](/cli/login). |

## Related

* [`murmur delete`](/cli/delete): purge a stopped agent and print its purge ID
* [`murmur ls`](/cli/ls): list running agents
* [`murmur status`](/cli/status): check one agent's status
* [`murmur history ls|show|revert`](/cli/history-catalog): catalog resource version history
