Skip to content

YAMLScript

Next-generation YAML programming language for advanced configuration management.


Overview

YAMLScript is an innovative programming language that extends YAML with computation capabilities. It looks like YAML but can execute code, making it perfect for advanced configuration management.


What is YAMLScript?

YAML + Programming

YAMLScript is:

  • Valid YAML - Any YAMLScript is valid YAML
  • Executable - Can evaluate expressions and run functions
  • Familiar - Uses YAML syntax you already know
  • Powerful - Supports variables, functions, and logic

The Problem YAMLScript Solves

Traditional YAML is static data. YAMLScript adds computation:

Traditional YAML (static):

database:
  host: localhost
  port: 5432
  url: "postgres://localhost:5432/mydb"  # Redundant!

YAMLScript (computed):

database:
  host: localhost
  port: 5432
  url: =>"postgres://$host:$port/mydb"  # Computed!


Key Features

Computation in YAML

Embed expressions directly in YAML:

server:
  host: api.example.com
  port: 443
  url: =>"https://$host:$port"  # Computed at runtime

Functions and Logic

Define reusable functions:

!yamlscript/v0

defn greeting(name):
  "Hello, $name!"

message: =>greeting("World")  # "Hello, World!"

Dynamic Configuration

Generate configuration programmatically:

servers:
  - for: i in(range(1, 4))
    name: "server-$i"
    port: =>(+ 8000 i)

Results in:

servers:
  - name: server-1
    port: 8001
  - name: server-2
    port: 8002
  - name: server-3
    port: 8003


Use Cases

Infrastructure as Code

Generate complex configurations:

!yamlscript/v0

regions: [us-east-1, us-west-2, eu-west-1]

resources:
  - for: region in regions
    type: ec2-instance
    region: =>region
    tags:
      Name: "app-$region"

Environment-Specific Config

One file, multiple environments:

!yamlscript/v0

env: =>ENV.APP_ENV or "development"

database:
  host: =>
    when(env == "production"):
      "prod-db.example.com"
    else:
      "localhost"

Advanced GitOps

Smart Kubernetes manifests:

!yamlscript/v0

replicas: =>
  if(ENV.LOAD == "high"): 10
  else: 3

deployment:
  replicas: =>replicas
  resources:
    cpu: =>"${replicas * 100}m"

Enterprise Features

YES Leader Benefits

YES Leader tier members get access to:

  • YAMLScript enterprise license
  • Priority support for YAMLScript implementation
  • Custom function libraries for enterprise use cases
  • Training and consulting on YAMLScript adoption
  • Early access to new features

Security & Compliance

  • Sandboxed execution environment
  • Audit logging for all computations
  • Policy enforcement capabilities
  • No arbitrary code execution

Integration

YAMLScript integrates with:

  • CI/CD pipelines
  • Kubernetes operators
  • Configuration management tools
  • GitOps workflows

Getting Started

Installation

# Install YAMLScript CLI
curl https://yamlscript.org/install.sh | bash

# Or via package managers
brew install yamlscript  # macOS
apt install yamlscript   # Debian/Ubuntu

Your First YAMLScript

Create config.ys:

!yamlscript/v0

name: "YAMLScript Example"
version: "1.0.0"
timestamp: =>now()
greeting: =>"Hello from YAMLScript at $timestamp"

Run it:

ys config.ys

Learn More


Development Status

YAMLScript is under active development:

  • Current: v0.1 - Core language features
  • Q1 2026: v0.5 - Enterprise features, security hardening
  • Q2 2026: v1.0 - Production-ready release

Roadmap

  • Core expression evaluation
  • Function definitions
  • Control flow (if/when/for)
  • Standard library completion
  • Enterprise security features
  • IDE/editor integrations
  • Kubernetes operator
  • Helm plugin

Support YAMLScript

YAMLScript development is funded through the YES Program:

  • YES Members: Beta access to YAMLScript
  • YES Partners: Early access and training
  • YES Leaders: Enterprise license and custom development

Join YES to Support YAMLScript →


Resources


Enterprise Beta

YES members can request early access to YAMLScript enterprise features. Contact us for more information.