All LLM and role settings are stored inDocumentation Index
Fetch the complete documentation index at: https://docs.skaro.dev/llms.txt
Use this file to discover all available pages before exploring further.
.skaro/config.yaml inside your project. This page explains every available option and how roles interact with the default configuration.
Default LLM Settings
Thellm section defines the provider and model used for all phases unless overridden by a role.
Field Reference
| Field | Type | Default | Description |
|---|---|---|---|
provider | string | anthropic | LLM provider: anthropic, openai, groq, or ollama |
model | string | claude-sonnet-4-6 | Model ID. Any string is accepted — use a value from Supported Providers or enter a custom model ID |
api_key_env | string | "" | Name of the environment variable mapped to the API key in secrets.yaml. If empty, Skaro uses the provider’s default (e.g., ANTHROPIC_API_KEY for Anthropic) |
base_url | string | null | null | Custom API endpoint. Required only for self-hosted or proxy setups. Ollama defaults to http://localhost:11434/v1 |
max_tokens | integer | 16384 | Maximum tokens in the LLM response |
temperature | float | 0.3 | Sampling temperature. Lower values produce more deterministic output |
The
api_key_env field stores the name of a key in secrets.yaml, not the key value itself. Actual API keys are managed separately — see API Keys below.Roles
Skaro divides LLM work into three roles. Each role covers a specific set of phases:| Role | Phases | Purpose |
|---|---|---|
architect | architecture, devplan, plan, import_analyze | Strategic decisions, planning, project analysis |
coder | implement, fix | Code generation and bug fixes |
reviewer | tests, clarify | Validation, test generation, question generation |
llm section. To override a role, add it to the roles section with at least provider and model specified.
Minimal Role Override
architect role uses Claude Opus 4.6 while coder and reviewer fall back to the default llm section. Setting a role to null (or omitting it) means “use default.”
Full Role Override
Each role accepts the same fields as thellm section:
How Fallback Works
When Skaro resolves the LLM config for a phase:- Determine which role covers the phase (e.g.,
implement→coder) - If the role has both
providerandmodelset, use the role config - If the role’s
api_key_envis empty and the role’s provider matches the default provider, inheritapi_key_envfrom the defaultllmsection - The same inheritance applies to
base_url - If
max_tokensortemperatureare not set on the role, inherit them from the defaultllmsection - If the role is
nullor has noprovider/model, use the defaultllmsection entirely
API Keys
API keys are stored in.skaro/secrets.yaml, which is automatically added to .gitignore by skaro init.
The quickest way to save a key is through the CLI:
secrets.yaml under the provider’s default env var name (e.g., GROQ_API_KEY). You can also edit secrets.yaml directly:
Complete Example
A fullconfig.yaml using Anthropic for architecture, Groq for coding, and Ollama for reviews:
How to Change Settings
Editconfig.yaml — open .skaro/config.yaml in any text editor. This is the only way to configure roles, max_tokens, temperature, and base_url. Changes take effect on the next Skaro command or dashboard refresh.
CLI — skaro config can set the default provider, model, and API key: