Secrets handling
Klyro never writes secret values. Credentials are represented by
environment-variable names in klyro.yaml:
model: provider: openrouter model: anthropic/example-model credential: environment: OPENROUTER_API_KEYNever place the value of OPENROUTER_API_KEY, a Telegram bot token, a
dashboard password, an API key, or any session secret inside klyro.yaml.
What generation emits
Section titled “What generation emits”.env.examplecontains variable names, documentation, and blank placeholders only.- The generated
.gitignoreignores.env, so values you fill in locally stay out of version control. - Generated documentation explains which variables each provider expects.
Your workflow as operator
Section titled “Your workflow as operator”cd my-agentcp .env.example .env # fill in the referenced variable namesdocker compose up -dKeep .env local or feed it from your normal secret-management workflow.
Klyro does not manage live secrets and does not include a vault; see
Limitations. Diagnostics are designed to redact
known secret values rather than echo them.
Why names instead of values
Section titled “Why names instead of values”Names make the specification safe to commit, review, diff, share, and copy
between machines. They also keep the validation pipeline offline: nothing in
validate, plan, or generate contacts a model provider or any external
service to check credentials.
The klyro.yaml reference lists every field that accepts a credential reference.