Document


The top level Runefile type.

Type: object

Version 1 of the Runefile.yml format.


The base image that defines the interface between a Rune and its runtime.

This should always be "runicos/base".

Type: string

A specification for finding a dependency.

The full syntax is base@version#sub_path where

  • base is a URL or the name of a repository on GitHub (e.g. hotg-ai/rune
    or https://github.com/hotg-ai/rune)
  • version is an optional field specifying the version (e.g. as a git tag)
  • sub_path is an optional field which is useful when pointing to
    repositories with multiple relevant items because it lets you specify
    which directory the specified item is in.
Must match regular expression: (?x) (?P<base>[\w\d:/_.-]+) (?:@(?P<version>[\w\d./-]+))? (?:\#(?P<sub_path>[\w\d._/-]+))?

Type: object

The various stages in the Runefile's pipeline.

Each additional property must conform to the following schema

Type: object

A stage in the Rune's pipeline.

Type: object

A ML model which will be executed by the runtime.

Type: object

Each additional property must conform to the following schema

Type: string

Type: array

Tensors to use as input to this model.

Each item of this array must be:

Type: string

The name of a tensor.

Typically something like "stage", or "stage.2" if the stage has multiple outputs.

Must match regular expression: ^(?P<name>[a-zA-Z_][\w-]*)(?:\.(?P<index>\d+))?$


The model to use, or a resource which specifies the model to use.

Type: string

A reference to some [ResourceDeclaration]. It typically looks like
$RESOURCE_NAME.

Must match regular expression: ^\$[_a-zA-Z][_a-zA-Z0-9]*$

Type: array

The tensors that this model outputs.

Each item of this array must be:

Type: object

The element type and dimensions for a particular tensor.

Type: array of integer

Each item of this array must be:

Type: integer

Value must be greater or equal to 0.0

Type: object

A stage which executes a procedural block.

Type: object

Each additional property must conform to the following schema

Type: object

A value that may be used as a stage's argument.

Type: array

Each item of this array must be:

Type: string

The name of a tensor.

Typically something like "stage", or "stage.2" if the stage has multiple outputs.

Same definition as Input

Type: array

Each item of this array must be:

Type: object

The element type and dimensions for a particular tensor.

Same definition as Type

Type: string

A [Path] that Rune can use to locate the proc block.

Must match regular expression: (?x) (?P<base>[\w\d:/_.-]+) (?:@(?P<version>[\w\d./-]+))? (?:\#(?P<sub_path>[\w\d._/-]+))?
Type: object

A stage which reads inputs from the runtime.

Type: object

Each additional property must conform to the following schema

Type: object

A value that may be used as a stage's argument.

Same definition as Value

Type: string

What type of capability to use ("IMAGE", "SOUND", etc.).

Type: array

Each item of this array must be:

Type: object

The element type and dimensions for a particular tensor.

Same definition as Type
Type: object

A stage which passes outputs back to the runtime.

Type: object

Each additional property must conform to the following schema

Type: object

A value that may be used as a stage's argument.

Same definition as Value

Type: array

Each item of this array must be:

Type: string

The name of a tensor.

Typically something like "stage", or "stage.2" if the stage has multiple outputs.

Same definition as Input

Type: string

The type of output (e.g. "SERIAL").

Type: object Default: {}

Any resources that can be accessed by pipeline stages.

Each additional property must conform to the following schema

Type: object

The declaration for a resource, typically something like a wordlist or environment variable.

No Additional Properties

Type: string or null

A resource who's default value is specified inline.

Type: string or null

A resource who's default value is meant to be loaded from a file.

Default: "string"
Type: enum (of string)

How the resource should be treated inside the Rune.

Must be one of:

  • "string"
  • "binary"

Type: integer

The version number. Must always be "1".

Value must be greater or equal to 1.0 and lesser or equal to 1.0