This document describes all CLI arguments supported by fb eval.
fb eval \
-p runs/2026-01-17__12-54-55/output.jsonl-
--config-pathPath toconfig.toml(used forHF_TOKEN/HF_ENDPOINTwhen loading dataset). If not provided, usesconfig.tomlin the current working directory. -
--predictions-path, -pPath to predictions JSONL file (typicallyruns/<timestamp>/output.jsonl). Required. Use-p goldto verify Level 1 gold patches; results are written toruns/gold/. -
--task-idSpecific task IDs (instance IDs) to evaluate. Accepts space-separated values. Default: all tasks in predictions. -
--n-concurrentNumber of parallel workers. Default:4. -
--timeoutOverride timeout for test execution (seconds). When omitted, usestimeout_runfrom the repository settings. -
--gpu-idsComma-separated GPU IDs (e.g.,0,1,2,3). Default: all available. -
--proxy-portProxy port for container network (host gateway) (e.g.,--proxy-port 7890). Disabled by default. -
--review-codesSave agent-generated code for review. Acceptstrue/false,1/0,yes/no. Default:false. -
--datasetHugging Face dataset repo name (e.g.,LiberCoders/FeatureBench). Default:LiberCoders/FeatureBench. -
--data-versionHugging Face dataset tag, branch, or commit SHA. Normally inferred from the inference run'srun_metadata.json. If unavailable, falls back to[dataset].revisionorv1.1. -
--splitDataset split name (e.g.,lite,full). Default:full.
-
--include-failedInclude predictions withsuccess=falsefromoutput.jsonl. Default: skip failed predictions. -
--force-rerunForce rerun specified task IDs even ifreport.jsonalready exists. Accepts space-separated task IDs or a.txtfile path (one task_id per line).
runs/{timestamp}/
├── report.json # Evaluation summary
└── eval_outputs/
└── {instance_id}/
└── attempt-{n}/
├── run_instance.log # Evaluation log
├── test_output.txt # Test execution output
├── patch.diff # Applied patch
└── report.json # Instance evaluation result
Summarize eval_outputs and generate a CSV report.
python -m featurebench.scripts.cal_eval_outputs --path <eval_outputs_dir> --attempt-mode <attempt_mode><attempt_mode> can be best, worst, or a number such as 1, 2, or 3.
The default is best.
When <attempt_mode> is a number k and --merge is enabled, attempts 1 through k are merged:
pass_rate: average over the firstkattemptsresolved: pass@k (success if any of the firstkattempts succeeds)prompt_tokensandcompletion_tokens: sum over the firstkattempts, then take the mean