Example configuration
Copy this file to ~/.provefab/provefab.toml (or $PROVEFAB_HOME/provefab.toml), adapt it, then run provefab doctor. Every field is described in Configuration.
# Provefab configuration: copy this file to ~/.provefab/provefab.toml# (or to $PROVEFAB_HOME/provefab.toml), then adapt it.# Full reference: docs/guide/configuration.md# No secret here: the TypeSafe key goes in the macOS Keychain.
[jev]model = "jev-1.13.0" # full, pinned version; never "jev-latest"underspecified_threshold = 0.7 # above this, Provefab asks a question instead of codingloop_threshold = 0.8 # above this, an agent going in circles is stopped
# Which model a stage takes inside its tier (docs/guide/configuration.md).[routing]prefer = "subscription" # your plans first, then API keys by price; # or "api_key", or "cheapest"# prices_url = "https://models.dev/api.json" # a mirror; prices refresh daily
# The catalog: the models Provefab may use, by tier.# Inside a tier, the cheapest usable model goes first (see [routing]).[[models]]id = "claude-sonnet"worker = "claude-code" # "claude-code", "codex" or "pi"model = "sonnet"tier = "standard" # "fast", "standard" or "frontier"max_concurrency = 1# auth = "api_key" # your own API key instead of your subscription # (set it once: provefab login claude --api-key)# price_id = "anthropic/claude-sonnet-5-5" # when the automatic price match is wrong# price_in = 2.0 # USD per million tokens; overrides fetched prices# price_out = 10.0# quota_weight = 1.0 # subscription only: plan usage per token, vs the # vendor's cheapest model in this catalog
[[models]]id = "codex-gpt"worker = "codex"model = "gpt-5.5"tier = "standard"
[[models]]id = "claude-opus"worker = "claude-code"model = "opus"tier = "frontier"
# One block per watched repository.[[repos]]slug = "your-account/your-repo"# local_path = "~/code/your-repo" # optional: without it, Provefab clones into ~/.provefab/reposlabel = "provefab"base = "main"poll_interval = "3m"gates = ["cargo fmt -- --check", "cargo clippy --all-targets -- -D warnings", "cargo test"]# [repos.merge] # read by Provefab Pro only: guarded auto-merge# auto = true# max_lines = 400
[limits]stage_timeout = "30m"gate_timeout = "20m"max_turns = { plan = 40, implement = 150, review = 40 }review_rounds = 2max_auto_passes = 3max_stage_runs_per_day = 60max_drive_steps = 200retry_delays = ["5m", "15m", "45m"]