Skip to content
AI-Assisted Development

quake.yaml reference

Reference · Updated Jun 2026

Quake.yaml reference

quake.yaml is the version 1 launch manifest format. It declares application launch intent: runtime, build source, environments, optional services, and secret names. Validation runs through the validate_launch_manifest MCP tool or the prepare_launch tool before a handoff packet is emitted.

For workflow context (branch mapping, handoff model, evidence bundle), see Launch handoff.

JSON Schema (draft 2020-12): https://docs.quake.ai/schema/quake-manifest.v1.json

Example manifest#

YAML
version: 1
name: my-app
runtime: container
source:
  build: dockerfile
  dockerfile: ./Dockerfile
environments:
  production:
    branch: main
    resources: cpu-standard
    domain: my-app.example
  preview:
    branch: "*"
    resources: cpu-small
    ttl_hours: 72
services:
  - type: object-storage
    name: assets
secrets:
  - DATABASE_URL
evidence: true

Top-level fields#

FieldTypeRequiredDescription
version1 (literal)yesSchema version. Only 1 is accepted today.
namestringyesApplication id. Lowercase kebab-case starting with a letter (^[a-z][a-z0-9-]*$).
runtimeenumyescontainer, audio-worker, or gpu. See Runtime.
sourceobjectyesBuild source declaration. See Source.
environmentsobjectyesNamed environment configs. At least one entry required. See Environments.
servicesarraynoOptional backing services. See Services.
secretsarraynoSecret variable names only. See Secrets.
evidencebooleannoWhen true, handoff packets include an evidence bundle stub.

Runtime#

ValueValidationTemplate resolution
containeracceptedResolves to the containerized-app template
audio-workeracceptedResolves to the audio-worker template (a VM with cloud-init; no container image build)
gpuaccepted with warningNo template resolution in this release. Message: runtime: gpu is reserved for a future Northern Data lane; the POC validates the enum only.

Source#

FieldTypeRequiredDescription
buildenumyesdockerfile or buildpack
dockerfilestringconditionalRequired when build is dockerfile. Path to the Dockerfile relative to the repo root.

When build is buildpack, omit dockerfile. The enum is validated; buildpack execution is outside this platform.

Environments#

environments is a map of environment name to config object. Keys are free-form strings (for example production, preview). Validation requires at least one entry.

Each environment object:

FieldTypeRequiredDescription
branchstringyesGit branch rule. Use an exact name (main) or "*" for any non-matching branch.
resourcesenumyesFlavor alias: cpu-standard or cpu-small.
domainstringnoOptional hostname hint for the control plane.
ttl_hoursintegernoPositive integer. Advisory preview lifetime in hours.

Flavor alias resolution#

AliasResolved Quake AI flavor name
cpu-standardm2a.large
cpu-smalls1a.small

Aliases map to names in the production flavor catalog. Invalid alias values fail validation with an actionable error path.

Action-to-environment requirements#

The prepare_launch MCP tool maps actions to environment keys:

ActionRequired environment key in manifest
previewpreview
deployproduction
promoteproduction
rollbackproduction

Services#

Optional array of backing service declarations.

Each service object:

FieldTypeRequiredDescription
typeenumyesobject-storage, postgres, mysql, redis, vector, analytics, inference-gateway, or supabase
namestringyesService instance name. Lowercase kebab-case starting with a letter.

Service type resolution#

type valueTemplateApp-facing output
object-storages3-storage-acl<NAME>_BUCKET_NAME, <NAME>_BUCKET_ARN
postgresself-managed-postgres<NAME>_DATABASE_URL
mysqlmysql-database<NAME>_DATABASE_URL
redisredis-cache<NAME>_REDIS_URL
vectorqdrant<NAME>_QDRANT_URL
analyticsanalytics-umami<NAME>_ANALYTICS_URL
inference-gatewayinference-gateway<NAME>_GATEWAY_URL
supabasesupabase-selfhost<NAME>_SUPABASE_URL

<NAME> is the service name upper-cased with hyphens replaced by underscores (for example a service named primary-db contributes PRIMARY_DB_DATABASE_URL). The handoff packet lists these keys in each runtime entry's container_env with a null value; the consumer assembles the connection string from the service's private_ip output and the password you supply as a secret. For inference-gateway, the consumer reads gateway_url directly. For analytics, the consumer reads dashboard_url. For supabase, the consumer reads api_url and pairs it with the anon and service_role keys generated on the instance. Unknown type values fail validation.

The supabase type resolves to the supabase-selfhost template, the full BaaS stack (Postgres, Auth, Storage, real-time channels, and Studio) on a single instance. For a step-by-step build, follow the Supabase self-host deployment.

Secrets#

Optional array of strings. Each entry is a secret name, never a value.

ConstraintRule
FormatUPPER_SNAKE_CASE environment variable name (^[A-Z][A-Z0-9_]*$)
ValuesMust not appear in quake.yaml. Inject values through the control plane or runtime secret store.

Evidence#

FieldTypeDescription
evidencebooleanWhen true (recommended for auditable launches), prepare_launch attaches a pending evidence bundle stub to the handoff packet.

The stub includes gate rows (no-leaked-secrets, health-check, manifest-schema, iac-template-resolved) with status pending. Runtime fields (deploy_id, build log URL, preview URL, IaC plan text) are null until the control plane fills them.

Validation rules summary#

Validation (via MCP or unit tests) checks:

  1. Schema: all required fields, literal version: 1, regex constraints on name, service names, and secret names
  2. Source cross-field rule: dockerfile required when source.build is dockerfile
  3. Environments: at least one entry; each resources value is a known flavor alias
  4. Services: each type maps to a known IaC template slug
  5. Runtime: gpu produces a warning, not a hard error

On success, validate_launch_manifest returns valid: true plus a resolved block listing runtime template path, per-environment flavor names, and service template paths.

Handoff packet cross-reference#

After validation, call prepare_launch with:

ParameterTypeDescription
manifestobjectParsed manifest JSON (convert YAML to JSON before calling)
actionenumdeploy, preview, promote, or rollback
source_shastringOptional git commit SHA

Successful responses wrap a handoff packet in a PortableArtifact with artifact_type: launch_handoff. See Launch handoff for packet field descriptions and AI tools reference for MCP request and response shapes.

See also#

Was this page helpful?