Skip to main content
All LLM and role settings are stored in .skaro/config.yaml inside your project. This page explains every available option and how roles interact with the default configuration.

Default LLM Settings

The llm section defines the provider and model used for all phases unless overridden by a role.
llm:
  provider: anthropic
  model: claude-sonnet-4-6
  api_key_env: ANTHROPIC_API_KEY
  base_url: null
  max_tokens: 16384
  temperature: 0.3

Field Reference

FieldTypeDefaultDescription
providerstringanthropicLLM provider: anthropic, openai, groq, or ollama
modelstringclaude-sonnet-4-6Model ID. Any string is accepted — use a value from Supported Providers or enter a custom model ID
api_key_envstring""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_urlstring | nullnullCustom API endpoint. Required only for self-hosted or proxy setups. Ollama defaults to http://localhost:11434/v1
max_tokensinteger16384Maximum tokens in the LLM response
temperaturefloat0.3Sampling 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:
RolePhasesPurpose
architectarchitecture, devplan, plan, import_analyzeStrategic decisions, planning, project analysis
coderimplement, fixCode generation and bug fixes
reviewertests, clarifyValidation, test generation, question generation
By default, all roles use the settings from the llm section. To override a role, add it to the roles section with at least provider and model specified.

Minimal Role Override

roles:
  architect:
    provider: anthropic
    model: claude-opus-4-6
  coder: null
  reviewer: null
Here the 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 the llm section:
roles:
  architect:
    provider: anthropic
    model: claude-opus-4-6
    api_key_env: ANTHROPIC_API_KEY
    base_url: null
    max_tokens: 16384
    temperature: 0.3
  coder:
    provider: groq
    model: llama-3.3-70b-versatile
    api_key_env: GROQ_API_KEY
    base_url: null
    max_tokens: 16384
    temperature: 0.3
  reviewer:
    provider: ollama
    model: qwen3:32b
    api_key_env: ""
    base_url: null
    max_tokens: 16384
    temperature: 0.3

How Fallback Works

When Skaro resolves the LLM config for a phase:
  1. Determine which role covers the phase (e.g., implementcoder)
  2. If the role has both provider and model set, use the role config
  3. If the role’s api_key_env is empty and the role’s provider matches the default provider, inherit api_key_env from the default llm section
  4. The same inheritance applies to base_url
  5. If max_tokens or temperature are not set on the role, inherit them from the default llm section
  6. If the role is null or has no provider/model, use the default llm section entirely
You can set an API key once in secrets.yaml under the provider’s default env name and it will be shared with any role that uses the same provider — no need to configure it per role.

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:
skaro config --provider groq --api-key gsk_your_key_here
This writes the key to secrets.yaml under the provider’s default env var name (e.g., GROQ_API_KEY). You can also edit secrets.yaml directly:
api_keys:
  ANTHROPIC_API_KEY: sk-ant-...
  GROQ_API_KEY: gsk_...
Ollama does not require an API key.
Never commit secrets.yaml to version control.

Complete Example

A full config.yaml using Anthropic for architecture, Groq for coding, and Ollama for reviews:
llm:
  provider: anthropic
  model: claude-sonnet-4-6
  api_key_env: ANTHROPIC_API_KEY
  base_url: null
  max_tokens: 16384
  temperature: 0.3

roles:
  architect:
    provider: anthropic
    model: claude-opus-4-6
  coder:
    provider: groq
    model: llama-3.3-70b-versatile
    api_key_env: GROQ_API_KEY
  reviewer:
    provider: ollama
    model: qwen3:32b

ui:
  auto_open_browser: true

lang: en
theme: dark
project_name: my-project
project_description: "A short description of the project"

How to Change Settings

Edit config.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. CLIskaro config can set the default provider, model, and API key:
skaro config --provider groq --model llama-3.3-70b-versatile
skaro config --api-key gsk_your_key_here
skaro config --show
The CLI does not support role overrides or advanced parameters. Web dashboard — the Settings page provides a visual interface for all options including roles.