Configuration

Defaults live in ${XDG_CONFIG_HOME:-~/.config}/okso/config.env. Create or update that file without running a query:

export PLANNER_MODEL_SPEC="bartowski/Qwen_Qwen3-8B-GGUF:Qwen_Qwen3-8B-Q4_K_M.gguf"
export EXECUTOR_MODEL_SPEC="bartowski/Qwen_Qwen3-4B-GGUF:Qwen_Qwen3-4B-Q4_K_M.gguf"
export SEARCH_REPHRASER_MODEL_SPEC="bartowski/Qwen_Qwen3-1.7B-GGUF:Qwen_Qwen3-1.7B-Q4_K_M.gguf"
export PLANNER_MODEL_BRANCH=main
export EXECUTOR_MODEL_BRANCH=main
export SEARCH_REPHRASER_MODEL_BRANCH=main
CONFIG_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/okso/config.env" ./src/bin/okso init

The config file is KEY=value style, with values shell-escaped so the file can be sourced directly by bash without extra trimming. okso init preserves spaces and other special characters when writing strings, such as model specs. Supported keys stored in config.env:

PLANNER_MODEL_SPEC=bartowski/Qwen_Qwen3-8B-GGUF:Qwen_Qwen3-8B-Q4_K_M.gguf
PLANNER_MODEL_BRANCH=main
EXECUTOR_MODEL_SPEC=bartowski/Qwen_Qwen3-4B-GGUF:Qwen_Qwen3-4B-Q4_K_M.gguf
EXECUTOR_MODEL_BRANCH=main
VALIDATOR_MODEL_SPEC=bartowski/Qwen_Qwen3-4B-GGUF:Qwen_Qwen3-4B-Q4_K_M.gguf
VALIDATOR_MODEL_BRANCH=main
CACHE_DIR=${XDG_CACHE_HOME:-${HOME}/.cache}/okso
SEARCH_REPHRASER_MODEL_SPEC=bartowski/Qwen_Qwen3-1.7B-GGUF:Qwen_Qwen3-1.7B-Q4_K_M.gguf
SEARCH_REPHRASER_MODEL_BRANCH=main
VERBOSITY=1
APPROVE_ALL=false

Defaults for the model specs are derived from the system profile autotune logic (see the model autotuning overview for tier-to-size mappings). Use these keys to pin specific repos or branches:

Environment variables with the same names as the config keys take precedence over file values when set. Additional environment-only controls include:

Planner sampling currently generates a single candidate per run (with PLANNER_SAMPLE_COUNT pinned to 1), logs the normalized candidate to PLANNER_DEBUG_LOG, and records its score, tie-breaker, and rationale. Lowering the temperature generally produces narrower plans, while increasing it explores more tool combinations. Candidates outside the PLANNER_MAX_PLAN_STEPS budget, that omit the final final_answer step, or that reference unknown tools drop in score and are unlikely to win when the best plan is selected.

API keys and other secrets belong in ~/.config/okso/config.env or a locally sourced .env file—never commit them to version control. Consider adding local files containing secrets to .gitignore if you keep them alongside your working directory.

See the Initialize config for a custom model walkthrough for a step-by-step example that combines okso init with environment overrides.