Skip to content

Profiles

A profile is a named bundle of settings you select with --profile. Profiles are the fast way to keep several provider and model setups side by side and switch between them without editing config or passing a long string of flags each time.

Each profile lives under [profiles.*] in the config file and can set its own provider, model, key, and base URL:

[profiles.deepseek]
provider = "openai"
model = "deepseek-chat"
api_key = "sk-xxx"
base_url = "https://api.deepseek.com"
[profiles.ollama]
provider = "openai"
model = "qwen2.5:32b"
base_url = "http://localhost:11434/v1"

Select one at run time:

Terminal window
wayland-core --profile deepseek "Summarize this repo"
wayland-core --profile ollama "Draft a commit message"

A profile can pull settings from another with extends, so shared values stay in one place and each child overrides only what differs. This is how you keep a fast and a deep profile that share a key but use different models:

[profiles.base-anthropic]
provider = "anthropic"
api_key = "sk-ant-xxx"
[profiles.claude-fast]
extends = "base-anthropic"
model = "claude-haiku-4-5-20251001"
max_tokens = 4096
[profiles.claude-deep]
extends = "base-anthropic"
model = "claude-opus-4-20250514"
max_tokens = 16384

Inheritance chains can be multiple levels deep. The engine detects circular extends references and rejects them. Child settings always override the parent.

A profile can name which MCP servers it uses, so a dev profile loads tooling that a quick-question profile leaves out:

[profiles.dev]
extends = "base-anthropic"
model = "claude-sonnet-4-20250514"
mcp_servers = ["filesystem", "github"]

If your backend speaks a built-in provider’s protocol, define a custom provider alias and point a profile at it. The alias entry sets provider to one of anthropic, openai, bedrock, or vertex, and overrides model, api_key, and base_url. See Providers and Auth for the alias rules.