snake_case YAML keys. TypeScript constructor options use camelCase, such as
commandLimits; provider and runtime guides show their SDK equivalents.
Start with RAM
mounts is the only required top-level key. This config creates a writable,
in-memory mount without credentials:
workspace.yaml
ready. Replace RAM using a VFS setup guide.
YAML defaults mode to write; direct Python and TypeScript Workspace
constructors default to read.
Workspace settings
Unknown keys are errors. Provider fields belong under
mounts.<prefix>.config,
CLI fields under clis.<name>.config, and runtime fields under runtimes[].config.
Mount settings
Each mount key is an absolute virtual prefix, such as/data.
Environment and credential pointers
A string sets a literal exported variable. A pointer fetches a credential instead of storing its value in YAML:API_TOKEN comes from the Mirage process environment. Managed entries
default key to the variable’s name and are always exported. readonly
prevents shell assignment and unset. Fetching is lazy on first reference;
fetch: eager requests it before execution even when the line does not name it.
Pointers inside mount or registered CLI configs require an explicit key and
are resolved before the provider is constructed. See Service credentials
for from, ref and key examples.
Values and paths
${NAME} placeholders are substituted from the host process environment when
the config loads. A missing variable is an error. Use a credential pointer
when the value should be fetched through a source instead.
Relative script paths and file-based code references resolve from the config
file’s directory. Relative dotenv paths resolve from the Mirage process’s
working directory.