---
title: memhtml link
description: Add an authored edge to the source file and commit it. Idempotent.
---

## 1. Synopsis

Add an authored edge to the source file and commit it. Idempotent.

```sh
memhtml link <src> <rel> <dst>
```

## 2. Arguments

| Argument | Required | Description |
| --- | --- | --- |
| `src` | yes | The asserting memory or task. |
| `rel` | yes | One of: supersedes, contradicts, caused\_by, leads\_to, part\_of, relates\_to, example\_of, supports, laterally\_related, blocks, subtask\_of. A task rel needs two tasks; a memory rel refuses a task endpoint. |
| `dst` | yes | The memory or task being pointed at. |

## 3. Flags

This command takes no flags of its own.

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.linked`.

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

No guide block names this command. The [guide](/reference/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.