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

# canned-response

> Catalog resource that stores a reusable message-and-persona pair you can drop into an agent's follow-up box without retyping it.

A **canned response** is a catalog resource that stores a reusable pair: a message body and a [persona](/concepts/agent-personas) override. Pick one in a running [agent's](/concepts/agents) follow-up box to fill in the follow-up text and set the persona for that message in a single click — useful for the replies you send over and over, like "rebase and re-run the tests" or "looks good, open the PR."

A canned response is either **tenant-level** or **workspace-scoped**, decided by its name. A bare name (`rebase-retest`) is available to agents in every [workspace](/concepts/workspaces); a name with a workspace prefix (`backend/rebase-retest`) appears only for agents in that workspace. In the dashboard they are managed under **Organization Settings → Canned Responses**.

## Fields

| Name      | Type   | Required | Description                                                                                                                                                                                                                                                                                                                                                                                  |
| --------- | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`    | string | yes      | Either a bare DNS label (`rebase-retest`, tenant-level) or `{workspace}/{slug}` (`backend/rebase-retest`, workspace-scoped). Each segment matches `[a-z][a-z0-9-]{0,62}`.                                                                                                                                                                                                                    |
| `text`    | string | yes      | The message body, inserted verbatim into the follow-up field when the response is picked. Maximum 16 KiB (16384 bytes).                                                                                                                                                                                                                                                                      |
| `persona` | string | yes      | [Persona](/concepts/agent-personas) override applied to the follow-up. A bare name (`programmer`, resolved against the canned response's own [workspace](/concepts/workspaces) scope — tenant-level when the name is bare) or a pinned `{workspace}/{slug}` (`backend/programmer`). Must resolve to an existing [agent-persona](/catalog/agent-persona) when the canned response is created. |
| `title`   | string | no       | Human-readable label shown in the picker (e.g. `Rebase and re-run tests`). Display only — never inserted into the message. Maximum 1024 bytes.                                                                                                                                                                                                                                               |

<Note>
  Both `text` and `persona` are required. A canned response always carries a persona override, so picking one both fills the message and switches the persona for that follow-up.
</Note>

## Examples

### Create a tenant-level canned response

```yaml theme={null}
name: rebase-retest
title: "Rebase and re-run tests"
text: |
  Please rebase onto the latest main, resolve any conflicts, and
  re-run the full test suite before pushing.
persona: programmer
```

```bash theme={null}
cat <<'EOF' | murmur set canned-response rebase-retest
name: rebase-retest
title: "Rebase and re-run tests"
text: |
  Please rebase onto the latest main, resolve any conflicts, and
  re-run the full test suite before pushing.
persona: programmer
EOF
```

### Create a workspace-scoped canned response

A name with a workspace prefix appears only for agents in that [workspace](/concepts/workspaces). The prefix workspace must exist.

```bash theme={null}
cat <<'EOF' | murmur set canned-response backend/lgtm
name: backend/lgtm
title: "Approve and merge"
text: "Looks good. Approve the PR and merge once checks are green."
persona: backend/reviewer
EOF
```

### Listing canned responses

```bash theme={null}
murmur get canned-response
```

```
NAME                  TITLE                    PERSONA
rebase-retest         Rebase and re-run tests  programmer
backend/lgtm          Approve and merge        backend/reviewer
```

### Reading a single canned response

```bash theme={null}
murmur get canned-response rebase-retest
```

## Errors

| Code               | Meaning                                                          | What to do                                                                                                     |
| ------------------ | ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `INVALID_ARGUMENT` | `name is required`                                               | Provide a `name`.                                                                                              |
| `INVALID_ARGUMENT` | `canned response name must be a DNS label or {workspace}/{name}` | Use a bare DNS label or a `{workspace}/{slug}` name; each segment is `[a-z][a-z0-9-]{0,62}`.                   |
| `INVALID_ARGUMENT` | `text is required`                                               | Provide the message body in `text`.                                                                            |
| `INVALID_ARGUMENT` | `text exceeds 16384 byte limit`                                  | Shorten `text` to 16 KiB or fewer.                                                                             |
| `INVALID_ARGUMENT` | `title exceeds 1024 byte limit`                                  | Shorten `title` to 1024 bytes or fewer.                                                                        |
| `INVALID_ARGUMENT` | `persona must be a DNS label or {workspace}/{name}`              | Use a bare persona name or a pinned `{workspace}/{slug}`.                                                      |
| `INVALID_ARGUMENT` | `persona "<name>" does not resolve to a usable agent persona`    | Reference an existing [agent-persona](/catalog/agent-persona). Create it first if needed.                      |
| `INVALID_ARGUMENT` | `workspace "<name>" does not exist`                              | The workspace prefix names a [workspace](/concepts/workspaces) that does not exist. Create it or fix the name. |

## Related

* [agent-persona](/catalog/agent-persona) — the persona a canned response sets on the follow-up
* [Agent personas](/concepts/agent-personas) — concept overview
* [Dashboard](/guides/dashboard#follow-up-composer) — where you pick a canned response in the follow-up composer
* [Workspaces](/concepts/workspaces) — the scope a prefixed canned response belongs to
* [`murmur set`](/cli/set) — CLI command for creating and updating catalog resources
* [`murmur get`](/cli/get) — CLI command for reading catalog resources
