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

# Images

> Pre-built VM images that agents boot from — Murmur's base platform image plus your baked toolchain, packaged as an AMI, GCE image, or container.

Agent VMs use a two-layer image:

1. **Platform base** — Debian 12, Git, Node.js, Claude Code, Codex CLI, `gh` CLI. Maintained by Murmur.
2. **Your toolchain** — Go, Python, Docker, Chrome, internal SDKs. Built by baking a [recipe](/concepts/recipe) on top of the base.

Your [workspace](/concepts/workspaces) references an image by name via the `image_ref` field.

## How images are created

Images are produced by the bake process. You define a [recipe](/concepts/recipe) (base image + provisioning script), then trigger a bake with [`murmur bake`](/cli/bake). The platform creates a scratch VM, runs your script, snapshots the result, and registers the image.

Images are bound to [placements](/concepts/placement) — a GCE image baked in one project is not visible from another. When you create a customer [placement](/concepts/placement), you re-bake your [recipes](/concepts/recipe) so the images exist in your cloud account.

## Immutability

Baked images are immutable — you cannot edit one after it is created. To change what's installed, update your [recipe](/concepts/recipe) and re-bake. List existing images with [`murmur get image`](/cli/get).

***

| Type      | Page                                   |
| --------- | -------------------------------------- |
| Reference | [image](/catalog/image)                |
| Reference | [`murmur bake`](/cli/bake)             |
| Guide     | [Custom images](/guides/custom-images) |
| Concept   | [Recipes](/concepts/recipe)            |
| Concept   | [Placements](/concepts/placement)      |
| Concept   | [Workspaces](/concepts/workspaces)     |
