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

# Catalog resources

> The Murmur catalog — the resource registry that stores workspaces, environments, placements, images, secrets, roles, and every configurable object.

The catalog is Murmur's per-tenant configuration store. Every configurable entity — [workspaces](/concepts/workspaces), [environments](/concepts/environments), [placements](/concepts/placement), [secrets](/concepts/secrets), [agent personas](/concepts/agent-personas), [flights](/concepts/flights), and more — is a catalog resource.

## Resource kinds

Each resource has a **kind** (its type), a **name** (unique within the kind and tenant), and kind-specific fields.

### Infrastructure

| Kind                                    | Purpose                                                        |
| --------------------------------------- | -------------------------------------------------------------- |
| [`workspace`](/catalog/workspace)       | Groups repos, environment, placement, and agent defaults       |
| [`placement`](/catalog/placement)       | Where VMs run — cloud account, region, network                 |
| [`environment`](/catalog/environment)   | VM compute shape — machine type, disk size                     |
| [`pool-config`](/catalog/pool-config)   | Tenant-wide VM pool limits (singleton, always named `default`) |
| [`machine-type`](/catalog/machine-type) | Named VM sizes — vCPUs, memory, architecture                   |
| [`disk-type`](/catalog/disk-type)       | Disk performance tiers                                         |
| [`image`](/catalog/image)               | VM image records produced by the bake process                  |
| [`recipe`](/catalog/recipe)             | Image build definitions — base image, provisioning script      |
| [`repo-config`](/catalog/repo-config)   | Per-repository configuration overrides                         |

### Agents and identity

| Kind                                          | Purpose                                                                           |
| --------------------------------------------- | --------------------------------------------------------------------------------- |
| [`agent-persona`](/catalog/agent-persona)     | Reusable persona definitions — prompt, model, tools                               |
| [`agent`](/catalog/agent)                     | Runtime record of a spawned agent (created automatically)                         |
| [`tag`](/catalog/tag)                         | Tenant-defined label (name + color) attached to agents for grouping and filtering |
| [`share-link`](/catalog/share-link)           | Read-only link to a single agent, openable without signing in                     |
| [`flight`](/catalog/flight)                   | Multi-agent orchestration documents with event triggers                           |
| [`secret`](/catalog/secret)                   | Tenant-wide secrets, encrypted at rest                                            |
| [`user-secret`](/catalog/user-secret)         | Per-developer secrets                                                             |
| [`user`](/catalog/user)                       | Developer identity — name, email, SSH keys                                        |
| [`service-profile`](/catalog/service-profile) | Service agent identity and credentials                                            |
| [`role`](/catalog/role)                       | Named permission sets                                                             |
| [`group`](/catalog/group)                     | User groups for bulk role assignment                                              |
| [`tenant-binding`](/catalog/tenant-binding)   | Binds users or groups to roles                                                    |
| [`alias`](/catalog/alias)                     | URL aliases for agent port-proxy endpoints                                        |
| [`canned-response`](/catalog/canned-response) | Reusable message-and-persona pair for agent follow-ups                            |
| [`actor-allowlist`](/catalog/actor-allowlist) | Usernames permitted to steer agents via webhook events                            |
| [`steering-policy`](/catalog/steering-policy) | Who may steer agents via externally-sourced events                                |

## Managing resources

Five CLI commands cover all catalog operations:

| Command                            | Purpose                                                                     |
| ---------------------------------- | --------------------------------------------------------------------------- |
| [`murmur get`](/cli/get)           | Read a resource, or list all resources of a kind when name is omitted       |
| [`murmur set`](/cli/set)           | Create or full-replace a resource. Reads YAML from stdin or opens `$EDITOR` |
| [`murmur patch`](/cli/patch)       | Partial update — change specific fields with `--set field=value`            |
| [`murmur rm`](/cli/rm)             | Delete a resource                                                           |
| [`murmur describe`](/cli/describe) | Show the schema for a kind — fields, required values, input format          |

```bash theme={null}
# List all workspaces
murmur get workspace

# Read a specific workspace
murmur get workspace backend

# Create or update a workspace from stdin
cat workspace.yaml | murmur set workspace backend

# Update one field
murmur patch workspace backend --set min_idle=3

# Delete a workspace
murmur rm workspace backend

# See what fields a kind expects
murmur describe workspace
```

## Versioning

Every catalog edit creates a new generation. The catalog stores the full version history — who changed what, when — and supports reverting to any previous generation.

## Referential integrity

Resources reference each other by name. A [workspace](/concepts/workspaces) references an environment, a [placement](/catalog/placement), and secrets. An environment references a machine type. The catalog enforces these references — deleting a resource that another resource points to is blocked.

## Platform builtins

Murmur provides built-in resources — default placements, machine types, and base images — that are available to every tenant. Builtins are immutable. You can create your own resources alongside them.

***

| Type      | Page                               |
| --------- | ---------------------------------- |
| Reference | [placement](/catalog/placement)    |
| Reference | [`murmur get`](/cli/get)           |
| Reference | [`murmur set`](/cli/set)           |
| Reference | [`murmur patch`](/cli/patch)       |
| Reference | [`murmur rm`](/cli/rm)             |
| Reference | [`murmur describe`](/cli/describe) |
