Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Configuration Overview

meka is configured with named provider profiles in a config file at ~/.config/meka/config.toml, plus secrets stored in the database. The quickest way to get started is to let meka provider add write both for you:

$ meka provider add work --type claude-oauth --model claude-opus-4-6

That command writes a [providers.work] profile to the config file, runs the OAuth login (or prompts for an API key, depending on the backend), stores the secret in the database, and makes the profile the default. The resulting config looks like:

default_provider = "work"

[providers.work]
type  = "claude-oauth"
model = "claude-opus-4-6"

See Config File for the full reference and the meka provider command suite.

Required Settings

To run a turn, meka needs an active provider profile that pins a backend type and model, and a stored credential for it. If no profile can be selected, or the active profile has no model or no credential, meka prints an error pointing at meka provider add / meka provider login.

SettingSourcePer-run override
Active profiledefault_provider in config, or the sole profile--provider <name>
Backend (type)[providers.<name>].type
Model[providers.<name>].model-m, --model
Credential (API key / OAuth)Database, via meka provider add / login

Override Layers

Provider configuration is layered as follows; higher-priority layers override lower ones:

  1. CLI flags: per-invocation overrides (--provider, --model, --base-url).
  2. Config file: persistent profiles in ~/.config/meka/config.toml.
  3. Built-in defaults: permission defaults to read, streaming defaults to on.

For example, --model gpt-4o-mini on the command line overrides the active profile’s model for that run. There is no environment-variable tier for provider configuration; an ambient OPENAI_API_KEY or MEKA_PROVIDER has no effect (see Environment Variables).

Credential Resolution

The credential for the active profile is loaded from the database, keyed by the profile name. It is acquired interactively:

  • meka provider add <name> runs the OAuth login (claude-oauth, openai-codex) or prompts for the API key (claude-api, openai-api) when the profile is created.
  • meka provider login <name> re-acquires it for an existing profile (rotate an API key, recover from a dead OAuth refresh token).
  • meka provider remove <name> deletes the stored credential and the profile.

Because secrets are keyed per profile, two profiles using the same backend (for example, two Claude accounts) keep independent credentials.