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:
description: My production agent
framework: claude-code
instructions: AGENTS.md
skills:
- slack
- 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: latestTemplate 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.
Currently only one agent per vm0.yaml file is supported. Defining multiple agents will result in a validation error.
Top-Level Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
version | string | Yes | - | Configuration version. Currently "1.0" |
agents | object | Yes | - | Map of agent definitions |
volumes | object | No | {} | Map of volume definitions |
Agent Fields
Each agent key must be a valid agent name: 3-64 characters, starting and ending with a letter or number, containing only letters, numbers, and hyphens.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
description | string | No | - | Optional description for the agent |
framework | string | No | claude-code | Agent framework: claude-code. See Model Selection |
instructions | string | No | - | Path to instruction file (e.g., AGENTS.md). See Instructions |
skills | array | No | [] | List of skill references. Supports bare names (e.g., "slack") which resolve to https://github.com/vm0-ai/vm0-skills/tree/main/slack, or full GitHub URLs. See Skills |
volumes | array | No | [] | Volume mounts in format name:path. See Volume |
environment | object | No | {} | Environment variables. See Environment Variables |
experimental_runner | object | No | - | Self-hosted runner configuration. Object with group field in org/name format (e.g., acme/production) |
Volume Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
name | string | Yes | - | Volume name (must match .vm0/storage.yaml) |
version | string | Yes | - | Version to use (e.g., latest or version hash) |
optional | boolean | No | false | When true, skip mounting without error if volume doesn't exist |