Skip to main content

ProgramBench logo
ProgramBench

Can Language Models Rebuild Programs From Scratch?

Given only a compiled binary and its documentation, AI agents must architect and implement a complete codebase that reproduces the original program's behavior.

Quickstart

We recommend uv for managing Python environments.

# Run without installing
uvx programbench --help

# Or install into a project
uv pip install programbench

# Or with pip
pip install programbench

For development:

git clone https://github.com/facebookresearch/programbench.git
cd programbench
uv sync  # installs editable + dev dependencies

To run our baseline:

uvx --from mini-swe-agent mini-extra programbench --help
# or
pip install mini-swe-agent && mini-extra programbench --help

See the mini-swe-agent baseline docs for details.

Citation

If our work was useful for you, please cite it:

@misc{yang2026programbenchlanguagemodelsrebuild,
    title={ProgramBench: Can Language Models Rebuild Programs From Scratch?},
    author={John Yang and Kilian Lieret and Jeffrey Ma and Parth Thakkar and Dmitrii Pedchenko and Sten Sootla and Emily McMilin and Pengcheng Yin and Rui Hou and Gabriel Synnaeve and Diyi Yang and Ofir Press},
    year={2026},
    eprint={2605.03546},
    archivePrefix={arXiv},
    primaryClass={cs.SE},
    url={https://arxiv.org/abs/2605.03546},
}

License

ProgramBench is licensed under the terms of the license found in LICENSE.

Metadata

Release files for programbench 1.2.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for programbench 1.2.5
File Size Uploaded
programbench-1.2.5.tar.gz 3.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for programbench 1.2.5
File Interpreter ABI Platform
programbench-1.2.5-py3-none-any.whl Python 3 none any Details

Total release size: 6.7 MB

Release files / programbench-1.2.5.tar.gz

Download URL programbench-1.2.5.tar.gz
Size 3.3 MB
Tags Source
SHA-256 checksum
How to use checksums
5f58eba8effc3a969f728a50161e11305434dbd12b1d8074f89d906a3f707e22
BLAKE2b-256 checksum
How to use checksums
988f0f6b075ec7dd78a5ed8f6e6cb2fa303ed8067bb540f7bf3f3c3ea1ab3080
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / programbench-1.2.5-py3-none-any.whl

Download URL programbench-1.2.5-py3-none-any.whl
Size 3.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
ed7e350eb01cf8796af093154f90f0c7d5a91405591c23f9e3ec500d20ea62c5
BLAKE2b-256 checksum
How to use checksums
05470c0a5a282eb6b4e0603e9db88144afd306cc5af812b513ab3ab1ee290f72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

1.2.5 This release

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page