1. Synopsis
Print the path a write with these fields would land at over the version at HEAD, and the collision ordinal it took. Reads no session: inside one, session put --dry-run answers over the session’s base and its puts. Writes nothing.
memhtml path --title <string> --type <string> [options]2. Arguments
This command takes no positional arguments.
3. Flags
| Flag | Type | Default | Values | Description |
|---|---|---|---|---|
--title |
string | no default | no fixed set | The write’s title, as a write line gives it. Its slug is the filename stem: kebab-case, at most 80 characters, a longer title cut at its last word boundary that keeps at least 60, else at 80. Required. |
--type |
string | no default | episodic, semantic, procedural, agent_insight, user_preference, error_pattern, verdict, precedent, arc, task |
The memory type, as a write line gives it. episodic takes the YYYYMMDD- prefix of the current UTC day, task routes to tasks/ under its workspace or the inbox, and arc to areas/arcs/, which only the curate scope writes. Required. |
--workspace |
string | no default | no fixed set | Routes the write to projects/<slug>/, as a write line’s workspace does. |
--tag |
string, repeatable | no default | no fixed set | A tag, as a write line’s tags holds one. Repeatable; the first non-blank one routes a semantic, procedural, or precedent write with no workspace to resources/<slug>/, except one that slugs to people, which no rule routes into, so that write falls to the inbox. |
--path |
string | no default | no fixed set | An explicit path, as a write line’s path. A usable one is the answer as given, in canonical form, with ordinal: null and no suffix, and occupied says whether the head or --claimed already holds it (a put there is judged against that record rather than stepped past it). One that is not a usable memory path is ignored and the path derived, as a put derives it. |
--claimed |
string | no default | no fixed set | A file of paths pending elsewhere (another session’s puts, a draft not written yet), one repo-relative memory path per line, blank lines skipped; - reads stdin. Each counts as taken, as a path the head holds does, so the answer steps past it. An unreadable file is ERR_PATH_NOT_FOUND and a line that is not a usable memory path is ERR_INVALID_FLAG naming the line, both at exit 2 before anything opens. |
Every command also accepts the global flags.
4. Response
On success the command writes one JSON envelope to stdout, and its type is memory.path.
On failure it writes the failure envelope, whose code comes from error codes.
The JSON envelope gives the fields both shapes carry. Response types lists every value type takes across the binary.
5. Further reading
No guide block names this command. The guide is the workflow prose the CLI ships beside the command table: which command to reach for, and in what order.
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.