VM0VM0
ReferenceConfiguration

vm0.yaml

Configuration file reference for VM0 agents

The vm0.yaml file defines your agent configuration.

Minimal Example

version: "1.0"

agents:
  my-agent:
    framework: claude-code
    instructions: AGENTS.md
    environment:
      CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}

Full Example

version: "1.0"

agents:
  my-agent:
    framework: claude-code
    instructions: AGENTS.md
    apps:
      - github
    skills:
      - https://github.com/vm0-ai/vm0-skills/tree/main/hackernews
    volumes:
      - my-volume:/home/user/.config
    environment:
      CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
      MY_VAR: ${{ vars.MY_VAR }}

volumes:
  my-volume:
    name: my-volume
    version: latest

Template values like ${{ secrets.X }} and ${{ vars.X }} are resolved from Platform-stored secrets and variables. Store them once with vm0 secret set or vm0 variable set, and they're automatically loaded on every run. See Environment Variables for details.

Top-Level Fields

FieldTypeRequiredDefaultDescription
versionstringYes-Configuration version. Currently "1.0"
agentsobjectYes-Map of agent definitions
volumesobjectNo{}Map of volume definitions

Agent Fields

FieldTypeRequiredDefaultDescription
frameworkstringYes-Agent framework: claude-code (default) or codex (experimental). See Model Selection
instructionsstringNo-Path to instruction file (e.g., AGENTS.md). See Instructions
appsarrayNo[]Pre-installed tools. Supported: github, github:dev, github:latest
skillsarrayNo[]List of skill URLs. See Skills
volumesarrayNo[]Volume mounts in format name:path. See Volume
environmentobjectNo{}Environment variables. See Environment Variables

Volume Fields

FieldTypeRequiredDefaultDescription
namestringYes-Volume name (must match .vm0/storage.yaml)
versionstringYes-Version to use (e.g., latest or version hash)