# div scores

> List the org's scores, or print the feed of every change to them.

## Synopsis

```text
div scores [flags]
div scores --changes [--after <seq> | --resync] [--follow] [--json]
```

Lists the org's scores, or with `--changes`, the feed of every change to them, oldest first. Needs the `traces:read` scope. Keys from [`div login`](https://docs.divergentlabs.xyz/compute/cli/login.md) have it.

## Flags

| Flag | Description | Default |
| --- | --- | --- |
| `--name <name>` | Only scores of this name. | all |
| `--trace <trace>` | Only scores on this trace. | all |
| `--limit <n>` | Maximum number of scores. Maximum 200. | `100` |
| `--after <cursor>` | The page after this one, as the last line of the previous page says. With `--changes`, the `seq` to read after. | `0` with `--changes` |
| `--changes` | Print changes instead of scores. | |
| `--resync` | With `--changes`: print every score as it is now, then every change since. | |
| `--follow` | With `--changes`: keep printing changes as they happen, until Ctrl-C. | |
| `--json` | Print the page as JSON, or with `--changes`, one change per line. | |
| `--token <key>` | API key to use. | |
| `--api-url <url>` | API URL to use. | |

## Output

Without `--changes`, one score per line on stdout: trace id, span id (`—` for the whole trace), name, value, who gave it and when, in UTC.

```text
4bf92f3577b34da6a3ce929d0e0e4736  —                 helpfulness  0.9    trainer  2026-10-12 13:52:13
4bf92f3577b34da6a3ce929d0e0e4736  00f067aa0ba902b7  correct      false  Alice    2026-10-12 13:55:02
```

With `--changes`, one change per line: seq, op, trace id, and the score's name, value and author, or the deleted score's id. `--resync` prints the current scores first, with `—` for the seq. When the command stops, stderr gets the command to resume from where it stopped:

```text
12  score_upserted  4bf92f3577b34da6a3ce929d0e0e4736  helpfulness = 0.9  trainer
13  score_deleted   4bf92f3577b34da6a3ce929d0e0e4736  9b2c6f1e-4c55-4e0a-8a7e-2f0d1c3b5a61
14  trace_deleted   a3ce929d0e0e47364bf92f3577b34da6
Resume with: div scores --changes --after 14
```

With `--changes --json`, each line is one change: `{"seq", "op", "trace_id", "score_id", "score", "at"}`. See [Keep a copy of every score](https://docs.divergentlabs.xyz/tracing/guides/scores.md#keep-a-copy-of-every-score) for what each `op` means.

## Exit codes

| Code | Meaning |
| --- | --- |
| `0` | Success, including when no scores match. |
| `1` | The API rejected the request, such as `cursor_expired` for a `seq` older than 30 days. |
| `2` | Invalid flags, such as `--follow` without `--changes`. |

## Examples

```bash
div scores --trace 4bf92f3577b34da6a3ce929d0e0e4736
div scores --name helpfulness --json
div scores --changes --resync --follow --json
div scores --changes --after 1204
```
