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.
Schema reference
Section titled “Schema reference”| Field | Type | Required | Description |
|---|---|---|---|
apiVersion | string | Yes | Schema version. Currently selu.io/v1. |
kind | string | Yes | Must be Capability. |
metadata.name | string | Yes | Unique capability identifier. Lowercase, alphanumeric, hyphens. |
metadata.version | string | Yes | SemVer version (e.g. 2.1.0). |
metadata.description | string | Yes | One-line description shown to agents and users. |
metadata.author | string | No | Author or organization name. |
metadata.tags | list | No | Searchable tags (e.g. ["search", "web"]). |
spec.inputs | list | Yes | Parameters the capability accepts. |
spec.inputs[].name | string | Yes | Parameter name. |
spec.inputs[].type | string | Yes | Type: string, int, float, bool, object, array. |
spec.inputs[].required | bool | No | Whether the parameter is required. Default false. |
spec.inputs[].description | string | Yes | Description shown to the agent when selecting parameters. |
spec.inputs[].default | any | No | Default value when the parameter is omitted. |
spec.outputs | list | Yes | Values the capability returns. |
spec.outputs[].name | string | Yes | Output field name. |
spec.outputs[].type | string | Yes | Type of the output field. |
spec.outputs[].description | string | Yes | Description of the output field. |
spec.runtime.image | string | Yes | Docker image that implements the capability’s gRPC server. |
spec.runtime.port | int | No | gRPC listen port inside the container. Default 50051. |
spec.runtime.resources.cpu | string | No | CPU limit. Default 100m. |
spec.runtime.resources.memory | string | No | Memory limit. Default 128Mi. |
spec.runtime.env | list | No | Environment variables injected into the container. |
spec.runtime.env[].name | string | Yes | Variable name. |
spec.runtime.env[].value | string | No | Literal value. Mutually exclusive with secretRef. |
spec.runtime.env[].secretRef | string | No | Reference to a Selu secret (e.g. selu/api-key). |
Full example
Section titled “Full example”apiVersion: selu.io/v1kind: Capabilitymetadata: 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-keyValidation
Section titled “Validation”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.