Skip to main content

Schema Reference

Complete field reference for profile files and repository raid.yaml files.


Profile file

name: "my-team"

repositories:
- ...

environments:
- ...

install:
tasks:
- ...

commands:
- ...

task_groups:
group-name:
- ...

Top-level fields

FieldTypeRequiredDescription
namestringYesUnique profile identifier
repositorieslistNoRepositories to clone and manage
environmentslistNoNamed environment configurations
installobjectNoTasks to run after all repos are cloned
install.taskslistNoTask sequence for global install
commandslistNoCustom commands available via raid <name>
task_groupsmapNoReusable named task sequences

Repository

repositories:
- name: "api"
url: "[email protected]:my-org/api.git"
path: "~/dev/api"
install:
tasks:
- type: Shell
cmd: "npm install"
FieldTypeRequiredDescription
namestringYesUsed to reference the repo (e.g. raid install api)
urlstringYesGit remote URL
pathstringYesLocal clone destination (supports ~)
install.taskslistNoTasks to run after this repo is cloned

Environment

environments:
- name: "local"
variables:
- name: "LOG_LEVEL"
value: "debug"
tasks:
- type: Shell
cmd: "docker-compose up -d db"
FieldTypeRequiredDescription
namestringYesEnvironment name used with raid env <name>
variableslistNoVariables to set when the environment is applied
variables[].namestringYesVariable name
variables[].valuestringYesVariable value
taskslistNoTasks to run when this environment is applied

Command

commands:
- name: "deploy"
usage: "Deploy all services"
tasks:
- type: Shell
cmd: "./deploy.sh"
FieldTypeRequiredDescription
namestringYesCommand name — invoked as raid <name>
usagestringNoDescription shown in raid --help
taskslistYesTask sequence to run

Command names cannot shadow built-in names: install, env, profile, doctor.


Task

All tasks share these common fields:

FieldTypeRequiredDescription
typestringYesTask type (case-sensitive, Title Case)
concurrentboolNoRun in parallel with adjacent concurrent tasks
conditionobjectNoConditions that must pass for the task to run

Condition

FieldTypeDescription
platformstringdarwin, linux, or windows
existsstringSkip if this path already exists
cmdstringSkip if this command exits 0

Task types

TypeDescription
ShellRun a shell command
ScriptRun a script file
SetSet a variable for the current session
PrintPrint a message to the terminal
TemplateRender a template file to a destination
GitPerform a git operation
GroupExecute a named task group
PromptPrompt the user for input
ConfirmAsk the user to confirm before continuing
HTTPDownload a file from a URL
WaitPoll a URL or TCP endpoint until it responds

See Task Types for full field details per type.


Repository raid.yaml

A repository can define its own commands and environments by committing a raid.yaml at its root. These are merged into the active profile at load time.

~/dev/api/raid.yaml
name: "api"
branch: "main"

commands:
- name: "migrate"
usage: "Run database migrations"
tasks:
- type: Shell
cmd: "go run ./cmd/migrate"

environments:
- name: "local"
variables:
- name: "DATABASE_URL"
value: "postgres://localhost:5432/api_dev"
- name: "staging"
variables:
- name: "DATABASE_URL"
value: "postgres://staging-db.internal:5432/api"
FieldTypeRequiredDescription
namestringYesMust match the repository name in the profile
branchstringNoDefault branch to checkout on clone
commandslistNoRepo-scoped custom commands
environmentslistNoRepo-scoped environment variables and tasks