Skip to main content

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.

Triggers an image bake for a recipe. The bake combines a recipe (what to install), an environment (scratch VM shape), and a placement (where to run and which base image to use) to produce a provisioned image that agents use at spawn time. If a matching image already exists in the cache, the command returns immediately without starting a new bake. Use --force-new to bypass the cache.

Synopsis

murmur bake [flags] <recipe> <environment> <placement>

Arguments

NameTypeRequiredDescription
recipestringyesName of the recipe to bake.
environmentstringyesName of the environment that provides the scratch VM shape.
placementstringyesName of the placement that determines where the image is baked and how the base image is resolved.
--force-newboolnoSkip the cache check and always run a fresh bake. Default: false.
--service-profilestringnoNamed service profile for credentials. Only available for GitHub App tenants. Mutually exclusive with -e.
-estringnoForward an environment variable to the bake VM as a secret. -e FOO reads from your current environment; -e FOO=bar sets it explicitly. Repeatable. Mutually exclusive with --service-profile.

Output

The command prints one of three results depending on the state of the image cache:

Cache hit

Image murmur-provision-a1b2c3d4e5f67890 already cached (hash: 9f86d081884c7d659a2feaa0c55ad015...)
The image already exists. No bake is started.

Bake started

Bake started (scope: acme-agents, image: murmur-provision-a1b2c3d4e5f67890, hash: 9f86d081884c7d659a2feaa0c55ad015...)
Pin workspace with: murmur patch workspace <name> --set image_ref=my-recipe-9f86d081884c7d65
A new bake is running. The output includes a murmur patch command you can use to pin a workspace to the resulting image once the bake completes.

Bake already in progress

Bake in progress (scope: acme-agents, image: murmur-provision-a1b2c3d4e5f67890, hash: 9f86d081884c7d659a2feaa0c55ad015...)
A bake for this image is already running. No duplicate bake is started.

Examples

Bake a recipe for staging

murmur bake my-recipe staging us-central1
Bake started (scope: acme-agents, image: murmur-provision-a1b2c3d4e5f67890, hash: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08)
Pin workspace with: murmur patch workspace <name> --set image_ref=my-recipe-9f86d081884c7d65

Force a fresh bake

murmur bake --force-new my-recipe staging us-central1
Bypasses the cache and starts a new bake even if a matching image already exists.

Pass secrets to the bake VM

murmur bake -e NPM_TOKEN -e ARTIFACTORY_URL=https://registry.example.com my-recipe staging us-central1
-e NPM_TOKEN reads the value from your current shell environment. -e ARTIFACTORY_URL=https://registry.example.com sets it explicitly. These secrets are available to the recipe scripts during the bake.

Use a service profile

murmur bake --service-profile ci-bot my-recipe staging us-central1
Uses the ci-bot service profile for credentials instead of your developer profile.

Errors

CodeMeaningWhat to do
NOT_FOUNDThe recipe, environment, or placement does not exist.Check the names with murmur get recipe, murmur get environment, or murmur get placement.
INVALID_ARGUMENT--service-profile and -e are mutually exclusiveUse one or the other, not both.
UNAUTHENTICATEDIdentity token is missing or expired.Run murmur auth or check your murmur.local.yaml configuration.
PERMISSION_DENIEDYou do not have recipe.edit permission for this tenant.Contact your tenant admin.