eval-banana

Configuration

eval-banana uses a single project-level TOML config at .eval-banana/config.toml. This page covers the general settings; connecting an AI agent for harness_judge checks is covered separately in Harness Setup.

Where the config lives

The config file is discovered by walking upward from the current directory, so you can run eb from any subdirectory and it finds the project config. Create it with:

eb init          # create .eval-banana/config.toml
eb init --force   # overwrite an existing config

Precedence

Config values resolve in this order, highest priority first:

  1. CLI arguments--output-dir, --harness-model, --pass-threshold, …
  2. Environment variablesEVAL_BANANA_*
  3. Project config.eval-banana/config.toml
  4. Built-in defaults

A CLI flag always wins over an env var, which wins over the file, which wins over the default. Relative output_dir values resolve from the project root.

[core] settings

KeyDefaultEnv varDescription
output_dir.eval-banana/resultsEVAL_BANANA_OUTPUT_DIRWhere run output is written
pass_threshold1.0EVAL_BANANA_PASS_THRESHOLDMinimum pass ratio (0.0–1.0) for the run to pass
llm_max_input_chars0EVAL_BANANA_LLM_MAX_INPUT_CHARSReserved. Accepted and parsed, but the current harness_judge runner does not read it, so it has no runtime effect yet.

With pass_threshold at its default of 1.0, every check must pass for the run to pass. Lower it (e.g. 0.8) to tolerate some failures. Note that a single error fails the run regardless of the threshold — see Concepts.

[discovery] settings

KeyDefaultDescription
exclude_dirssee belowDirectory names to skip while walking for eval_checks/

The default excluded directories are .git, .hg, .svn, .venv, venv, node_modules, __pycache__, dist, build. Setting exclude_dirs replaces the list, so include the defaults you still want.

A complete example

# .eval-banana/config.toml
[core]
output_dir = ".eval-banana/results"
pass_threshold = 1.0
 
[discovery]
exclude_dirs = [".git", ".venv", "node_modules", "__pycache__", "dist", "build"]
 
[harness]
agent = "codex"
model = "gpt-5.6-sol"
reasoning_effort = "high"

The [harness] and [agents.*] sections are only needed for harness_judge checks — see Harness Setup for the full agent configuration.

Environment variables

Every core and harness setting has an EVAL_BANANA_* environment variable, which sits above the config file but below CLI flags in precedence. The common ones:

VariableOverrides
EVAL_BANANA_OUTPUT_DIRoutput_dir
EVAL_BANANA_PASS_THRESHOLDpass_threshold
EVAL_BANANA_LLM_MAX_INPUT_CHARSllm_max_input_chars
EVAL_BANANA_HARNESS_AGENTharness.agent
EVAL_BANANA_HARNESS_MODELharness.model
EVAL_BANANA_HARNESS_REASONING_EFFORTharness.reasoning_effort

Migration note

The legacy [llm] section was removed. If it is present in .eval-banana/config.toml, eval-banana exits with a migration error telling you to delete that section and use [harness] / [agents.*] instead. A stale [harness].skills_dir key is ignored (skills are now installed with the npx skills CLI), so old configs keep loading, but the key has no effect.