Declarative klyro.yaml
One portable source document records your intent: runtime, memory, interfaces, model configuration, renderer. validate, plan, and generate all decode the same file.
Self-hosted AI agent stacks
Klyro is a declarative compiler, not a control plane. Write aklyro.yaml, let Klyro validate compatibility and plan the deployment, and generate a reproducible Docker Compose project you own.
$ klyro create
◇ Project name … personal-agent
◇ Runtime … Hermes
◇ Memory … Mnemosyne
◇ Interfaces … Telegram, Hermes WebUI
◇ Model provider … OpenRouter
✓ Credential referenced by name only: OPENROUTER_API_KEY
$ klyro validate ./personal-agent/klyro.yaml
✓ klyro.dev/v1alpha1 · AgentStack · personal-agent
✓ Stack resolved: hermes + mnemosyne · telegram + hermes-webui · openrouter
$ klyro generate ./personal-agent/klyro.yaml --out ./personal-agent
✓ Plan reviewed before writing: 6 artifacts, no conflicts
compose.yaml
services:
hermes:
image: nousresearch/hermes-agent:v2026.8.18
ports: ["9119:9119", "8642:8642"]
.env.example · README.md · config/hermes/…
✓ Written. The stack runs with plain Docker Compose.Illustrative session, output trimmed
One portable source document records your intent: runtime, memory, interfaces, model configuration, renderer. validate, plan, and generate all decode the same file.
Capabilities and bindings resolve against a curated catalog. Unsupported combinations fail with stable diagnostics before anything is written.
Deterministic planning and rendering produce byte-stable Docker Compose projects. No daemon, no hosted service: the stack stays yours to run and inspect.
Managed markers and explicit overwrite policies mean regeneration refreshes owned artifacts and never touches foreign files.
Curated support beats catalog size: every binding ships with documented configuration, persistence, and test expectations. See thesupport matrix.