FeatureBench combines a feature-level coding benchmark with a fully automated, Universal Coding Data Factory. With one CLI, it continuously discovers GitHub repositories, builds reproducible environments across languages, and generates validated coding tasks for training and evaluation through extensible Adapters.
📰 News
🏭 2026.10.30: We launched a Universal Coding Data Factory—fully automated, language-agnostic, and Adapter-driven—to continuously turn GitHub repositories into validated training data for any coding task format.
📈 2026.10.30: In internal mixed-task RL experiments using data from our Universal Coding Data Factory, Qwen3.8-27B improved SWE-bench Verified Pass@1 from 70.2% to a peak of 79.8% and FeatureBench 1.1 Tests Passed from 50.3% to a peak of 60.3%.
📦 2026.08.24: We released FeatureBench Dataset V1.1, primarily correcting inconsistencies and omissions in task problem statements.
📊 2026.05.18: We added lite split evaluation results for frontier models including GPT-5.5, Claude Opus 4.7, DeepSeek-V4, GLM-5.1, Kimi-2.6, Mimo-V2.5-Pro, and more to the leaderboard.
🚀 2026.03.27: We released the fast split containing 100 instances (a subset of full split). These instances require no GPU and are optimized for rapid evaluation. On an Intel Xeon Platinum 8457C with 944GB RAM, the average evaluation time per instance using gold patches is 57.2 seconds.
🎁 2026.02.06: We added one-click inference for mainstream agent frameworks, including OpenHands, Claude Code, Codex, Gemini CLI, and mini-swe-agent. All supported agent frameworks can be found here.
🏆 Leaderboard
Full interactive leaderboard with tabs, filters, and sorting (Dataset V1.0).
Lite split results, ranked by %PASSED
| Rank | Model | Scaffold | %PASSED | %RESOLVED |
|---|---|---|---|---|
| 1 | Claude Opus 4.7 | OpenHands | 78.2 | 46.7 |
| 2 | GPT-5.5 | OpenHands | 69.8 | 26.7 |
| 3 | Claude Opus 4.6 | OpenHands | 69.5 | 20 |
| 4 | Claude Opus 4.5 | OpenHands | 67.2 | 20 |
| 5 | GPT-5.4 | OpenHands | 66.2 | 23.3 |
| 6 | GPT-5.1-Codex | Codex | 60.2 | 20 |
| 7 | DeepSeek-V4-Pro | OpenHands | 59.6 | 26.7 |
| 8 | Claude Opus 4.5 | Claude Code | 59.1 | 20 |
| 9 | Kimi-2.6 | OpenHands | 49.4 | 20 |
| 10 | Mimo-V2.5-Pro | OpenHands | 47.8 | 13.3 |
| 11 | Gemini-3-Pro-Preview | OpenHands | 45.1 | 10 |
| 12 | GLM-5.1 | OpenHands | 44.2 | 13.3 |
| 13 | Gemini-3-Pro-Preview | Gemini-CLI | 43.4 | 10 |
| 14 | DeepSeek-V4-Flash | OpenHands | 41.9 | 16.7 |
| 15 | MiniMax M2.1 | Mini-SWE-Agent | 41.9 | 10 |
| 16 | GLM 4.7 | Mini-SWE-Agent | 41.2 | 6.7 |
| 17 | Qwen3-Coder-480B-A35B-Instruct | OpenHands | 38.3 | 6.7 |
| 18 | DeepSeek V3.2 | OpenHands | 35.9 | 6.7 |
| 19 | Qwen3.5-27B | OpenHands | 34.8 | 10.0 |
| 20 | Qwen3-Coder-30B-A3B-Instruct | OpenHands | 23 | 3.3 |
🚀 Quickstart
Prerequisites:
- Python 3.12 or later
- Docker for reproducible builds and evaluation
- uv when using uv or installing from source
# Install from PyPI
pip install featurebench
# Or install the CLI with uv
uv tool install featurebench
# Install from source
git clone https://github.com/LiberCoders/FeatureBench.git
cd FeatureBench
uv sync
source .venv/bin/activate
Create config.toml from config_example.toml. From a source checkout:
cp config_example.toml config.toml
Optionally pre-pull the benchmark images:
fb pull --mode fast
Run inference:
fb infer \
--config-path config.toml \
--data-version v1.1 \
--agent mini_swe_agent \
--model openai/qwen3-coder-480b-a35b-instruct \
--split fast
Evaluate the generated patches:
fb eval \
-p runs/<timestamp>/output.jsonl \
--split fast
🏭 Universal Coding Data Factory
The factory automatically discovers GitHub repositories, builds reproducible environments, and generates validated coding tasks. Adapters define the task format; FeatureBench is included by default. This workflow is optional for benchmark users.
Put provider credentials in .env. From a source checkout:
cp .env.example .env
The default settings work out of the box and can be customized through
configs/default/*.yaml or --config.
fb discover
fb build outputs/discover-YYYYMMDD-HHMMSS/repositories.jsonl
fb generate outputs/build-YYYYMMDD-HHMMSS/environments.jsonl \
--adapter featurebench
🧭 CLI
Benchmark:
fb inferruns coding agents on FeatureBench tasks (Documentation).fb evalevaluates generated patches (Documentation).fb pullpre-pulls benchmark Docker images (Documentation).
Data factory:
fb discoverfinds candidate GitHub repositories (Documentation).fb buildcreates reusable, validated environments (Documentation).fb generategenerates tasks through an Adapter (Documentation).fb configureedits an inactive run before resuming it (Documentation).fb --resumecontinues an interrupted run (Documentation).
✍️ Citation
If you found FeatureBench useful, please cite us as:
@article{zhou2026featurebench,
title={FeatureBench: Benchmarking Agentic Coding for Complex Feature Development},
author={Zhou, Qixing and Zhang, Jiacheng and Wang, Haiyang and Hao, Rui and Wang, Jiahe and Han, Minghao and Yang, Yuxue and Wu, Shuzhe and Pan, Feiyang and Fan, Lue and others},
journal={arXiv preprint arXiv:2602.10975},
year={2026}
}
📧 Contact
If you have any questions, feel free to contact qixing.zhou@smail.nju.edu.cn or zjcheng2022@gmail.com.
Metadata
Release files for featurebench 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| featurebench-0.3.0.tar.gz | 1.3 MB | Without provenance | Details for featurebench-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| featurebench-0.3.0-py3-none-any.whl | Python 3 | none | any | Details for featurebench-0.3.0-py3-none-any.whl |
Total release size: 1.9 MB
Release files / featurebench-0.3.0.tar.gz
| Download URL | featurebench-0.3.0.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
75a13f2acf7c09a93d18529df2c0d38d0ed8092af6c8343ddb54e1bd341a5d7f
|
|
BLAKE2b-256 checksum How to use checksums |
5b9a00cc06c59a528217780f60e07e462df5a291e3a2250fd1b27581b541e9d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.11
|
Release files / featurebench-0.3.0-py3-none-any.whl
| Download URL | featurebench-0.3.0-py3-none-any.whl |
|---|---|
| Size | 581.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
26699b76a77ce0cab28f282b01e9cefa62605bb8bbe605f5aadc75d9900d79b5
|
|
BLAKE2b-256 checksum How to use checksums |
d8cb319d709710e2c7d8e79d76d6024966ea0e8ceaaaba1f74c566da7216e91c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.11
|
Security for featurebench 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.