Skip to main content

Configuration

groundctl uses .ground.yaml files to define environment standards. This page covers every option.

File Location​

groundctl searches for .ground.yaml starting from the current directory, walking up to the filesystem root. This lets you have per-project configs in repo roots.

Full Schema​

# Optional metadata
name: my-project
description: Team development environment standard

# Inherit from a saved profile
extends: base-profile

# Team sharing metadata
team:
org: acme-corp
repo: github.com/acme/groundfile
branch: main

# Required and recommended tools
tools:
- name: node
version: ">=20.0.0"
severity: required
install_cmd: "brew install node"

- name: terraform
version: "^1.6"
severity: recommended

# Secret references (never stored in plaintext)
secrets:
- name: DATABASE_URL
ref: "${env://DATABASE_URL}"
description: PostgreSQL connection string

- name: API_KEY
ref: "${op://Engineering/api-key/credential}"
description: Production API key

Fields​

Top-Level​

FieldTypeDescription
namestringConfig name (for display)
descriptionstringHuman-readable description
extendsstringParent profile name for inheritance
teamobjectTeam sharing metadata
toolslistTool requirements
secretslistSecret references

Tool Spec​

FieldTypeRequiredDescription
namestringYesTool identifier (e.g. node, docker)
versionstringNoSemver constraint (e.g. >=20.0.0, ^3.11)
severitystringNorequired or recommended (default: required)
install_cmdstringNoCustom install command hint

Secret Spec​

FieldTypeRequiredDescription
namestringYesEnvironment variable name
refstringYesSecret reference (${backend://path})
descriptionstringNoHuman-readable description

Supported Tools​

groundctl detects 18 tools out of the box:

node, npm, python, pip, go, rustc, cargo, java, ruby, make, docker, docker-compose, kubectl, terraform, git, gh, curl, wget

Version Constraint Syntax​

PatternMeaningExample
>=1.2.0Greater than or equal>=20.0.0
^1.2.0Compatible release (same major)^3.11
~1.2.0Approximately (same minor)~1.6.0
1.2.0Exact match3.12.1
*Any versionAccept anything
>=1.0.0 <2.0.0Range>=1.6.0 <2.0.0

Inheritance​

When extends is set, tools from the parent profile are merged:

  • Child tools override parent tools with the same name
  • Parent tools not in the child are inherited
  • Inheritance chains up to 10 levels deep are supported

Validation​

Run ground validate to check your config for issues:

ground validate
ground validate --json

Checks: empty tools, missing names, duplicate tools, invalid severity, invalid version constraints, invalid secret references, duplicate secrets.