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.

Links

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

[!NOTE] For more details, please refer to the Usage Guide.

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

programbench-1.2.4.tar.gz (3.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

programbench-1.2.4-py3-none-any.whl (3.4 MB view details)

Uploaded Python 3

File details

Details for the file programbench-1.2.4.tar.gz.

File metadata

  • Download URL: programbench-1.2.4.tar.gz
  • Upload date:
  • Size: 3.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for programbench-1.2.4.tar.gz
Algorithm Hash digest
SHA256 faf18abd35f1684eb5327ff9921a6de27febb749f7121b4a3cf94a4ab2703ee5
MD5 ce2e1d6de521dd71230dd31e28ebf17f
BLAKE2b-256 634a68493afe797af77d81b831db2e6444f0151f184567cf1b5b339d58efd5af

See more details on using hashes here.

File details

Details for the file programbench-1.2.4-py3-none-any.whl.

File metadata

  • Download URL: programbench-1.2.4-py3-none-any.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for programbench-1.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 bc24d2879a9d0249ae7e4f7770a7df6c069767f491444d846fe0a75070c572b8
MD5 cac822ca5712dfd38178f5e93e68f2db
BLAKE2b-256 c4048de6ab9f4eb0e4263b06bad9f1fb2d28e0eaf4cf53656266b2f3295783d3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page