PicoRunner
← Developer guide

Manifest reference

All fields supported by picorunner.toml version 1. Nested fields use dotted names; [] identifies an array item. Unlisted fields are not accepted.

PicoRunner manifest v1
FieldTypeRequiredRules and defaults
schemanumberRequired
Must equal: 1
namestringRequired
Minimum length: 1
Maximum length: 120
runtimeobjectRequired
Additional fields: false
runtime.kindstringRequired when parent is present
Allowed values: ["node","python"]
runtime.versionstringRequired when parent is present
Minimum length: 1
Maximum length: 80
runtime.package_managerstringOptional
Allowed values: ["npm","pnpm","yarn","uv"]
runtime.workspacestringOptional
Default: "."
Minimum length: 1
Must not match: {"pattern":"(^/|(^|/)\\.\\.(/|$))"}
setupobjectOptional
Additional fields: false
setup.stepsarrayOptional—
setup.steps[].kindstringOptional
Must equal: "dependencies"
setup.steps[].runarrayOptional
Minimum items: 1
Maximum items: 64
setup.steps[].run[]stringEach item
Minimum length: 1
Maximum length: 4096
setup.steps[].working_directorystringOptional
Default: "."
Minimum length: 1
Must not match: {"pattern":"(^/|(^|/)\\.\\.(/|$))"}
setup.steps[].lockedbooleanOptional
Default: false
setup.steps[].whenstringOptional
Must equal: "install-or-update"
Default: "install-or-update"
setup.steps[]objectEach item
Additional fields: false
Exactly one rule must match: [{"required":["kind"],"not":{"required":["run"]}},{"required":["run"],"not":{"required":["kind"]}}]
launchobjectRequired
Additional fields: false
launch.commandarrayRequired when parent is present
Minimum items: 1
Maximum items: 64
launch.command[]stringEach item
Minimum length: 1
Maximum length: 4096
launch.working_directorystringOptional
Default: "."
Minimum length: 1
Must not match: {"pattern":"(^/|(^|/)\\.\\.(/|$))"}
launch.hoststringOptional
Must equal: "127.0.0.1"
Default: "127.0.0.1"
launch.host_envstringOptional
Must match: "^[A-Z_][A-Z0-9_]{0,127}$"
launch.portintegerRequired when parent is present
Minimum: 1
Maximum: 65535
launch.port_envstringOptional
Default: "PORT"
Must match: "^[A-Z_][A-Z0-9_]{0,127}$"
launch.environmentobjectOptional
Additional fields: {"type":"string","maxLength":4096}
healthobjectOptional
Additional fields: false
health.typestringRequired when parent is present
Allowed values: ["tcp","http"]
health.pathstringOptional
Default: "/"
Must match: "^/(?!/)"
health.timeout_secondsintegerOptional
Default: 90
Minimum: 1
Maximum: 3600
persistenceobjectOptional
Additional fields: false
persistence.pathsarrayOptional—
persistence.paths[]stringEach item
Minimum length: 1
Must not match: {"pattern":"(^/|(^|/)\\.\\.(/|$))"}
inputsarrayOptional—
inputs[].namestringRequired when parent is present
Must match: "^[A-Z_][A-Z0-9_]{0,127}$"
inputs[].kindstringRequired when parent is present
Allowed values: ["configuration","secret"]
inputs[].requiredbooleanOptional
Default: false
inputs[].descriptionstringOptional
Maximum length: 500
inputs[]objectEach item
Additional fields: false