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.

A machine type is a catalog resource that defines the compute shape of an agent VM. Each environment references one machine type by name via machine_type_ref. The platform provides built-in machine types for common VM shapes on GCP and AWS. Built-in machine types are immutable — they cannot be modified or deleted.

Fields

NameTypeRequiredDescription
namestringyesUnique identifier. DNS label format: [a-z][a-z0-9-]{0,62}.
descriptionstringnoHuman-readable description shown in the dashboard. Maximum 1024 bytes.
vcpusint32yesNumber of virtual CPUs. Must be positive.
memory_gbint32yesMemory in GiB. Must be positive.
architecturestringyesCPU architecture. Values: ARCHITECTURE_AMD64, ARCHITECTURE_ARM64.
has_gpuboolnoWhether this machine type includes a GPU. Default: false.
gpu_kindstringconditionalGPU kind (e.g. t4, l4, a100). Required when has_gpu is true. Must be empty when has_gpu is false.
specobjectyesCloud-specific configuration. Exactly one of gce, aws, or docker.

GCE spec fields

Set spec.gce for GCP machine types:
NameTypeRequiredDescription
spec.gce.machine_typestringyesGCE machine type (e.g. n2-standard-32). Must match ^[a-z][a-z0-9]([a-z0-9-]*[a-z0-9])?$.
spec.gce.accelerator_typestringconditionalGCE accelerator type (e.g. nvidia-tesla-t4). Required when has_gpu is true.
spec.gce.accelerator_countint32conditionalNumber of GPU accelerators. Must be positive when has_gpu is true.
spec.gce.regionsmapyesAvailable regions with per-region cost configuration. At least one entry required. Keys are region strings (e.g. us-central1).

AWS spec fields

Set spec.aws for AWS machine types:
NameTypeRequiredDescription
spec.aws.instance_typestringyesEC2 instance type (e.g. m5.8xlarge). Must match ^[a-z][a-z0-9-]*\.[a-z0-9]+$.
spec.aws.regionsmapyesAvailable regions with per-region cost configuration. At least one entry required. Keys are region strings (e.g. us-east-1).

Region configuration

Each entry in a regions map is a RegionConfig object:
NameTypeRequiredDescription
cost_per_hourdoubleyesOn-demand cost per hour in USD. Must be greater than 0.

Examples

Listing machine types

murmur get machine-type
NAME                        VCPUS  MEMORY  ARCH   GPU  DESCRIPTION
murmur-n2-standard-32       32     128     amd64  no   Platform managed — GCE n2-standard-32
murmur-m5-8xlarge           32     128     amd64  no   Platform managed — EC2 m5.8xlarge

Reading a single machine type

murmur get machine-type murmur-n2-standard-32

GCE machine type

name: my-gce-gpu
description: "GCE GPU machine type with T4"
vcpus: 16
memory_gb: 64
architecture: ARCHITECTURE_AMD64
has_gpu: true
gpu_kind: t4
spec:
  gce:
    machine_type: n2-standard-16
    accelerator_type: nvidia-tesla-t4
    accelerator_count: 1
    regions:
      us-central1:
        cost_per_hour: 1.25

AWS machine type

name: my-aws-large
description: "EC2 m5.8xlarge"
vcpus: 32
memory_gb: 128
architecture: ARCHITECTURE_AMD64
has_gpu: false
spec:
  aws:
    instance_type: m5.8xlarge
    regions:
      us-east-1:
        cost_per_hour: 1.536
      us-west-2:
        cost_per_hour: 1.536

Creating a machine type

cat <<'EOF' | murmur set machine-type my-aws-large
name: my-aws-large
description: "EC2 m5.8xlarge"
vcpus: 32
memory_gb: 128
architecture: ARCHITECTURE_AMD64
has_gpu: false
spec:
  aws:
    instance_type: m5.8xlarge
    regions:
      us-east-1:
        cost_per_hour: 1.536
EOF

Errors

CodeMeaningWhat to do
INVALID_ARGUMENTname is requiredProvide a name field.
INVALID_ARGUMENTname must match [a-z][a-z0-9-]{0,62}Use a lowercase DNS label for the name.
INVALID_ARGUMENTdescription exceeds 1024 byte limitShorten the description to 1024 bytes or fewer.
INVALID_ARGUMENTvcpus must be positiveSet vcpus to a value greater than 0.
INVALID_ARGUMENTmemory_gb must be positiveSet memory_gb to a value greater than 0.
INVALID_ARGUMENTarchitecture is requiredSet architecture to ARCHITECTURE_AMD64 or ARCHITECTURE_ARM64.
INVALID_ARGUMENTunknown architecture value <N>Use a valid architecture value.
INVALID_ARGUMENTgpu_kind is required when has_gpu is trueProvide gpu_kind when has_gpu is true.
INVALID_ARGUMENTgpu_kind must be empty when has_gpu is falseRemove gpu_kind or set has_gpu to true.
INVALID_ARGUMENTspec is required (aws, gce, or docker)Provide exactly one of spec.aws, spec.gce, or spec.docker.
INVALID_ARGUMENTaws.instance_type "<value>" does not match EC2 formatUse a valid EC2 instance type string (e.g. m5.8xlarge).
INVALID_ARGUMENTgce.machine_type "<value>" does not match GCE formatUse a valid GCE machine type string (e.g. n2-standard-32).
INVALID_ARGUMENTgce.accelerator_type is required when has_gpu is trueProvide spec.gce.accelerator_type for GPU machine types.
INVALID_ARGUMENTgce.accelerator_count must be positive when has_gpu is trueSet spec.gce.accelerator_count to a value greater than 0.
INVALID_ARGUMENTaws.regions must be non-emptyAdd at least one region to spec.aws.regions.
INVALID_ARGUMENTgce.regions must be non-emptyAdd at least one region to spec.gce.regions.
INVALID_ARGUMENTaws.regions["<region>"].cost_per_hour must be > 0Set cost_per_hour to a positive value for the given region.
INVALID_ARGUMENTgce.regions["<region>"].cost_per_hour must be > 0Set cost_per_hour to a positive value for the given region.
INVALID_ARGUMENTdocker machine types cannot request GPURemove has_gpu or use a GCE or AWS spec instead.
INVALID_ARGUMENTplatform machine types are reserved for builtins and cannot be written via the catalogDo not set the platform field. Built-in machine types are managed by the platform.
FAILED_PRECONDITIONcannot delete machine-type "<name>": referenced by environment: <names>Remove the machine_type_ref from the referencing environments before deleting the machine type.