---
title: memhtml list
description: Page through the corpus by type, workspace, tag, entity, facet, or PARA bucket.
---

## 1. Synopsis

Page through the corpus by type, workspace, tag, entity, facet, or PARA bucket.

```sh
memhtml list [options]
```

## 2. Arguments

This command takes no positional arguments.

## 3. Flags

| Flag | Type | Default | Values | Description |
| --- | --- | --- | --- | --- |
| `--type` | string | *no default* | `episodic`, `semantic`, `procedural`, `agent_insight`, `user_preference`, `error_pattern`, `verdict`, `precedent`, `arc`, `task` | One memory type. `arc` pages the authored and synthesized arcs alike. |
| `--workspace` | string | *no default* | *no fixed set* | One workspace. |
| `--tag` | string | *no default* | *no fixed set* | One tag. |
| `--entity` | string | *no default* | *no fixed set* | One `type:name` entity reference. |
| `--facet` | string, repeatable | *no default* | *no fixed set* | Restrict to memories carrying a `<dl>` facet, as name=value; the value may contain `=`, the name may not. Repeatable, and the composition is fixed: values under the SAME name broaden (`--facet` doc-type=runbook `--facet` doc-type=guide is either), DIFFERENT names narrow (`--facet` doc-type=runbook `--facet` tier=1 is both). This is the extension axis: memhtml's element and meta vocabularies are closed, so a consumer's own document kinds, states, and tiers live in `<dt>`/`<dd>` pairs and are queried here. The match is on the facet's TEXT with no case folding, so write the halves you mean to query. The stored form is the element's text content, which the parser collapses whitespace runs in and trims — so `<dd>runbook  rollback</dd>` is stored and queried single-spaced. There is no numeric comparison: a `<data value>` is indexed UNITLESS because the unit lives in the prose beside it, so the caller owns the unit and matches the text it wrote. |
| `--para` | string | *no default* | `projects`, `areas`, `resources`, `archive` | One PARA bucket. |
| `--limit` | integer | `50` | *no fixed set* | Rows per page. |
| `--cursor` | string | *no default* | *no fixed set* | The `next_cursor` from the previous page: the last path returned. |
| `--include-archived` | flag | `false` | *no fixed set* | Include archived memories. |

Every command also accepts the [global flags](/reference/global-flags/).

## 4. Response

On success the command writes one JSON envelope to stdout, and its `type` is `memory.list`.

On failure it writes the failure envelope, whose `code` comes from [error codes](/reference/error-codes/).

[The JSON envelope](/reference/envelope/) gives the fields both shapes carry. [Response types](/reference/response-types/) lists every value `type` takes across the binary.

## 5. Further reading

The guide blocks that name this command:

* [`authoring`](/reference/guide/authoring/)

## 6. Provenance

A loader generates this page from `apps/cli/src/commands.ts` while the site builds, so no file in the repository holds it: the `COMMANDS` array there is the one source of argument parsing, of `memhtml manifest`, and of `AGENTS.md`. Change the registry and this page changes with it.