Skip to content

manifest.yaml Schema

A manifest.yaml file lives at the root of every capability project. It declares the capability’s public interface so the orchestrator knows how to invoke it and agents know what parameters to provide.

FieldTypeRequiredDescription
apiVersionstringYesSchema version. Currently selu.io/v1.
kindstringYesMust be Capability.
metadata.namestringYesUnique capability identifier. Lowercase, alphanumeric, hyphens.
metadata.versionstringYesSemVer version (e.g. 2.1.0).
metadata.descriptionstringYesOne-line description shown to agents and users.
metadata.authorstringNoAuthor or organization name.
metadata.tagslistNoSearchable tags (e.g. ["search", "web"]).
spec.inputslistYesParameters the capability accepts.
spec.inputs[].namestringYesParameter name.
spec.inputs[].typestringYesType: string, int, float, bool, object, array.
spec.inputs[].requiredboolNoWhether the parameter is required. Default false.
spec.inputs[].descriptionstringYesDescription shown to the agent when selecting parameters.
spec.inputs[].defaultanyNoDefault value when the parameter is omitted.
spec.outputslistYesValues the capability returns.
spec.outputs[].namestringYesOutput field name.
spec.outputs[].typestringYesType of the output field.
spec.outputs[].descriptionstringYesDescription of the output field.
spec.runtime.imagestringYesDocker image that implements the capability’s gRPC server.
spec.runtime.portintNogRPC listen port inside the container. Default 50051.
spec.runtime.resources.cpustringNoCPU limit. Default 100m.
spec.runtime.resources.memorystringNoMemory limit. Default 128Mi.
spec.runtime.envlistNoEnvironment variables injected into the container.
spec.runtime.env[].namestringYesVariable name.
spec.runtime.env[].valuestringNoLiteral value. Mutually exclusive with secretRef.
spec.runtime.env[].secretRefstringNoReference to a Selu secret (e.g. selu/api-key).
manifest.yaml
apiVersion: selu.io/v1
kind: Capability
metadata:
name: web-search
version: "2.1.0"
description: Search the web and return a list of results with titles, URLs, and snippets.
author: selu-platform
tags:
- search
- web
spec:
inputs:
- name: query
type: string
required: true
description: The search query string.
- name: maxResults
type: int
required: false
description: Maximum number of results to return.
default: 5
outputs:
- name: results
type: array
description: List of search result objects containing title, url, and snippet.
runtime:
image: ghcr.io/selu-platform/cap-web-search:2.1.0
port: 50051
resources:
cpu: "200m"
memory: "256Mi"
env:
- name: SEARCH_PROVIDER
value: "duckduckgo"
- name: SEARCH_API_KEY
secretRef: selu/search-api-key

Run selu capability validate to check your manifest against the schema. The CLI verifies that all required fields are present, types are valid, and secret references resolve to existing Selu secrets.